本稿ではスキャンコードのマッピングを変更して、Caps Lock キーを無効化する方法を説明します。
す。仕組みはいいから手順だけ知りたいという方は「3. Caps Lockキーを無効化する手順」を実施ください。
1. Caps Lock キーを無効化する仕組み
コンピュータのキーボードのキーが押されたり離されたりすると、キーボードからCPUにスキャンコード (scancode) と呼ばれるコードが送信されます。送信されてきたコードを解釈することで、CPUはどのキーが押されたかを判断します。
例えば、Caps Look キーを押すと Caps Lock を意味するコードである 003a がCPU に送られ、CPUは Caps Lock キーが押されたと判断します。
今回説明する方法では Caps Lock が押されたときに送信されるコードを変更することで Caps Lock キーを無効化します。Caps Lock キーは Shift キーと間違えて押されることが多いこと、Shift キーは間違えておしても無害であることからCaps Lock キーを押したときに、送信されるコードを 003a から Siftを意味する 002a に変更します。
2. キーに割り当てられているコードの変更方法
各キーに割り当てられているスキャンコードは「スキャンコード一覧」でGoogle検索すると多くのサイトがヒットしますので、ここでは今回対象とするキーを抜き出して紹介します。
キーボードのキー | スキャンコード |
---|---|
Caps Look | 003A |
左Shift | 002A |
各物理キーに割り当てられているスキャンコードの変更はレジストリで定義することができます。
- キー: コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
- 値: Scancode Map
Scancode Map は下記のように定義します。
- ヘッダー(バージョン): 00 00 00 00 ※固定値
- ヘッダー(フラグ): 00 00 00 00 ※固定値
- エントリー数: 変更するキーの数(n) + 1
- エントリー: 変更の内容
- エントリー(終端): 00 00 00 00 ※固定値
ヘッダーおよびエントリー(終端)は固定値(00 00 00 00) となります。今回は Caps Lock のみ変更するので、n すなわち変更するキーの数は 1 となります。従って エントリー数は 2 となります。エントリー数にはエントリー(終端)が含まれるので +1 となります。
エントリー内容は下記のように定義します。
※Windows系のバイトオーダーはリトルエンディアン(Little Endian)となるので小さい桁からキーに格納します。
図示すると以下のようになります。Caps Lock (003A) を 左Shift (002A) に入れ替える、という情報をそのまま並べます。次にこの 00 3A 00 2A を下記のように入れ替えて 2A 00 3A 00 を生成します。これがエントリーの内容となり、CapsLock キーに 左Shift のコードを割り当てるという意味になります。
上記をまとめるとScancode Map に設定すべき値は下記となります。
00 00 00 00 00 00 00 00 02 00 00 00 2A 00 3A 00 00 00 00 00
具体的な設定手順は下記で説明します。
3. Caps Lockキーを無効化する手順
1. レジストリエディタを開きます。
※参考:「レジストリエディタ」の開き方
2. 下記のキーに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
3. 空白箇所を右クリックして「バイナリ値」を選択します。
4. 名前を Scancode Map に変更します。
5. Scancode Map を右クリックして「修正」を選択します。
6. 下記の画面が表示されるので、数値を入力し「OK」をクリックします。
00 00 00 00 00 00 00 00 02 00 00 00 2A 00 3A 00 00 00 00 00
7. Windows を再起動します。
以上。
4. 補足(F1キーを無効化する)
Caps Lock キーと同様に無効化が推奨されるのが F1 キーです。F1 キーのスキャンコードは 003B となります。
キーボードのキー | スキャンコード |
---|---|
CapsLook | 003A |
F1 | 003B |
左Shift | 002A |
4.1. F1キーのみを無効にする
F1 キーのコードを 左Sift に変更することで、無効化します。エントリーの内容は下記のとおり、2A 00 3B 00 となります。
- ヘッダー(バージョン): 00 00 00 00 ※固定値
- ヘッダー(フラグ): 00 00 00 00 ※固定値
- エントリー数: 02 00 00 00 ※2個
- エントリー: 2A 00 3B 00 ※F1を左Siftに変更
- エントリー(終端): : 00 00 00 00 ※固定値
4.2. Caps Lock と F1キーを無効にする
下記のとおりとなります。
- ヘッダー(バージョン): 00 00 00 00 ※固定値
- ヘッダー(フラグ): 00 00 00 00 ※固定値
- エントリー数: 03 00 00 00 ※3個
- エントリー1: 2A 00 3A 00 ※Caps Lock を左Siftに変更
- エントリー2: 2A 00 3B 00 ※F1を左Siftに変更
- エントリー(終端): : 00 00 00 00 ※固定値
以上。
コメント