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 51 52 53
| #include <windows.h>
#include <stdio.h>
#include <psapi.h>
void PrintProcessNameAndID( DWORD processID )
{
char szProcessName[MAX_PATH] = "<unknown>";
/* Récupération du handle du processus */
HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
if (NULL != hProcess )
{
HMODULE hMod;
DWORD cbNeeded;
/* récupération du premier module */
if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod),
&cbNeeded) )
{
/* récupération du nom */
GetModuleBaseName( hProcess, hMod, szProcessName,
sizeof(szProcessName)/sizeof(char) );
printf("%ld: %s\n", processID, szProcessName );
}
}
CloseHandle( hProcess );
}
int main( void )
{
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
/* récupération des processsus en cours */
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return 0;
/* calcul de nombre de processus */
cProcesses = cbNeeded / sizeof(DWORD);
/* affichage des processus */
for ( i = 0; i < cProcesses; i++ )
if( aProcesses[i] != 0 )
PrintProcessNameAndID( aProcesses[i] );
return 0;
} |
Partager