Bonjour,

Dans un de mes programmes je récupère une liste de processus sur un PC (distant ou local, peut importe) et je kill certain de ces processus grâce au code suivant :
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
 
index = 0
Do Until objTextFile.AtEndOfStream
    Set objWMIService = GetObject("winmgmts:
                    {impersonationLevel=impersonate}!\\ " 
                    & ADRESSE_IP_PC_DISTANT & "\root\cimv2")
 
    Set colProcess = objWMIService.ExecQuery ("Select * from Win32_Process")
    For Each objProcess in colProcess
         If objProcess.ParentProcessID = PID_REFERANT Then
            ..........
            index = index + 1
         End If
    Next
    Set objWMIService = nothing
    Set colprocess = nothing
Loop
Mon problème se trouve au niveau de la requête exécuté par ExecQuery. Telle qu'elle est écrite cela fonctionne. Mais si je mais cette requête à la place :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Set colProcess = objWMIService.ExecQuery
                ("Select * from Win32_Process Where Name = notepad.exe")
Alors je ne peut plus parcourir mon objet colProcess par une boucle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
For each object in colProcess
.....
Next
Cela plante au niveau de la boucle, et cela quelque soit le code se trouvant dans la boucle.
Est ce que quelqu'un aurait une idee ?

Merci d'avance pour vos réponses.