Prüfen welches Fenster gerade im Vordergrund ist
-
Hallo wie kann ich rausfinden welches Fenster sich gerade im Vordergrund ist?
Mit GetForegroundWindow bekomme ich zwar ein Handle vom momentan aktiven Fenster aber dadurch weiss ich ja noch nicht welches Fenster jetzt im Vorderground ist gibts da eine Funktion für?
Und wie sieht es bei diesem Fall aus:
Es gibt Prozess a mit dem Fensternamen "test" und es gibt Prozess b mit dem Fensternamen "test".
Ich will aber wissen was das Fenster "test" von Prozess a aktiv ist.
Ist sowas überhaupt möglich rauszufinden?
-
HWND WINAPI GetForegroundWindow(void);
-
GetWindowThreadProcessId
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633522(v=vs.85).aspx
-
Im Gegesatz zu Dir meint Microsoft:
Retrieves a handle to the foreground window (the window with which the user is currently working). The system assigns a slightly higher priority to the thread that creates the foreground window than it does to other threads.
-
Sorry was ich sagte paßt nicht
-
Ähm zu Deiner 1. Frage paßt mein Antwort schon. Zur 2. nicht
Ist das schwierig
-
Aber wie weiss ich jetzt welchem Fenster welcher identifier gehört wenn beide Prozesse bereits laufen?
string WindowName = "Rechner"; DWORD ident; HWND hwnd = FindWindow(0,WindowName.c_str()); if ( hwnd == 0 ) { cout<<"Konnte das Fenster " << WindowName << " nicht finden"<<endl; system("PAUSE"); return 0; } DWORD ret = GetWindowThreadProcessId( hwnd, &ident ); cout<<"ret: " << ret << endl;
-
Laut dokumentation von GetWindowThreadProcessId müsste doch nach dem Aufruf von der Funktion in deiner Variablen ident die Process-ID stehen.
Um an den Namen zu kommen, könnte dir das hier weiterhelfen, siehe antwort 2:
http://stackoverflow.com/questions/4102569/get-process-name-from-process-id-win32