Tu peux le faire avec WMI (Si WMI est installé sur ton système)
lcComputer = '.'
loWMIService = Getobject('winmgmts:' ;
+ '{impersonationLevel=impersonate}!\\' + lcComputer + '\root\cimv2')
colProcessList = loWMIService.ExecQuery ;
('Select * from Win32_Process')
Create Cursor Process (Name c(20),Id i,Thread i,pagefile i,pagefault i,workingset c(20))
Index On Name Tag Name
For Each loProcess In colProcessList
Insert Into Process (Name,Id,Thread,pagefile,pagefault,workingset);
VALUES (loProcess.Name,loProcess.ProcessID,loProcess.ThreadCount,loProcess.PageFileUsage,;
loProcess.pagefaults,loProcess.WorkingSetSize)
Next
BROWSE normal
Cependant, en récupérant la liste des tous les process (WMI, tasklist.exe,...), je ne peux pas être certain de récupérer le bon PID si j'ai plusieurs instances d'un même programme qui tournent en parallèles...
Je ne veux pas faire le difficile... Mais l'application dnas laquelle je dois récupérer le PID tourne sur un terminal serveur. Dès lors, je me retrouve avec 20 instances du même programme qui tournent simultanément sur une même machine (le TS).