HID-Scancodes einer USB Tastatur ermitteln

Ein spannender Anwendungsfall für einen Arduino mit USB-Anschluss ist die Emulation einer PC-Tastatur – im USB-Jargon wird diese als HID (Human Interface Device) bezeichnet. Die Arduino-IDE enthält auch eine Bibliothek, die es erlaubt Tastenanschläge per USB zu senden, aber wenn der PC nicht auf ein US-Tastatur Layout eingestellt ist, wird man früher oder  später auf Probleme stoßen. Dies war auch kürzlich Thema in einem Artikel des c’t-Magazins. Als erstes fallen wohl die vertauschten ‚y‘ und ‚z‘ Tasten auf. Dann bemerkt man vielleicht die problematische Situation der deutschen Umlaute in der Arduino Compiler-Infrastruktur und dass sie in den HID-Scancode Tabellen fehlen, da diese hauptsächlich US-Keyboards behandeln. Diese Probleme konnte ich umgehen, indem ich die deutschen Zeichen vor der Ausgabe durch das Zeichen ersetze, das auf der amerikanischen Tastatur an gleicher Stelle liegt. Leider musste ich jedoch feststellen, dass es auf der US-Tastatur kein Pendant zur ‚< >‘ Taste gibt und damit komme ich endlich zum eigentlichen Thema dieses Blog-Eintrags: Wie kann man unter Windows herausfinden welcher Scancode bei einem Tastendruck über den USB-Bus geschickt wird?Weiterlesen »