Script to wrap around an application and wait for app to finish
Updated version
The following will execute your setup program, then wait for there to be no more instances of setup.exe
running. There is a maximum timeout value you can set (so that it doesn't hang forever).
Please note that this can't detect whether setup is done, only whether or not a setup.exe
process is running. It's a minor distinction, but an important one.
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
This is relatively straightforward:
Option Explicit
Dim objWshShell
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.Run "setup.exe /qb /I Autocad2010.ini /language en-us", 1, True
The parameters to the Run
method are described in greater detail on the MSDN site. Most importantly, True
causes the script to wait until setup.exe
has terminated.
Related videos on Youtube
JohnyV
Updated on September 18, 2022Comments
-
JohnyV over 1 year
I need a vb script that will wrap around an applcation which will stay open until the application finishes. I want to be able to call the following command
"setup.exe /qb /I Autocad2010.ini /language en-us"
But I need the vb script to stay running until the setup has finished.
Is there anyone out there that can assist with this.
Much appreciated in advance
-
Admin about 14 yearsAre you trying to use VB to deploy Autocad to a bunch of computers? If that's what you're trying to accomplish you may want to have a look at wpkg.org. They will provide you a app deployment mechanism that can run pre and post install commands or scripts.
-
Admin about 14 yearsI am trying to deploy autocad with MDT but the apps keep trying to start before the other finishes. So i was told that if I run a vbscript around the apps that MDT will see it as an app and wait for it to finish. The packages I have are from the deployment on the autocad discs.
-
-
JohnyV about 14 yearsI tried this script but the script stops before the setup.exe is finsihed. Therefore MDT thinks that the application has stopped installing and continues on its task sequence.
-
fission about 14 yearsThe script waits until that
setup.exe
finishes – but it could be thatsetup.exe
launches another instance of itself. I'll update my answer with a version that waits until nosetup.exe
is detected to be running on the system.