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
4

1 に答える 1

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

ドメイン環境を使用している場合は、グループ ポリシーの基本設定を使用する方が、ショートカットを更新するのに適している場合があります。

于 2013-10-14T22:06:16.347 に答える