我需要一个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终止。