1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| Option Explicit
Dim WS, MyProcess, intReturn
Set WS = CreateObject("WScript.Shell")
MyProcess = "Calc.exe"
Do
'On vérifie si le processus de la calculatrice ne tourne pas alors
'on l'exécute
If Not CheckProcess(MyProcess) Then
intReturn = WS.PopUp(MyProcess & " is not running", 2, MyProcess, 1)
' Si l'utilisteur clique sur le bouton "Annuler", on quitte Wscript sans lancer le processus
' Si aucune action n'a été entreprise ou qu'on cliqué sur OK, le script continue et lance le processus
If intReturn = 2 Then Wscript.Quit
WS.Run MyProcess
Else
'On fait une pause d'une minute et on continue dans notre boucle pour vérifier
'la présence ou non de notre processus (Dans notre cas = Calc.exe)
Pause(1)
End If
Loop
'************************************************
Function CheckProcess(MyProcess)
Dim strComputer,objWMIService,colProcessList
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select Name from Win32_Process WHERE Name = '" & MyProcess & "'")
If colProcessList.count > 0 Then
CheckProcess = True
' MsgBox"is running"
Else
CheckProcess = False
End If
Set objWMIService = Nothing
Set colProcessList = Nothing
End Function
'**************************************************
Sub Pause(nMinutes)
Wscript.Sleep(nMinutes*1000*60)
End Sub
'************************************************** |
Partager