Mit der freien Software SharpKeys lassen sich in Windows einzelne Tasten einer Tastatur sehr einfach umprogrammieren. Ein Gastbeitrag von Jo Arnold.
Der Scancode
Wer auf der Suche nach einer Lösung ist, stößt unweigerlich auf den Begriff Scancode. Was letztlich nichts anderes bedeutet, als dass eine Tastatur beim Druck auf eine Taste einen Code an Windows sendet und nicht etwa den Buchstaben n, wenn die Taste [N] gedrückt wird. Windows wiederum ordnet dem übermittelten Scancode über ein vorher festgelegtes Mapping ein Zeichen oder eine Funktion zu (Tastaturlayout). Wer einen kurzen Einblick zum Thema Scancode nehmen will, findet am Seitenende entsprechende Verweise. Wie man dort erkennen kann, ist es mit etwas Aufwand verbunden, um den ursprünglichen Scancode einer Taste nachträglich zu beeinflussen. Wer öfters versehentlich alles „gROSS“ schreibt, Tastenfunktionen zwischen zwei Tasten tauschen möchte, ungenutzte Tasten wie die Windowstaste deaktivieren oder gar eine Appletastatur unter Windows nutzen will, findet mit SharpKeys die passende Software.
SharpKeys
SharpKeys bedarf auf Wunsch keine Installation, läuft später auch nicht im Hintergrund und installiert keine Dienste. SharpKeys schreibt die Information zu einem abgeänderten Scancode oder die Deaktivierung einer Taste in die Registry und Windows übernimmt über den üblichen Weg die Zuordnung der gewünschte Funktion. Hat man das Grundprinzip des Scancodes und die damit in Windows ausgelöste Aktion grob verstanden, ist die Bedienung von SharpKeys recht einfach.
Die Auswahl der zu ändernden Taste
Im SharpKeys-Programm klickt man auf [Add] und erhält ein in zwei Spalten aufgeteiltes Fenster. Auf der linken Seite kann man aus der Liste eine zu ändernde Taste inkl. deren Scancode auswählen. Wer sich nicht umständlich in die Auswahlliste einarbeiten will, nutzt den integrierten Test per Tastendruck, um den ursprünglichen Scancode zu ermitteln. Wer schon immer eine Taste ohne Funktion hatte, kann nebenbei mit SharpKeys prüfen, ob diese Taste tatsächlich keinen Scancode sendet.
Die Zuordnung eines anderen Scancodes
Ist in der linken Spalte der Scancode der abzuändernden Taste definiert, ordnet man in der rechten Spalte den neuen Scancode zu. Die Deaktivierung einer störenden Taste gelingt mit der Verwendung des Scancodewertes 00_00. Auch für die schnelle Zuordnung eines anderen Scancodes empfiehlt sich der Tastentest. Fehlt auf der abzuändernden Tastatur die gewünschte Funktion generell, versucht man es eben mit der vorgegebenen Auswahlliste oder nimmt eine passende Tastatur zur Ermittlung des gesuchten Scancodes.
Nach der Zuordnung des neuen Scancodes kommt man mit [OK] zurück zum Hauptfenster und klickt dort auf [Write to Registry]. Da die Abänderung des Scancodes per Microsoftvorgabe über einen Registryeintrag unter HKEY_LOCAL_MACHINE erfolgt, wirkt es systemweit auf alle Nutzer. Auch wenn die Änderung sofort systemweit gilt, sind dennoch nur diejenigen Kennungen betroffen, die sich nach der Änderung am System neu anmelden. Angemeldete Benutzer sind also nicht sofort davon betroffen. Die mit SharpKeys gesetzten Änderungen können jederzeit verändert, ergänzt oder gelöscht werden. Die Änderung grundlegender Tasten, wie z. B. der Eingabe- oder der Leertaste, sollte man besser unterlassen. Dazu später mehr.
SharpKeys Änderungen werden in der Registry gespeichert:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
- „Scancode Map“ (als REG_BINARY bzw. Binärwert)
Weitere Informationen
Man muss keine zusätzlichen Konfigurationen erstellen, damit Tastenkombinationen funktionieren. Hat man einer Taste z. B. die Druckfunktion zugeordnet, werden damit auch immer die damit üblichen Tastenkombination ermöglicht, wie es am Beispiel mit [Alt] + [Druck] funktionieren würde.
Jede Änderung wirkt sich systemweit aus, jedoch ist jede Kennung erst nach einem neuen Login davon betroffen.
Selbstredend ändert oder deaktiviert man keine grundlegenden Tasten wie z. B. [Enter]. Manche dieser grundlegenden Änderungen könnten nur noch mit dem Laden des Registry-Hives über ein zweites OS durch Entfernung des benannten REG_BINARY rückgängig gemacht werden.
Tasten, die sich nicht innerhalb eines Standardtastaturlayouts befinden, funktionieren meistens nur mit Zusatzsoftware der Hersteller, weshalb SharpKeys solche Tasten in der Regel nicht bearbeiten kann.
RandyRants gibt an, dass er nicht nur aus technischen Gründen nicht jeden Sonderfall, insbesondere keine überlangen Scancodes abdecken kann. Ein Scancode mit normaler Länge wird in SharpKeys mit vier Buchstaben und Ziffern angezeigt, die mittig durch einen Unterstrich getrennt sind, wie es mit dem Beispielwert 00_00 ersichtlich ist.
Es kam vor vielen Jahren zu zwei Vorfällen, bei denen jeweils die Installation eines Windowsupdates nicht funktionierte. Die Informationen zu den betroffenen Updates enthielten in etwa Hinweise zu nicht näher beschriebenen Änderungen bzgl. Tastatur, Scancode oder den damit einhergehenden Abhängigkeiten. Folglich wurden die mit SharpKeys getätigten Änderungen kurzzeitig rückgängig gemacht und die beiden Updates konnten ohne Fehler installiert werden. Danach wurden die Änderungen mit SharpKeys neu gesetzt und alles funktionierte wie gehabt.
Der Ablauf legt nahe, dass die Updates wohl in beiden Fällen erkannt haben, dass es manuelle Eingriffe beim Scancode gab. Sollte Microsoft eines Tages erneut an Tastatur- oder Scancodeabhängigkeiten basteln, wie es mit der an anderer Selle angesprochenen KI-Taste bald der Fall sein könnte, dann wäre es nicht unwahrscheinlich, wenn sich das Fehlerbild wiederholt,sofern vor den Updates Änderungen zum „Scancode Map“ in die Registry geschrieben wurden.
Info und Download:
RandyRants Website
- Mai 2002 – dOWN WITH caps lock WITH kEYBOARD rEMAPPING
- Januar 2004 – keyboard remapp
- Februar 2004 – SharpKeys 1.0 veröffentlicht
Download
Info zum Tastaturlayout und Scancode
- Uni Regensburg: Sammlung internationaler Tastaturbelegungen
- Microsoft Archive: Scan Code Mapper for Windows
- WinFAQ: Tasten mittels ScanCode umbelegen
- WinFAQ: Scan Codes der Tasten
guter Artikel. Stand vor Jahren auch vor dem Problem.
Ergänzung:
Wenn man den Registry-Pfad [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] vorher exportiert, hat man den Original-Zustand.
Und danach exportieren. Die Datei kann dann auf jedem anderen PC wieder geladen werden. Erspart viel Arbeit wenn man es bei Dutzenden PCs benötigt.
Ich nutze Microsofts „Keyboard Layout Creator“ Version 1.4 dafür und erstelle installierbare Layouts.
Erscheint mir etwas benutzerfreundlicher (dafür fehlen ihm wohl ein paar Tasten, die SharpKeys unterstützt).
Die mit SharpKeys gespeicherte Konfiguration kann als Template mit [Save keys..] exportiert werden. Mit [Load keys..] kann eine Konfigurationsdatei importiert und im Anschluss mit [Write to Registry] im System gespeichert werden.
und warum soll ich auf jedem PC diese Software nutzen bzw installieren? Die reg kann ich über Script jedem neuen PC mitgeben
Cool! Muss ich mir mal anschauen! – Ich mappe die Tastatur momentan mit ‚PowerToys‘ um, doch da komme ich momentan an die grenzen. (Benutze einen Mischmasch aus CH-Layout und dem GB/US-Layout)