Bonjour,
Je me remet au VBScript depuis quelque temps et j'ai constaté que j'ai oublié quelque astuce
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.
Le code en commentaire c'est du code TestDirector, pour ceux que cela interesse, ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Ok mais bon j'aimerais comprendre pouquoi cela ne fonctionne pas.
Partager