Wie kann ich das übersetzen Linux-Tastencode-Belegung von /dev/input/event* ASCII in Perl?
Schreibe ich ein Perl-script, das liest die Daten aus dem berüchtigten /dev/input/event*
und ich habe nicht einen Weg finden, zu übersetzen, die Schlüssel-codes, die durch den kernel in ASCII.
Rede ich über die linux-key-codes in dieser Tabelle hier und ich kann nicht scheinen, etwas zu finden, die mir helfen, übersetzen Sie Sie ohne hardcoding ein array in das Skript ein. Bin ich etwas fehlt?
Möchte ich überspringen Sie die array-Teil, weil es nicht scheinen, um eine gute Praxis, so eine Idee? 🙂
InformationsquelleAutor Bogdan Constantinescu | 2010-03-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist im Grunde ein anzeigen problem. Sie haben, um einen Schlüsselcode und lookup Ihr ASCII-äquivalent. Was ist mit dem "Teil-array", denken Sie, ist nicht eine gute Praxis?
Ich sah nicht ein Modul auf CPAN, aber das bedeutet, dass Sie eine chance haben, die ersten zu sein, laden Sie Sie hoch. 🙂
InformationsquelleAutor brian d foy
Leider habe ich nicht das Programm in Perl, aber hier ist ein einfaches Beispiel, geschrieben in C. Vielleicht könnte es helfen, Sie dennoch.
Für die Generierung der parse.h, legen Sie diese in Ihren
Makefile
:Dann verwenden Sie es wie diese:
InformationsquelleAutor user206268
Beispiel 1 gibt dir nur wieder den gleichen key-code-Werte, die bereits aus dem linux-kernel. Zum Beispiel erhalten Sie KEY_A 0x1e für ein 'a' - Taste drücken. Was Sie wollen, ist (und was ich will) ist das ascii-Konvertierung, so dass, wenn " a " gedrückt wird, ich will sehen, 0x61 für Kleinschreibung und 0x41 für den oberen Fall.
KeySym ks = XKeycodeToKeysym(dpy, keycode+min_keycode, modifier);
(link) sollte bereits geben Ihnen die widechar(unicode)...printf ("wide char:%lc\n", (wchar_t)ks);
InformationsquelleAutor Frank Rizzo