Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi keycodes für altgr? (https://www.delphipraxis.net/122640-keycodes-fuer-altgr.html)

Medium 19. Okt 2008 21:33

Re: keycodes für altgr?
 
Ich vermute fast, dass sich das nicht ohne (LowLevel-) Hook unterscheiden lässt. Dass AltGr nicht vollständig identisch mit Strg+Alt ist, geht z.B. aus diesem Wikipedia Artikel hervor. Windows scheint sie jedoch auf höherem Abstraktionslevel gleich zu setzen, weswegen auch der Strg-Code heraus kommt (der Status von Alt wird ja über ein Stateflag übergeben). Daher wird man schätze ich versuchen müssen an den entsprechenden Scancode zu kommen, und der einzige Weg den ich bislang dafür kenne, ist eben ein Hook.

DGL-luke 19. Okt 2008 22:03

Re: keycodes für altgr?
 
Da Windows unterschiedlich auf Strg+Alt+Entf (mit taskmanager) und AltGr+Entf (garnicht) reagiert, sollte mit einem low-level tastaturhook das schon unterscheidbar sein.

ToXiC 19. Okt 2008 22:05

Re: keycodes für altgr?
 
ich hab grad ein kleines programm ausprobiert, dass tastertureingaben in eine memobox schreibt
dieses gibt einmal den keycode aus wenn eine taste gedrückt wird & einmal wenn eine taste losgelassen wird

wenn ich nun altgr drücke wird folgendes augegeben:

162
165
162
165

162 ist = strg
ich weiß allerdings nicht was 165 ist

alt ist bei mir 164

alles sehr seltsam

ich wunder mich sowieso, warum meine keycodes abweichen & strg bei mir nicht 17 ist


edit:

hab jetzt genauere details:

strg scanwert 29
alt scanwert 56

altgr scanwerte
541
56

alle werte sind dezimal



edit2:

ich glaub ich hab eine lösung gefunden

Delphi-Quellcode:
 if vkCode = 162 then
        frmMain.shift := true;
        if vkCode = 165 then
        begin
        frmMain.alt := true;
        if frmMain.shift = true then
           frmMain.Memo1.Lines.Add('AltGr gedrückt');
        end;
ich weiß zwar nicht was es mit taste 165 auf sich hat, aber es funktioniert


allerdings bleibt da immer noch die frage, warum strg bei mir den keycode 162 hat.
jemand eine idee?

jfheins 19. Okt 2008 22:31

Re: keycodes für altgr?
 
Dass se nicht vollkommen identisch sind, musste ich leider auch bereits feststellen.

So tippe ich die gschweiften und die eckigen Klammern mit Strg+Alt, aber in Visual Studio 2005 gibts da irgendeinen dooen Hotkey, sodass bei Strg+Alt+0 kein } erscheint :(

Also es geht schon irgendwie, das zu unterscheiden ...

Vielleicht geht es damit
Zitat:

VK_RMENU 0xA5 Right ALT
:?:

ToXiC 19. Okt 2008 22:41

Re: keycodes für altgr?
 
ja vielen dank

klappt duper mit der abfrage

Delphi-Quellcode:
if vkCode = VK_RMENU then
...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:14 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz