Détecter la terminaison d'un processus.
Bonjour,
Je me remet au VBScript depuis quelque temps et j'ai constaté que j'ai oublié quelque astuce :D
Bon la j'ai un petit problème, mon code me semble bon mais ce n'est pas le cas. Je cherche à détecter la fin d'un processus dont j'ai l'ID.
Code:
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 43 44 45 46 47 48 49 50
| Sub Test_Main(Debug, CurrentTestSet, CurrentTSTest, CurrentRun)
' *** VBScript Limitation ! ***
' "On Error Resume Next" statement suppresses run-time script errors.
' To handle run-time error in a right way, you need to put "If Err.Number <> 0 Then"
' after each line of code that can cause such a run-time error.
On Error Resume Next
' clear output window
TDOutput.Clear
dim ee
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2:Win32_Process")
objWMIService.Create """C:\Program Files\TTworkbenchBasic\ttman.bat""" & " -l c:\temp\test -r excel " & """C:\Documents and Settings\uspa8495\workspace\TTsuite-SIP_3.1.1\ttcn3\RFC3261\test.clf""", "C:\Program Files\TTworkbenchBasic\", null, ee
waitforexit ee
Set objWMIService = nothing
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colFiles = objWMIService.ExecQuery("Select * from CIM_DataFile where Path = '\\temp\\'")
'Set AttacheFile = CurrentRun.Attachments
'For Each objFile in colFiles
'Set AttacheItem = AttacheFile.AddItem(Null)
' AttacheItem.FileName = "C:\temp\" & objFile.Name
' AttacheItem.Type=1
' AttacheItem.Post 'Mise à jour de la modification sur le serveur de TestDirector.
'Next
'Set AttacheFile = nothing
'Set AttacheItem = nothing
If Not Debug Then
End If
' handle run-time errors
If Err.Number <> 0 Then
TDOutput.Print "Run-time error [" & Err.Number & "] : " & Err.Description
' update execution status in "Test" mode
'If Not Debug Then
' CurrentRun.Status = "Failed"
' CurrentTSTest.Status = "Failed"
'End If
End If
End Sub
function waitforexit(ee)
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Pid = '" & ee & "'")
if not IsNull(colProcesses) then
XTools.Sleep(1000) 'Code testdirector, c'est un sleep :D
waitforexit ee
end if
end function |
Le code en commentaire c'est du code TestDirector, pour ceux que cela interesse, ...
Bon le problème est dnas wiatforexit, je ne sors pas de ma récursivité.
Vous allez me dire qu'elle idée de passer par la récursivité, je fais un foreach et je met le set colprocesses dedans et je test sa nullité et c'est moins dangereux :D
Ok mais bon j'aimerais comprendre pouquoi cela ne fonctionne pas.