Hi, I have this function that iterates through all the process and prints them:
It seems to be working but it lists 3 times the same process, for example:Code:int ProcessJudger (void){ // enumerazione processi char szProcessName[MAX_PATH]; DWORD aProcesses[1024], cbNeeded, cProcesses; unsigned int i; double tmp; // process identification number char tempid[MAX_PATH]; char pid[MAX_PATH]; int PidNumber = 0; if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ) return -1; cProcesses = cbNeeded / sizeof(DWORD); for ( i = 0; i < cProcesses; i++ ) { HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i] ); if ( NULL != hProcess ) { HMODULE hMod; DWORD cbNeeded; if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded ) ) { GetModuleBaseName( hProcess, hMod, szProcessName, sizeof(szProcessName)); }// end nested IF }// end IF printf ("Processo: %s\n", szProcessName); CloseHandle( hProcess ); }// end FOR printf("\n"); return 0; }
any idea WHY it sees "calc.exe" (that is the last opened process) 3 times?Processo: calc.exe
Processo: calc.exe
Processo: smss.exe
Processo: smss.exe
Processo: winlogon.exe
Processo: services.exe
Processo: lsass.exe
Processo: svchost.exe
Processo: svchost.exe
Processo: svchost.exe
Processo: svchost.exe
Processo: spoolsv.exe
Processo: Explorer.EXE
Processo: Explorer.EXE
Processo: AVGUARD.EXE
Processo: AVWUPSRV.EXE
Processo: nvsvc32.exe
Processo: SMAgent.exe
Processo: svchost.exe
Processo: svchost.exe
Processo: vsmon.exe
Processo: StartupMonitor.exe
Processo: zlclient.exe
Processo: AVGNT.EXE
Processo: boincmgr.exe
Processo: boinc.exe
Processo: setiathome_4.18_windows_intelx86.exe
Processo: msnmsgr.exe
Processo: WISPTIS.EXE
Processo: DevCpp.exe
Processo: msimn.exe
Processo: iexplore.exe
Processo: cmd.exe
Processo: Limiter.exe
Processo: calc.exe



LinkBack URL
About LinkBacks



