2013-10-14 117 views
0

我正在使用VBscript来修改快捷方式的目标路径,但我无法做到这一点。当我运行脚本时,我没有得到任何错误,但是好像该脚本没有做任何事情,那就是目标路径没有改变。这是我的脚本无法修改快捷方式路径

Private Sub Change_ShortCut(TargetPath, ShortCutPath, ShortCutname, WorkPath, ServerName, PortNumber, ServiceName, ExecVar) 
Dim VbsObj 
Dim userName 
Dim hostName 

' Get user name and host name from another method 
Get_UserName userName, hostName 

Const ALL_USERS_DESKTOP = &H19& 
Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.Namespace(ALL_USERS_DESKTOP) 
Set objFolderItem = objFolder.ParseName("App1.lnk") 
Set objShellLink = objFolderItem.GetLink 
Wscript.Echo objShellLink.Path 
objShellLink.Path = TargetPath & ServerName & " " & PortNumber & " " & ServiceName & " " & userName & " " & hostName & " 20 -exec=" & """" & "\""" & ExecVar & "\""" &"""" 
objShellLink.Save 

End Sub 

回答

2

你在努力尝试。使用WshShell对象,而不是:

Set fso = CreateObject("Scripting.FileSystemObject") 
Set sh = CreateObject("WScript.Shell") 

lnkpath = fso.BuildPath(sh.SpecialFolders("AllUsersDesktop"), "App1.lnk") 
Set lnk = sh.CreateShortcut(lnkpath) 
lnk.TargetPath = TargetPath & ServerName & " " & PortNumber & " " & ServiceName _ 
    & " " & userName & " " & hostName & " 20 -exec=""\""" & ExecVar & "\""""" 
lnk.Save 

如果你有一个域环境中,使用Group Policy Preferences可能是更新的快捷方式更好的方法。