![]() |
Können KeyHooks Tastenkombinationen ermitteln?
Ich beschäftige mich gerade mit mit KeyHooks, um ein Tool zu schreiben, das mir die gerade gedrückten Tasten anzeigt. Soweit, so gut. Nur bekomme ich dabei immer nur die letzte Taste angezeigt, die gedrückt wird. Möchte ich erfassen ob STRG+ALT+ENTF gedrückt wird, bekomme ich die Rückgabewerte STRG, dann ALT, dann ENTF. Ich weiß also zu der Zeit, dass die ENTF Taste gedrückt wird, aber nicht, dass es eine Tastenkombination ist.
Bevor ich also weiter mache, würde ich gerne wissen ob ich auf dem Holzweg bin. Kann man das damit ermitteln, und ich habe nur den falschen Weg gewählt, oder geht es überhaupt nicht? Denn einzelne Tasten bringen mir wenig. |
AW: Können KeyHooks Tastenkombinationen ermitteln?
Zitat:
![]() |
AW: Können KeyHooks Tastenkombinationen ermitteln?
Soweit ich weiss ist strg alt entf entwas speziell - es wird sogar ein hardware interrupt erzeugt (zumindest war das mal so..)
eventuell hilft das weiter: ![]() |
AW: Können KeyHooks Tastenkombinationen ermitteln?
Du bekommst das Drücken und Loslassen der Tasten einzeln. Im letzten Bit der Flags steht drin, ob die Taste gedrückt oder losgelassen wurde. Du weißt also, wenn noch Tasten gedrückt sind, wenn du dir das merkst.
Zitat:
|
AW: Können KeyHooks Tastenkombinationen ermitteln?
@peterbelow:
Ja, GetKeyboardState und Co. geben zwei Ergebnisse. * welche Taste/Tasten sind gerade jetzt, ähhh zum Beginn des Message-Events gedrückt gewesen (GetAsynchKeyboardState was wirklich gerade jetzt ist) * welche Tasten waren seit der letzten Abfrage gewesen - über einen Timer das "gerade jetzt", kann kürzere Tastendrücke übersehen - und beim "war gedrückt", ist nicht bekannt, in welcher Reihenfolge das passiert war - GetKeyboardState ist normal "netter", da es auch beim Debuggen den richtigen Wert liefert - während GetAsynchKeyboardState für Schleifen (also mehrmals in einem Event oder z.B. in einer Konsolenanwendung) |
AW: Können KeyHooks Tastenkombinationen ermitteln?
Zitat:
|
AW: Können KeyHooks Tastenkombinationen ermitteln?
Entweder du merkst dir den Status.
Beim Drücken und Loslassen einer Taste wird gespeichert, ob sie gesetzt ist. (Enum, BitSet oder Booleans) Außerdem lässt sich der Status dieser Tasten doch jederzeit abfragen. (Strg, Alt, Shift/CapsLock, Print, Rollen, NumLock) |
AW: Können KeyHooks Tastenkombinationen ermitteln?
Zitat:
Die Reihenfolge ist doch dann: Strg down Alt down Strg up In dem Moment weißt du also, dass nur noch Alt gedrückt ist. |
AW: Können KeyHooks Tastenkombinationen ermitteln?
@jaenicke
Tatsächlich, das ist mir gar nicht aufgefallen. Wohl, weil es so schnell geht. Wird STRG-Taste gedrückt, dann ALT-Taste, und wird dann STRG-Taste losgelassen, während die ALT-Taste noch gedrückt wird, kommt tatsächlich kurz die Info (bzw. Bitänderung), dass die STRG-Taste losgelassen wurde. Da das aber ganz kurz ist, habe ich es nicht bemerkt. Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 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