2013-10-14 3 views
0

Я использую VBscript для изменения целевого пути ярлыка, но я не могу этого сделать. Когда я запускаю сценарий, я не получаю никаких ошибок, но кажется, что скрипт ничего не делает, то есть Target Path не изменяется. Вот мой сценарийНевозможно изменить путь ярлыка

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 может быть лучшим способом обновления ярлыков.

Смежные вопросы