Не удается запустить программу из моего скрипта - PullRequest
0 голосов
/ 21 ноября 2011

Я изо всех сил пытаюсь запустить программу из моего файла VBScript .vbs.Подстановка строки для MsgBox работает нормально, поэтому я точно знаю, что это строка "open program" (oShell.Run("Release\My Application.exe")).

В любом случае, это VBscript с именем start.vbs, который запускается из корневого каталогаUSB-накопитель.Он проверяет, установлен ли .net framework 4.0, и если он установлен, то он должен запускать My Application.exe (обратите внимание на пробел ... это может иметь значение).My Application.exe находится в папке с именем Release.

Поскольку это USB-накопитель, я не могу использовать явные буквы диска, например: oShell.run("e:\Release\My Application.exe"), хотя попытка этого также не работает.Ввод "e:\Release\My Application.exe" в окно cmd работает нормально и запускает программу так, как она должна работать.

В vbscript она просто ничего не делает.Любая причина?

Вот мой код:

Option Explicit
Dim oShell
Dim value

On Error Resume Next

Set oShell = CreateObject("WScript.Shell")
value = oShell.RegRead("HKLM\SOFTWARE\Microsoft\.NETFramework\Policy\v4.0\30319")

If Err.Number = 0 Then
    'Here I am struggling
    oShell.Run("Release\My Application.exe")
Else
    MsgBox("Version 4.0 of the .NET Framework is NOT installed.")
End If

Я прокомментировал выше строки, которая не работает.

Спасибо.

1 Ответ

1 голос
/ 21 ноября 2011

Не совсем уверен, что это лучший ответ, но я попробовал, и это сработало, поэтому я просто отправлю свою идею. Я просто использовал explorer.exe в качестве посредника и смог открыть файл. Таким образом, строка, с которой вы застряли, должна выглядеть примерно так:

oShell.Run("explorer ""Release\My Application.exe""")

Я попробовал, если он будет работать в папке, которая не находится в системном пути и не смог открыть исполняемый файл.

Примечание: могут быть лучшие подходы.

Обновление : Томас сообщил, что следующий код работает для него (подход лучше), однако идея обоих подходов состоит в том, чтобы заключить путь в кавычки (как вы сделали бы это в командной строке имена файлов / папок с пробелами в пути правильно разрешены):

oShell.run("""Release\My Application.exe""")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...