Pfad laufender Prozesse ermitteln



  • Hi,

    ich versuche grade ein tool alias Pslist.exe zu schreiben, bekomme auch schon alle Prozesse gelistet nur verstehe ich nicht wieso die Arbeitsverzeichnisse nicht mitangezeigt werden.

    void ProcInfo(const userinput * const u){
    
    	HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
    	if (hSnapshot==-1){
    		return;
    	}
    
    	PROCESSENTRY32 pe;
    
    	pe.dwSize=sizeof(PROCESSENTRY32);
    
    	BOOL retval=Process32First(hSnapshot,&pe);
    	while(retval){
    		u_respond(u,"%i %s",pe.th32ProcessID, pe.szExeFile);
    		pe.dwSize=sizeof(PROCESSENTRY32);
    		retval=Process32Next(hSnapshot,&pe);
    	}
    
    	CloseHandle(hSnapshot);
    }
    

    MSDN sagt dazu:
    The executable file and path for the process are stored in the szExeFile member of the structure.

    Nun wenn das so ist verstehe ich nicht wie ich drauf zugreifen kann.

    Ausgabe:
    ...
    1144 svchost.exe
    1264 spoolsv.exe
    1548 explorer.exe
    1716 AVGUARD.EXE
    1728 AVWUPSRV.EXE
    ...

    Danke für eure Tips 🙂



  • Vermutlich musst Du "OpenProcess" und "GetModuleFileNameEx(hProc, NULL, ...)" verwenden...



  • Die Prozeduren kann ich leider nicht verwenden

    undefined reference to _EnumProcessModules@16' undefined reference to_GeumProcessModules@16'

    trotz : #include "psapi.h"



  • Warum willst Du auch irgendwelche Module enumerieren? Ich hab zumindest davon nichts gesagt...


Anmelden zum Antworten