Zobacz czy poniższy przykład rozwiązuje temat.
Kod:
dispatch dLocator = "WbemScripting.SWbemLocator"
dispatch dServices = dLocator.ConnectServer(".","root/cimv2")
dispatch dProcs
string sRun = "calc.exe" // co uruchomić i na co czekać
int sub sleep( int iSec )
buf = Data() + " " + Time()
find regular "^{*}/--{*}/--{*} {*}/:{*}/:{*}$"
long lStart = ( val(regular 3) * 60 * 60 * 24 ) + (val(regular 4) * 60 * 60) + ( val( regular 5 ) * 60 ) + ( val( regular 6 ))
long lStop = lStart
while (lStop - lStart) < iSec
buf = Data() + " " + Time()
find regular "^{*}/--{*}/--{*} {*}/:{*}/:{*}$"
lStop = ( val( regular 3) * 60 * 60 * 24 ) + ( val( regular 4 ) * 60 * 60 ) + ( val( regular 5 ) * 60 ) + ( val( regular 6 ))
wend
endsub
int sub CzyDzialaProgram( string sProgram )
dProcs = dServices.ExecQuery(using "SELECT * FROM Win32_Process WHERE name='%s'",sProgram)
CzyDzialaProgram = dProcs.Count()
endsub
Execute( sRun )
Sleep( 2 )
popup(1,"Czekam na zamknięcie " + sRun)
While CzyDzialaProgram( sRun ) > 0
Sleep( 2 ) // można zobaczyć jak będzie bez tego sleepa (chodzi o obciążenie procesora)
wend
Message using "Proces %s został zamknięty", sRun
NoOutPut()
Kliknij poniższy screen aby zobaczyć jak to działa
Załącznik:
Run Calculator.gif [ 400.28 KiB | Przeglądany 2554 razy ]