Bonjour,
J'aimerais récupérer la liste des processus actifs en C pour vérifier si un processus en particulier est actif.
J'ai essayé plusieurs codes dont celui ci :

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
 
#define _WIN32_WINNT 0x0501
 
#include <windows.h>
#include <tchar.h>
#include <psapi.h>
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
	TCHAR fichier[5000];
	DWORD pids[500];
	DWORD returned;
	unsigned int i;
	int t;
	EnumProcesses(pids,500,&returned);
        HANDLE h;
 
 
	for(i=0;i<returned/sizeof(DWORD);i++)
	{
		h = OpenProcess(READ_CONTROL|PROCESS_QUERY_INFORMATION,0,pids[i]);
 
		printf("PID = %d  ",pids[i]);
		if (h==NULL)
		{
			DWORD err = GetLastError();
			printf("ECHEC HANDLE : Code %d\n",err);
			continue;
		}
		t = GetProcessImageFileName(h,fichier,5000);
		if (t==0)
		{
			DWORD err = GetLastError();
			printf("ECHEC RECUP NOM : Code %d\n",err);
			continue;
		}
		_tprintf(_T("  %s\n"),fichier);
		CloseHandle(h);
	}
	return 0;
}
Cependant ce code me renvoit que très peu de processus. Sur beaucoup de lignes, il y a écrit error handle code 5.
De plus, il me renvoit le chemin entier des processus alors que j'aimerais avoir seulement le nom du processus.
Pourriez vous me dire comment il faudrait que je fasse ?

Cordialement

Sybess