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
|
void processusAll()
{
// Recupere les PID de tous les processus
DWORD pid[500];
DWORD cb;
HANDLE proc;
HMODULE module;
DWORD cb1;
TCHAR procNom[256];
printf("\nProcessus 32b : \n\n");
if(EnumProcesses(pid,500,&cb)!=0)
{
for(int i=0;i<cb/sizeof(DWORD);i++)
{
//printf("%d\n",pid[i]);
// Recupere handle sur chaque processus via leur PID
proc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,FALSE,pid[i]);
if(proc != NULL)
{
// Recupere les modules du processus. On veut ici le 1er module, qui est l'executable du processus, donc indirectement son nom.
//printf("OK pour n %d\n",pid[i]);
if(EnumProcessModulesEx(proc,&module,sizeof(module),&cb1,LIST_MODULES_ALL)!=0)
{
// Recupere le nom du 1er module
GetModuleBaseName(proc,module,procNom,256/sizeof(char));
printf("%d \t %s\n",pid[i], procNom);
CloseHandle(proc);
}
else
{
printf("Erreur3 : %ld pour n %d\n", GetLastError(),pid[i]);
}
}
else
{
printf("Erreur2 : %ld pour n %d\n", GetLastError(),pid[i]);
}
}
}
} |
Partager