Scripting
環繞應用程序並等待應用程序完成的腳本
我需要一個環繞應用程序的 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
該方法的參數在 MSDN 站點上有
Run
更詳細的描述。最重要的是,導致腳本一直等到終止。True``setup.exe