Entwickler-Ecke

Windows API - Handle von Fenstern bei deren Anzeige auslesen


retnyg - Mi 04.12.02 22:26
Titel: Handle von Fenstern bei deren Anzeige auslesen
Hallo, gibt es eine Möglichkeit den API-Aufruf oder das Event beim Anzeigen eines neuen Fensters so abzufangen, dass ich das Handle dieses Fensters (oder Unterfensters) auslesen kann ?

So könnte ich z.b. lästige Dialoge beim anzeigen direkt "wegklicken" lassen, beispielsweise mit Sendmessage (hnd, WM_CLOSE);

Danke im voraus,
Retnyg


Delete - Do 05.12.02 00:41

Wemm es sich um ein betsimmtes handelt kannst du in einem Timer-Ereignis (oder besser in einem Thread) mit FindWindow danachsuchen, wenn der Titel oder Klassenname bekannt ist.

Ansonsten käme noch ein System-Hook in Frage.


retnyg - Do 05.12.02 09:17

Ich habe bereits mit einer timerfunktion probiert, und zwar habe ich z.b alle 100 ms mit der enumwindows funktion die fenster durchgescannt.
Funktioniert theoretisch, aber mit der verwendeten Prozedur von http://www.swissdelphicenter.ch/de/showcode.php?id=410 wird innerhalb von 1 min. der komplette Arbeitsspeicher ausgefüllt, und die CPU-Last ist auf 100%.
Wie würde das mit einem Hook ausschauen, wo müsste ich den ansetzen ?
Ich möchte ja weder Tastatur noch Mauseingaben abfangen, sondern ein Event "NewWindow" oder wie immer das heisst.

Bitte hilf mir auf die Sprünge :P

danke,
Retnyg


Delete - Do 05.12.02 11:09

Kuck dir mal den LuckieSpy von meiner Seite an. Da mache ich genau das.


retnyg - Mo 09.12.02 20:45

Danke für den Tip, mit Timer und Findwindows gehts gut.
Dein Hook-Code funktioniert bei mir leider nicht mit allen Fenstern.


Delete - Mo 09.12.02 20:50

Mit welchen nicht?


retnyg - Mo 09.12.02 22:07

z.b. solche die lästige registrier hinweise anzeigen oder ähnliches - einige subfenster halt.
aber problemstellung ist gelöst, danke