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/)
-   -   Delphi Tastatur-Hook: wParam und lParam / Mehrfachdurchlauf (https://www.delphipraxis.net/129587-tastatur-hook-wparam-und-lparam-mehrfachdurchlauf.html)

64Jabor 21. Feb 2009 21:29


Tastatur-Hook: wParam und lParam / Mehrfachdurchlauf
 
Hallo DP,

mein globaler Tastatur-Hook soll bei einer bestimmten Tastenkombination (STRG + P) eine Funktion in meinem Haupprogramm in Gang setzen.
Dies macht es mit einer eigenen WM-Message, die einwandfrei ankommt.

Mein Problem dabei ist, dass ich
1. nicht verstehe WO ich sehe, dass CTRL gedrückt ist, denn wParam enthält den Tastencode (in meinem Fall "das P")

und vor allem
2. diese Nachricht gleich zweimal gesendet wird.
Ich habe nicht sehr viel Ahnung von Hooks, ich verstehe dass die DLL injiziert wird und so global für jede Anwendung verfügbar ist und mein Hook ein WH_KEYBOARD-Hook ist - kommt vielleicht daher Problem 2, also dass sie HookProc bei KEYDOWN und KEYUP durchläuft?

Wenn da jemand eingefleichtes sich erbarmen würde...

Danke und Gruß
Sebi

jaenicke 21. Feb 2009 21:48

Re: Tastatur-Hook: wParam und lParam / Mehrfachdurchlauf
 
Also wenn ich dich richtig verstehe, dann wäre RegisterHotKey hier viel passender:
http://msdn.microsoft.com/en-us/library/ms646309.aspx

Damit kannst du viel einfacher als mit einem Hook global auf eine Tastenkombination reagieren.

// EDIT:
Nebenbei springt so auch nicht die Firewall an, bei mir würde eine Sicherheitswarnung bei einem Hook kommen, dass die Tastatur versucht wird zu überwachen...

64Jabor 21. Feb 2009 21:56

Re: Tastatur-Hook: wParam und lParam / Mehrfachdurchlauf
 
OMFG
DU weißt gar nicht WIE SEHR du mir geholfen hast xD
TAUSEND Dank!

Den ganzen "komplizierten" Hook-Kam hätte ich mir getrost schenken können :D

Hedge 24. Feb 2009 17:14

Re: Tastatur-Hook: wParam und lParam / Mehrfachdurchlauf
 
Das geht sogar noch einfacher:

TGlobalHotkey

Achso und:

Zitat:

OMFG
||
||
\||/
\/

http://www.duits.de/docentenkamer/re...end-lernen.jpg


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

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