レジストリを操作して 左 Ctrl と Caps Lock を入れ替え
1年前にも同じ記事を書いてはいた(左CtrlキーとCapslockを入れ替える - BiBoLoG).理解し直したから,もう一度書く.
Scancode Map の記述方法
Microsoft のページを読んで理解した.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouthttp://www.microsoft.com/whdc/archive/w2kscan-map.mspx
Value Interpretation 0x00000000 Header: Version. Set to all zeroes. 0x00000000 Header: Flags. Set to all zeroes. 0x00000003 Three entries in the map (including null entry). 0x001D003A Left CTRL key --> CAPS LOCK (0x1D --> 0x3A). 0x003A001D CAPS LOCK --> Left CTRL key (0x3A --> 0x1D). 0x00000000 Null terminator.
- バージョン.すべて0にセット
- フラグ.すべて0にセット
- エントリ数.終端の空エントリを含めて数える
- 左 Control を Caps Lock に変更する
- Caps Lock を 左 Control に変更する
- 終端を示すための空エントリ
設定対象を「現在ログオンしているユーザ」に限定する
HKEY_LOCAL_MACHINE 以下だと,システム全体に影響する.他のユーザを巻き込んでしまうのは良くない.windowsregistry(windowsレジストリ) - tumulabo2 の情報から設定対象を「現在ログオンしているユーザ」に限定する方法がわかった.
キー機能入れ替えを取りやめたいときには,該当するレジストリキーを削除する.
keyswap_lctrl-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,00,00,00,00
現在ログオンしているユーザに限定する場合
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\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,00,00,00,00