Fensterstatus prüfen
-
Ich habe ein Fensterhandle (HWND) und möchte nun zwei Dinge für das entsprechende Fenster prüfen:
1. Wurde das Fenster geschlossen?
2. Ist das Fenster minimiert bzw. ist es gerade das aktive Fenster.Wie mache ich das?
-
Zu 2.) IsIconic()
-
Fenster geschlossen?
Dann bekommst Du eine WM_CLOSE Nachricht!IsIconic oder (GetStyle() & WS_MINIMIZE)!=0
-
Fenster geschlossen?
Dann bekommst Du eine WM_CLOSE Nachricht!Naja, ich will ja das Fenster eines fremden Programms überwachen. Wie soll ich denn da an die Nachricht kommen?
-
Das kannst Du nicht. In dem Moment in dem das Fenster geschlossen wird, wird auch das Handle ungültig (IsWindow liefert FALSE). Aber weil eben das Handle ungültig wird gibt es keine definierte Funktion, die das macht was Du möchtest.
Wenn Du Pech hast wird das Window Handle recycledund ein neues Fenster mit dem selben Handle wird erzeugt...
-
Nungut, wenn ich mit IsWindow() auf Gültigkeit prüfe könnte ich ja im Anschluss noch den Fenstertitel prüfen. Wie kann ich den aulesen?
-
GetWindowText !?
PS: Warum willst Du das überhaupt machen?
-
Ich überwche den Status eines eines anderen Programms, reagiere evtl. auf Änderungen etc. Wenn das "fremde" Programm geshlossen wird, kann ich auch meinen kleinen 'Agenten' automatisch mit schließen.
-
Captain Hook.
-
Dann solltest Du auch genau das tun was Du machen willst!
Also: Überwache den Prozess und nicht das Fenster!
Siehe: OpenProcess und WaitForSingleObject
-
Jochen Kalmbach schrieb:
Siehe: OpenProcess und WaitForSingleObject
Äh ja. Das ist wohl besser als nen fetten Hook zu programmieren, nur um auf WM_CLOSE zu warten.