无法将带有参数的.exe固定到任务栏/开始菜单

时间:2016-01-13 19:22:33

标签: windows vbscript exe

我正在尝试编写一个.vbs脚本来将.exe固定到我的任务栏并启动菜单。 但是,只有在传入包参数时才会运行.exe。

这是捷径的目标:
“C:\ Program Files(x86)\ Launch \ AppLauncher.exe”package = TEST

我目前对代码有以下内容,但是当我尝试运行它时,我收到了错误消息。

Const a = """"
arrActions = Array( _
"pin", "Start Menu", """C:\Program Files (x86)\Launch\AppLauncher.exe"" package=TEST", _
"pin", "Taskbar", """C:\Program Files (x86)\Launch\AppLauncher.exe"" package=TEST" _ )

For intAction = 0 To (UBound(arrActions) - 2) Step 3
arrFileNames = Array(arrActions(intAction + 2))
'strMode can be "Pin" or "Unpin"
 strMode = arrActions(intAction)
'strLocation can be "Start Menu" or "Taskbar" or "Both"
 strLocation = arrActions(intAction + 1)
Set objFSO = CreateObject("Scripting.FileSystemObject")
 Set objShellApp = CreateObject("Shell.Application")
 Set objShell = CreateObject("WScript.Shell")
 If LCase(strLocation) = "both" Then
 arrLocations = Array("Start Menu", "Taskbar")
 Else
 arrLocations = Array(strLocation)
 End If
For Each strLocation In arrLocations
 If LCase(strMode) <> "pin" And LCase(strMode) <> "unpin" Then
 WScript.Echo "Mode is incorrect. Please set to ""pin"" or ""unpin""."
 WScript.Quit
 ElseIf LCase(strLocation) <> "start menu" And LCase(strLocation) <> "taskbar" Then
 WScript.Echo "Location is incorrect. Please set to ""Start Menu"" or ""Taskbar""."
 WScript.Quit
 Else
 strMode = LCase(strMode)
 If strMode = "pin" Then
 strVerb = LCase(strMode & " to " & strLocation)
 strMessage = " has been " & strMode & "ned to the " & strLocation & "."
 ElseIf strMode = "unpin" Then
 strVerb = LCase(strMode & " from " & strLocation)
 strMessage = " has been " & strMode & "ned from the " & strLocation & "."
 End If
For Each strFilePath In arrFileNames
 If LCase(strFilePath) = "unpin_all" And strMode = "unpin" Then
 strPinLocation = objShell.ExpandEnvironmentStrings("%APPDATA%") & _
 "\Microsoft\Internet Explorer\Quick Launch\User Pinned\" & _
 Replace(strLocation, " ", "") & "\"
 For Each objFile In objFSO.GetFolder(strPinLocation).Files
 strFullPath = objFile.Path
 'Set objFile = objFSO.GetFile(objFile.Path)
 Set objFolder = objShellApp.Namespace(objFile.ParentFolder & "\")
 Set objFolderItem = objFolder.ParseName(objFile.Name)
 Set colVerbs = objFolderItem.Verbs
 For Each objVerb In colVerbs
 If LCase(Replace(objVerb.name, "&", "")) = strVerb Then
 objVerb.DoIt
 WScript.Echo strFullPath & strMessage
 End If
 Next
 Next
 Else
 If objFSO.FileExists(strFilePath) = True Then
 Set objFile = objFSO.GetFile(strFilePath)
 Set objFolder = objShellApp.Namespace(objFile.ParentFolder & "\")
 Set objFolderItem = objFolder.ParseName(objFile.Name)
 Set colVerbs = objFolderItem.Verbs
 blnOptionFound = False
 For Each objVerb In colVerbs
 If LCase(Replace(objVerb.name, "&", "")) = strVerb Then
 objVerb.DoIt
 blnOptionFound = True
 End If
 Next
 If blnOptionFound = True Then
 WScript.Echo strFilePath & strMessage
 Else
 WScript.Echo "Unable to " & strMode & " " & strFilePath & _
 " from the " & strLocation & ". The verb does not exist."
 End If
 Else
 WScript.Echo "Could not find " & strFilePath
 End If
 End If
 Next
 End If
 Next
 Next

Error message

0 个答案:

没有答案