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 Tasten abfangen / Frage zu Hooks (https://www.delphipraxis.net/33972-tasten-abfangen-frage-zu-hooks.html)

Cubbie 15. Nov 2004 18:29


Tasten abfangen / Frage zu Hooks
 
Hi,

wie der Titel sagt, möchte ich Tastendrücke abfangen... soweit so gut, das funktioniert auch schon per hook-dll, wie es im hier oft verlinkten Tutorial erklärt ist ;)

Was ich jetzt gern machen würde:
Angenommen ich fange das "A" ab... wenn ich jetzt das A drücke, will ich entscheiden können, ob ein "A" an die Anwendung geschickt wird, die grade offen ist, oder ob das A NUR eine Aktion in meinem Programm auslöst und ansonsten völlig ignoriert wird.

Anderes Beispiel: Taste ist wieder das A
Taste A wird gedrückt -> "A" wird an die Anwendung geschickt
Taste A wird länger als 2 Sekunden gehalten -> Funktion wird ausgelöst, aber "A" wird nicht mehr geschickt

Ich hoffe, das war halbwegs verständlich... :)

Jedenfalls fehlt mir da der entscheidende Hinweis, wie das zu bewerkstelligen ist.. per Suche hab ich leider nix gefunden.

fkerber 15. Nov 2004 18:32

Re: Tasten abfangen / Frage zu Hooks
 
Hi!

Kannst du mit dem Hook KeyDown und KeyUp abfangen?
Dann kannst du die Zeitdifferenz berechnen.


Ciao Frederic

Cubbie 15. Nov 2004 18:35

Re: Tasten abfangen / Frage zu Hooks
 
Hm.. das Hauptproblem ist ja, dass ich nicht weiß, wie ich die Taste komplett abfangen kann, d.h. dass unter bestimmten Umständen kein "A" geschrieben wird, um beim Beispiel zu bleiben.. :)

perle 16. Nov 2004 07:39

Re: Tasten abfangen / Frage zu Hooks
 
also ich kenne mich mit hooks so gut wie garnicht aus, aber klappt es evtl wenn du im Messagehandler des Hooks das CallNextHookEx weglässt? Denn soweit ich verstanden habe, wird dadurch doch das abgefangene an den nächsten Hook weitergegeben und sonst halt nicht oder?

ansonsten kannst du die abgefangene Taste vielleicht einfach durch ein #0 ersetzen und dann weitergeben?

Cubbie 17. Nov 2004 23:29

Re: Tasten abfangen / Frage zu Hooks
 
In meinem Message-Handler gibts den Aufruf garnicht.. :)
Und leider auch keine Variable, die mir die Taste nennt. Die wird als lparam einer TMessage übergeben, und der scheine ich dummerweise nix zuweisen zu können oder es hat keine Auswirkung.. keine Ahnung.

toms 18. Nov 2004 04:24

Re: Tasten abfangen / Frage zu Hooks
 
Hi Cubbie,

Schau dir doch mal die Komponente Bei Google suchenTWatch Delphi an.
Diese gibt dir sicher Ideen, wie du deinen Hook implementieren kannst und
hilft dir dein Problem zu lösen.

Assarbad 5. Dez 2004 21:39

Re: Tasten abfangen / Frage zu Hooks
 
Bei meinem Hooktut ist ein Beispiel eines Keyloggers dabei. Der loggt die Up/Down-Ereignisse. Du kannst das als Basis für dein Problem nehmen.
Nur eine Taste kann gleichzeitig "Down" sein, es sei denn es handelt sich um eine Escape-Sequenz (Strg/Alt/Alt Gr usw) wo dann zu dem Buchstaben noch ein Flag dazukommt, welches die Ausgabe modifiziert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 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