キーボードの機能を使ったりソウトウェアをインストールしたりしてキーマッピングを入れ替えている人も多いと思いますが、実は、Windowsではキーマッピングの変更はレジストリを編集するだけで簡単に実現できます。
!注意!この記事ではレジストリ操作などPCを破壊してしまう可能性のある操作を説明しています。操作ミスや当記事の記述ミスにより最悪の場合、Windowsが起動しなくなるなどの障害が発生する危険性もあります。当記事を参考にされる場合は必ずバックアップを作成した上で、破壊しても問題ないPCで行ってください。
キーマッピングを入れ替える方法
「Windowsキー」と「Rキー」を同時に押し、「ファイル名を指定して実行」から
レジストリエディター(regedit.exe
)を起動して、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
にScancode Map
という名前で入れ替えたい配列を指定します。
書き込む値はバイナリ値です。
値の書き方はフォーマットに従ってスキャンコードのペアを指定していきます。
フォーマットについては以下の例を参考にしてください。
CtrlとCapsLockを入れ替える例
CtrlとCapsLockを入れ替える場合は次のようなファイル(.reg)を作成してレジストリに登録します。
Windows Registry Editor Version 5.00
[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
Scancode Mapはバイナリ値になっています。
値の意味は次のようになっています。
00,00,00,00 | 0x00000000 | バージョン番号 すべて0 |
00,00,00,00 | 0x00000000 | フラグ すべて0 |
03,00,00,00 | 0x00000003 | マッピングを設定する個数 マッピング2つとNULL終端を合わせて3 |
1D,00,3A,00 | 0x001D 0x003A | マッピング1 左CtrlをCapsLockに変換 |
3A,00,1D,00 | 0x003A 0x001D | マッピング2 CapsLockを左Ctrlに変換 |
00,00,00,00 | 0x00000000 | NULL終端 |
※3を表すのに00,00,00,03
ではなく03,00,00,00
となっていることに違和感を感じる人もいるかもしれません。エンディアンの関係でDWORD値はこのように記述するようです。
マッピングのところは2つのWORDに分割し、1つ目のWORD値のキーを2つ目のWORD値のキーにマッピングするという風に読みます。例えば、
1D,00,3A,00
の場合は次のようになります。
1D,00 | 0x001D | 29 | 左Ctrl |
3A,00 | 0x003A | 58 | CapsLock |
ちなみに、変換後のキーを00,00
とすることで、そのキーを無効にすることもできます。
例えば、
1D,00,00,00
とすることで、左Ctrlを無効にできます。
スキャンコード
スキャンコードはキーボードのキーごとに割り当てられたコード番号になります。いくつかピックアップしてみました。
キー | Scan Code | キー | Scan Code |
Caps Lock | 3A,00 | Enter | 1C,00 |
左Shift | 2A,00 | 右Shift | 36,00 |
左Ctrl | 1D,00 | 右Ctrl | E0,1D |
左Alt | 38,00 | 右Alt | 38,E0 |
Esc | 01,00 | F1 | 3B,00 |
F2 | 3C,00 | F3 | 3D,00 |
F4 | 3E,00 | F5 | 3F,00 |
F6 | 40,00 | F7 | 41,00 |
F8 | 42,00 | F9 | 43,00 |
F10 | 44,00 | F11 | 57,00 |
F12 | 58,00 |
※キーボードの配列などによっては表の通りにならないことがあるかもしれません。ご注意ください。
※スキャンコードについてはMicrosoftの技術資料も参考にしてみてください。
リンク
Archive: Scan Code Mapper for Windows
http://msdn.microsoft.com/en-us/windows/hardware/gg463447
こちらの記事はWindowsの使い方というサイトで公開していた内容です。
使用していたレンタルサーバーのサービス終了に伴い移転しました。