Scancode Map

レジストリエディタで[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]にScancode Mapという名前でバイナリ値を作成することで、キーの割り当てを変更できます。

定義

このScancode Mapは下表のように定義されています。

オフセット バイト数 データ
0 4 ヘッダー。バージョン情報
4 4 ヘッダー。フラグ
8 4 ヘッダー。マッピング数
12 4 個々のマッピング※1
最後4バイト 4 NULL終端文字 (0x00000000)

※1 マッピングはスキャンコードのscan1のmakeで「割り当て元のキー + 割り当て先のキー」の書式で指定します。

設定例

たとえば左CtrlキーとCaps Lockキーを入れ替えるには、次のようにします。

00000000 00000000 03000000 3A001D00 1D003A00 00000000

これはリトルエンディアンで記述するため、意味は下表の通りとなります。

リトルエンディアン   ビッグエンディアン 説明
00000000 0000 0000 バージョン
00000000 0000 0000 フラグ
03000000 0000 0003 マッピング数は3 (終端のNULLを含む)
3A001D00 001D 003A 0x001D (左Ctrlキー) を、0x003A (Caps Lockキー) へ割り当て
1D003A00 003A 001D 0x003A (Caps Lockキー) を、0x001D (左Ctrlキー) へ割り当て
00000000 0000 0000 NULL終端文字

コンピュータの情報サイトから、まとめて検索