Мне нужен сценарий vb, который обернет приложение, которое будет оставаться открытым до завершения приложения. Я хочу иметь возможность вызывать следующую команду
"setup.exe / qb / I Autocad2010.ini / language en-us"
Но мне нужно, чтобы сценарий vb продолжал работать до завершения установки.
Есть ли кто-нибудь, кто может помочь с этим?
Большое спасибо заранее
Обновленная версия
Следующая программа выполнит вашу программу установки, а затем подождите, пока больше не будет экземпляров setup.exe
Бег. Вы можете установить максимальное значение тайм-аута (чтобы оно не зависало вечно).
Обратите внимание, что это не может определить, настроить сделано, только независимо от того, setup.exe
процесс запущен. Это незначительное различие, но важное.
Option Explicit
Const PROC_NAME = "setup.exe"
Const RUN_CMD = "setup.exe /qb /I Autocad2010.ini /language en-us"
Const SLEEP_INTERVAL_MS = 1000
Const WAIT_TIMEOUT_MS = 1500000 ' = 1000 * 60 * 25 ms = 25 mins
Dim objWshShell, objWMIService
Dim colProcesses, objProcess
Dim intWaited, blnProcessTerminated
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.Run RUN_CMD
intWaited = 0
blnProcessTerminated = False
While intWaited < WAIT_TIMEOUT_MS And Not blnProcessTerminated
Set colProcesses = objWMIService.ExecQuery(_
"Select * from Win32_Process where Name='" & PROC_NAME & "'")
blnProcessTerminated = True
For Each objProcess In colProcesses
blnProcessTerminated = False
Next
WScript.Sleep(SLEEP_INTERVAL_MS)
intWaited = intWaited + SLEEP_INTERVAL_MS
Wend
Это относительно просто:
Option Explicit
Dim objWshShell
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.Run "setup.exe /qb /I Autocad2010.ini /language en-us", 1, True
Параметры к Run
метод описаны более подробно на сайте MSDN. Самое главное, True
заставляет скрипт ждать, пока setup.exe
закончился.