Von ProzessID auf Dateiname rückschließen
-
Hallo alle zusammen,
ich bin gerde dabei mir einen Taskmanager zusammen zu bauen. Jetzt möchte ich mittels der ermittelten Prozess ID auf den Namen der ausgeführten Datei rückschließen. Ich habe leider keinen Ansatz wie ich das machen kann. Kann mir jemand von euch was sazu sagen? Wie sieht es mit GetProcessName aus?
-
Du kannst es mal damit versuchen (pid ist die Prozess-ID)
HANDLE hProcess = (HANDLE)OpenProcess(PROCESS_ALL_ACCESS, TRUE, pid); HMODULE hModule; EnumProcessModules(hProcess,&hModule,sizeof(HMODULE),NULL); TCHAR szName[MAX_PATH]; GetModuleFileNameEx(hProcess,hModule,szName,sizeof(szName)/sizeof(szName[0]));
-
hi flenders,
danke für die Antwort. Habe aber das Problem das mein Compiler (Borland C++ Builder 4) die Funktionen EnumProcessModules und GetModuleFileNameEx nicht kennt. Muss ich eine bestimmte Header Datei einfügen oder was läuft da falsch?
-
Habe ich vergessen zu erwähnen (hättest du aber auch gesehen, wenn du die Funktionen in der Doku nachgeschaut hättest): Du musst Psapi.h einbinden und Psapi.lib linken
-
und wo bekomme ich die her?
-
-
kannst aber auch die toolhelper funktionen verwenden soweit ich weiß sind die auf win 95 kompatibel wärend dir dort die psapi oder wie sie heißt nicht läuft!
HANDLE WINAPI CreateToolhelp32Snapshot(
DWORD dwFlags,
DWORD th32ProcessID
);einfach in der msdn library nachschlagen... da kriegst gleich ne struktur mit all den daten!!! Kannst dir glaub ich auch alle module die zu einem Prozess gehören anzeigen lassen das wär dann ein zusätzliches feature für deinen taskmanager...
cu Manuelh87