Keycode / Scanscode

24/03/2016 - 10:33 von Heinz-Mario Frühbeis | Report spam
Hallo,

mit Windows und ASCII bin ich ja bewandert, aber nun kommt ja wieder was
anderes auf mich zu...

In meinem Programm habe ich einen Eventloop der eben auch KeyPress
erkennt und auch weiterleitet.
Für z. Bsp. die Taste 'q' bekomme ich 24, und für '1' bekomme ich 10,
für '2' dann 11.

Dann habe ich mich auf die Suche nach einer Tabelle gemacht... (quasi
das Pendant zu einer ASCII-Tabelle).
Gefunden habe ich
<http://www.comptechdoc.org/os/linux...s.html> .

Für z. Bsp. 'q':
Q 16 10 90 16 q 71 Q 51 q 1b 71 11

Da ist aber nix mit '24' für 'q'..., und Keycode == 24 ist dort für 'O'
angegeben.
Und ja, xev habe ich auch schon mal laufen lassen... ('q' == 24)

Kann bitte jemand weiterhelfen?

Mit Gruß
Heinz-Mario Frühbeis
 

Lesen sie die antworten

#1 Herbert Pophal
24/03/2016 - 15:18 | Warnen spam
On 24.03.2016 10:33, Heinz-Mario Frühbeis wrote:
Hallo,

mit Windows und ASCII bin ich ja bewandert, aber nun kommt ja wieder was
anderes auf mich zu...

In meinem Programm habe ich einen Eventloop der eben auch KeyPress
erkennt und auch weiterleitet.
Für z. Bsp. die Taste 'q' bekomme ich 24, und für '1' bekomme ich 10,
für '2' dann 11.



Das sind die Keycodes, nicht die numerischen Äquivalente der Zeichen.


Dann habe ich mich auf die Suche nach einer Tabelle gemacht... (quasi
das Pendant zu einer ASCII-Tabelle).
Gefunden habe ich
<http://www.comptechdoc.org/os/linux...s.html> .



Da da nicht steht, was das für eine Tabelle ist, spekuliere ich mal,
dass das das ist, was die Tastaturen so von sich geben, unabhàngig von
X11. Letzteres arbeitet anders.

Für z. Bsp. 'q':
Q 16 10 90 16 q 71 Q 51 q 1b 71 11

Da ist aber nix mit '24' für 'q'..., und Keycode == 24 ist dort für 'O'
angegeben.
Und ja, xev habe ich auch schon mal laufen lassen... ('q' == 24)



Nein. keycode('q') == 24. Und wenn du xev hast laufen lassen, so sagt
dir die Ausgabe auch was von den Ergebnissen von XLookupString().

Fürs 'q':
KeyPress event, serial 34, synthetic NO, window 0x3600001,
root 0x2ba, subw 0x0, time 13398247, (75,117), root:(1174,172),
state 0x0, keycode 24 (keysym 0x71, q), same_screen YES,
XLookupString gives 1 bytes: (71) "q" <= XmbLookupString gives 1 bytes: (71) "q" <= XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x3600001,
root 0x2ba, subw 0x0, time 13398327, (75,117), root:(1174,172),
state 0x0, keycode 24 (keysym 0x71, q), same_screen YES,
XLookupString gives 1 bytes: (71) "q"
XFilterEvent returns: False

Fürs 'Q':
KeyPress event, serial 37, synthetic NO, window 0x3600001,
root 0x2ba, subw 0x0, time 13478854, (155,151), root:(1254,206),
state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x3600001,
root 0x2ba, subw 0x0, time 13479958, (155,151), root:(1254,206),
state 0x1, keycode 24 (keysym 0x51, Q), same_screen YES,
XLookupString gives 1 bytes: (51) "Q"
XmbLookupString gives 1 bytes: (51) "Q"
XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x3600001,
root 0x2ba, subw 0x0, time 13480030, (155,151), root:(1254,206),
state 0x1, keycode 24 (keysym 0x51, Q), same_screen YES,
XLookupString gives 1 bytes: (51) "Q"
XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x3600001,
root 0x2ba, subw 0x0, time 13480342, (155,151), root:(1254,206),
state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False

Kann bitte jemand weiterhelfen?



Just my 2¢
Herbert

Ähnliche fragen