Exe im Vordergrund / Windows XP
-
Guten Tag, da bin ich schon wieder!
Mein Rechner ist immer noch kaputt und so bleibt mir nichts anderes übrig, als vor den Windowsrechnern meiner Bekannten rumzuhocken
So, diesmal versuche ich folgendes: ich möchte zu dem Fenster im Vordergrund die passende *.exe finden. Habe auch mal was zusammengefrickelt, leider läuft das nur unter Windows 9x. Unter XP liefert die Funktion immer den Namen der Anwendung, zudem die Funktion selbst gehört:
char *get_current_process (void) { HWND hwnd; unsigned long pid; HANDLE snap; PROCESSENTRY32 pinfo; static char *app=NULL; // allocate memory: if (app==NULL) app=(char*)malloc(100); // get handler of active window: hwnd=GetForegroundWindow(); // Get Process ID: GetWindowThreadProcessId(hwnd, &pid); snap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (snap!=INVALID_HANDLE_VALUE) { pinfo.dwSize=sizeof(PROCESSENTRY32); // get first process: if (Process32First(snap, &pinfo)) { // find the process: do { if (pinfo.th32ProcessID==pid) { // return exename: CloseHandle(snap); memset(app, 0, 100); strcpy(app, pinfo.szExeFile); int i=strlen(app); while (app[i]!='\\') { app[i]=tolower(app[i]); --i; } return(app+i+1); } } while (Process32Next(snap, &pinfo)); } } CloseHandle(snap); return("\0"); }Hat einer 'ne Ahnung, woran das liegen könnte?! Ich denke mal, dass unter XP die falsche Prozess-ID geliefert wird...
Mfg, Ein lustiger Gast