Mit der folgenden Beschreibung lassen sich unter Windows XP Tasten der Tastatur tauschen. Dies geschieht auf niedrigstem Level und betrifft anschliessend alle Benutzer. Es können nur "ganze" Tasten verändert werden. Z.B. ändert sich die 6 zusammen mit dem &. Darüber hinaus gehende Einstellungen können z.B. mit KDrive32 auf eine Funktionstaste gelegt werden. Diese F-Taste kann dann wiederum auf z.B. die rechte Ctrl- oder Windows-Taste gelegt werden. In dieser Kombination lässt sich dann z.B. der @ auf die rechte Windows-Taste legen.
Die Positionen können von deiner Tastatur geringfügig abweichen. Die Beschriftung in der Spalte "Taste" entspricht dem englischen Layout. Das ist speziell bei y und z zu berücksichtigen, da diese Tasten im deutschen Layout gegeneinander getauscht sind.
Die Änderungen vornehmen
Die Änderungen werden in der Registry eingetragen, und zwar unter folgendem Pfad:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
WICHTIG: Es gibt auch einen Schlüssel namens "Keyboard Layouts" (Beachte das Mehrzahl-"s") unter Control, aber der Schlüssel sollte nicht verändert werden.
Im Schlüssel "Keyboard Layout" muss der Eintrag Scancode Map hinzugefügt werden. Dieser ist vom Typ REG_BINARY. Das Datenformat ist wie folgt:
Start offset (in Bytes) Size (in Bytes) Data
0 4 Header: Versions-Information
4 4 Header: Markierungen
8 4 Header: Anzahl der Einträge
12 4 Persönliche Belegungen
Letzte 4 Bytes 4 Null Terminator (0x00000000)
Das erste und zweite DWORD speichert Header Informationen und sollte für die aktuelle Version des ScanCode Mappers komplett auf Null gesetzt werden. Das dritte DWORD enthält einen Zähler für die gesamte Anzahl der folgenden DWORDs einschliesslich des abschliessenden Null Terminators. Daher wäre der Minimalwert 1 (keine Veränderungen spezifiziert). Die persönlichen Einstellungen folgen dem Header. Jeder Eintrag ist ein DWORD lang.
Um Änderungen wirksam werden zu lassen, muss das System neu gestartet werden. Beachte dass die Änderungen der Tastaturbelegung sich nach dem Anschlag der Taste direkt nach dem Wechsel in den Benutzermodus auswirken, noch bevor ein virtueller Tastenschlüssel zugeordnet wird. Dadurch können sich bestimmte Einschränkungen ergeben. So wird die Änderung möglicherweise nicht richtig berücksichtigt, wenn Terminal-Dienste benutzt werden.
Jetzt folgt ein Beispiel. Für die Änderungen im zuvor beschriebenen Teil der Registry benutzt du den Registry Editor Regedit.exe. Die folgenden Werte sind in den persönlichen Belegungen zu speichern:
00000000 00000000 03000000 00003A00 40005CE0 00000000
Der Wert 00003A00 bewirkt, dass die Shift-Lock-Taste unwirksam wird,
der Wert 40005CE0 bewirkt, dass die rechte Windows-Taste jetzt F6 auslöst.
Um das zu verstehen, muss man wissen, dass die Einträge in den DWORDs von rechts nach links eingetragen werden. Caps-Lock hat den Scancode 3A bzw. 003A. Dies wird als 3A00 in die rechte Hälfte des DWORDs eingetragen. 0000 bedeutet "KEINE Taste" und wird in die linke Hälfte des DWORDs eingetragen. Die rechte Windows-Taste hat den Scancode E05C, der als 5CE0 in die rechte Hälfte des DWORDs eingetragen wird. Daraus soll F6 werden (Scancode 0040). Also wird 4000 in die linke Hälfte des DWORDs eingetragen. Die aktuelle Anzahl ist jetzt 3 (00000003) DWORDs, incl. Terminator. Dies wird als 03000000 in das 3. DWORD (Start Offset 8) eingetragen.
Legt man jetzt noch mit KDrive32 den @ auf die Taste F6, so kann man ihn anschliessend mit der rechten Windows-Taste auslösen.


Die mit Note 1 bezeichneten Scancodes führe ich hier mal ohne Gewähr auf:
Ohne Gewähr, weil sie intern anders behandelt werden. Sie haben intern getrennte Codes zum Ein- und Ausschalten, was sich aber an dieser Schnittstelle nicht auszuwirken scheint. Zumindest die Einfügen-Taste läßt sich bei mir problemlos auf diese Weise ausschalten. Allerdings funktioniert sie jetzt auch nicht mehr zusammen mit Shift. Man kann sie also auch nicht mehr zum Einfügen von Texten bzw. Textteilen verwenden.
Die mit Note 2 - Note 5 bezeichneten Keycodes können so nicht verändert werden. Will man diese Belegungen beeinflussen, so muss man tiefer ins Thema einsteigen. Hierzu hilft der (englische) Beitrag:
http://www.microsoft.com/whdc/device/input/Scancode.mspx#ECAA
Nachtrag vom 30.4.2009
Hier noch ein paar Scancodes von Multimedia-Tasten:

Weitere Scancodes kann man mit dem Linux-Kommando xev ermitteln. Ein entsprechendes Windows-Programm habe ich leider nicht gefunden.
Dabei ist zu bedenken, dass der Scancode in Hex umzurechnen ist und bei Scancodes > x'80' um x'80' zu reduzieren ist und ersatzweise x'E0' vorangestellt wird. So wird aus 174 erst einmal x'AE', woraus dann x'E02E' wird.
Ein Programm namens Keyboardchecker habe ich getestet. In der Beschreibung steht zwar, dass es Scancodes mitteilt. In Wirklichkeit simuliert es rückwärts aus dem Zeichen den Scancode. Deshalb ist es leider nicht zu gebrauchen. 
Hat Ihnen diese Seite geholfen?
Wenn Ihnen diese Seite nicht weiterhilft, können Sie hier unsere ganze Webseite nach passenden Tipps oder ähnlichen Fragen durchsuchen lassen, oder im Chat nach Hilfe fragen!
Wie können wir ihnen (kostenlos!) weiterhelfen?



![[love]](http://www.computerhilfen.de/hilfen/Smileys/german/love.gif.pagespeed.ce.-UqyHNB2Me.gif)

