Wie Event für Erzeugen / Schließen von Fenster abfangen?

09/07/2009 - 10:55 von Christoph Engelhardt | Report spam
Hallo NG,

folgendes Problem:

Ich will mitbekommen, wenn Fenster in Windows geöffnet oder
geschlossen werden.
Ich habe mich schon etwas umgesehen und gelesen, dass man keine
globalen Hooks für WindowHook_ComputerBasedTraining (WH_CBT) setzen
kann.

Trotzdem meine Frage:
Gibt es eine Möglichkeit im managed Code die Erzeugung und Zerstörung
von Fenster (nicht nur in der CLR) mitzubekommen?
 

Lesen sie die antworten

#1 Kerem Gümrükcü
09/07/2009 - 16:32 | Warnen spam
Hallo,

naja, das ist an sich ohne einen globalen hook nicht
ganz sauber zu lösen. Der global hook ist die beste,
sauberste Lösung für so was. Eine andere, aber nicht
ganz saubere, dennoch u.U: "ausreichende" Lösung
ist die Benutzung von zwei Funktionen der Windows
API:

[EnumWindows Function]
http://msdn.microsoft.com/en-us/library/ms633497(VS.85).aspx

bzw.

[EnumDesktopWindows Function]
http://msdn.microsoft.com/en-us/library/ms682615(VS.85).aspx

Mit der ersten Funktion holst Du alle Fensterhandles der aktuell
geöffneten Fenster in deinem Desktop/Umgebung. Mit der zweiten
kannst Du alle Fenster ermitteln, die auch auf anderen Desktops
geöffnet sind, was Du auch u.U. haben willst,...

Beide Funktionen kannst Du z.B. mit einem vorgegebenen Interval
aufrufen und die Handles und div. andere Fenstereigenschaften in
z.B. einer Liste Speichern und dann bei jedem erneuten Aufruf
prüfen, ob es bereits neue Handles für Fenster gibt, bzw. vorhandene
Handles und Fenster nicht mehr gibt in dem Du die Ergebnisse gegen
deine Liste vergleichst.

Das ist zwar keine 100% saubere Lösung, aber immerhin kein Hook
und das erste, was mir jetzt so einfàllt,...

Hier gibt es PInvoke Signaturen und Beispiele:

[EnumWindows (user32)]
http://www.pinvoke.net/default.aspx...ndows.html

[EnumDesktopWindows (user32)]
http://www.pinvoke.net/default.aspx...ndows.html

Andere Beispiele findest Du zuhauf im Netz, einfach suchen,...

Viel Erfolg,...

Grüße

Kerem

Beste Grüsse / Best regards / Votre bien devoue
Kerem Gümrükcü
Latest Project: http://www.pro-it-education.de/soft...iceremover
Latest Open-Source Projects: http://entwicklung.junetz.de
"This reply is provided as is, without warranty express or implied."

Ähnliche fragen