Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Parameter für SetWindowsHookEx - WM_ACTIVATE (https://www.delphipraxis.net/163921-parameter-fuer-setwindowshookex-wm_activate.html)

DarkItachi 21. Okt 2011 13:51

Parameter für SetWindowsHookEx - WM_ACTIVATE
 
Hallöchen,

Ich habe mich durch lauter Dokumentationen und Source-Codes durchgelesen.
Leider finde ich nirgendswo, wie ich einen globalen Hook in WM_ACTIVATE setzen kann.
Ich möchte nämlich (! ohne Timer) prüfen ob sich ein bestimmtes Programm im Vordergrund befindet, sprich fokussiert ist.

Könnte mir jemand erklären, wie ich SetWindowsHookEx innerhalb einer library benutzen muss ?
Müsste ich WH_GETMESSAGE, WH_CALLWNDPROC oder einen anderen Wert für idHook (1. Parameter) verwenden ?

Vielen Dank,
Mit freundlichen Grüßen,
DarkItachi

Assarbad 10. Apr 2012 23:03

AW: Parameter für SetWindowsHookEx - WM_ACTIVATE
 
WH_GETMESSAGE oder WH_CALLWNDPROC wären wohl beide sinnvoll. Und es sollte ein globaler Hook sein.

WH_CALLWNDPROC böte sich an, wenn du verhindern willst, daß die Nachricht an das entsprechende Fenster geschickt wird (erinnere dich, daß dein Hook im Kontext der anderen Anwendung läuft) und WH_CALLWNDPROCRET wenn du benachrichtigt werden willst sobald es im Vordergrund ist.

Außerdem dran denken daß du globale Hooks nur installieren kannst wenn deine DLL ebenfalls 64bit ist, sollte das Zielprogramm 64bit sein. Siehe MSDN-Library durchsuchenSetWindowsHookEx.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz