prozessname zur PID
-
hi
ich möchte den prozessnamen des aktuellen fensters finden.
an die pid komme ich schonmal mit GetWindowThreadProcessId(GetForegroundWindow(),0).wie kann ich aber den prozessnamen zu der pid ermitteln?
gruß afds
-
du könntest einfach alle Prozesse durchgehen und die PID vergleichen
greetz KN4CK3R
-
gibt es keine andere lösung?
-
OpenProcess!?
-
ok habe jetzt versucht über open process den handel zu bekommen und dann mit QueryFullProcessImageName den namen zu bekommen......
allerdings gibt der compiler mir immer einen fehler.
windows.h ist doch der richtige header?code
#include<windows.h> #include<iostream> using namespace std; int main(){ DWORD id=0,oldid; while(1){ //getid if new then name oldid=id; id=GetWindowThreadProcessId(GetForegroundWindow(),0); if(id==oldid){ //gethandelofwnd if not null continue HANDLE h=OpenProcess(0,0,id); if(h!=NULL){} LPTSTR name = new CHAR[1024]; DWORD size= 1024; if(QueryFullProcessImageName(h,0,name,&size)){ cout<<name<<'\n'; }; //close handel CloseHandle(h); }; }; //wait Sleep(50); } }error
21|error: `QueryFullProcessImageName' was not declared in this scope|was mache ich falsch?
-
ein paar fehler im code beseitigt aber das problem bleibt....
#include<windows.h> #include<Winbase.h> #include<iostream> using namespace std; int main(){ DWORD id=0,oldid; while(1){ //getid if new then name oldid=id; id=GetWindowThreadProcessId(GetForegroundWindow(),0); if(id==oldid){ //gethandelofwnd if not null continue HANDLE h=OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION,0,id); if(h!=NULL){ LPTSTR name = new CHAR[1024]; DWORD size= 1024; if(QueryFullProcessImageName(h,0,name,&size)){ cout<<name<<'\n'; }; //close handel CloseHandle(h); }; }; //wait Sleep(50); } }
-
oben ein #define _WIN32_WINNT 0x0600 rein. Funktioniert aber erst ab Vista die Funktion.
greetz KN4CK3R
-
bekomme immernoch den fehler......
btw habe win7
-
Du solltest einen sinnvollen Compiler verwenden, welcher auch ein aktuelles PSDK hat.
Oder verwende alte Funktionen, wie GetModuleFileNameEx!