![]() |
Zeichen -> Tasten
Wie kann man zur Laufzeit herausfinden, auf welcher Taste der Computertastatur ein bestimmtes Zeichen liegt und welche Modifier-Tasten (Umschalt, Strg, Alt, AltGr) man drücken muss, um dieses Zeichen zu erhalten?
Vielen Dank für eure Hilfe! |
Re: Zeichen -> Tasten
Grundsätzlich mit der Zeichentabelle, aber anhand der Formulierung deiner frage, wirst du die nicht meinen.
|
Re: Zeichen -> Tasten
also ich würde "alle tasten drücken " (sendkeys etc.) und dann die erzeugten zeichen speichern. durch die umkehrung der indizierung kannst du dann vom Zeichen auf die zu drückende tastenkombination schließen.
|
Re: Zeichen -> Tasten
Zitat:
Falls du nur wissen möchtest was für eine Taste grdrückt wurde ist das kein Problem. Zitat:
der für die Tastatureingestellt ist abhängig. Was möchtest du denn machen ? |
Re: Zeichen -> Tasten
|
Re: Zeichen -> Tasten
Ich habe die Lösung gefunden!!!!!
Delphi-Quellcode:
Könnt ihr nachprüfen, ob das bei euch auch funktioniert?
//edtChar: TEdit
//lblVK, lblShift: TLabel //btn1: TButton procedure TForm1.btn1Click(Sender: TObject); var lHkl: HKL; lVirtKey: SHORT; begin if edtChar.Text = '' then EXIT; lHkl := GetKeyboardLayout(0); lVirtKey := VkKeyScanEx(edtChar.Text[1], lHkl); lblVK.Caption := 'Virtualkey: ' + IntToStr(Lo(lVirtKey)); lblShift.Caption := 'Shift: ' + IntToStr(Hi(lVirtKey)); end; |
Re: Zeichen -> Tasten
warum nimmst du VkKeyScanEx anstelle von VkKeyScan?
Wenn du GetKeyboardLayout mit "0" aufrufst kannst du den Teil dir auch spaaren indem du nur VkKeyScan nutzt (wie bereits von mir gepostet). |
Re: Zeichen -> Tasten
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:41 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