windowsのキーボードマップをいじる
キーボード上の任意のキーを、別の任意のキーに変更して使用する、windowsのレジストリ設定。
以前、どこかで見つけた情報だけど、今回改めて探したら見つからない。しょうがないので、断片的な情報からまとめておく。
要再起動。
目的は、ノートPCのキーボードの'A'の左側のキーをctrlキーにする。つまり、caps lockキーを左ctrlキーとして使いたい。caps lockキーなんて不要なので、入れ替えるんじゃなくて、上書き。結果は、左ctrlキーが二つになる。
レジストリエントリ仕様
- key
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
- entry
- Scancode Map
- type
- binary, little endian
- value
- 下記参照
scancode_map_value() // 上記 "value" { version; // 0x00000000 flag; // 0x00000000 data_count; // including terminater 4bytes for( int index = 0; index < data_count - 1; ++index ) { data(); } terminater; //0x00000000 } data() { replacing_key_scancode; // 2bytes original_key_scancode; // 2bytes }
key_scancode | |
---|---|
ctrl | 0x001d |
caps lock | 0x003a |
regファイルのサンプル
caps lockをctrlに
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00
caps lockとctrl入れ替え
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,1d,00,3a,00,3a,00,1d,00,00,00,00,00
追記(2006/12/27):data_countのバイト幅を追加。