とあるゲームで遊んでいる時に不意にNumLockを押してしまい意図しない行動をやってしまうことがあり、以前からやろうと思って放置していたレジストリをいじって無効化する方法で実現できたので紹介しておきます。
PC88/98時代の人間なのでDOS/V機のキーボードと配列が違うとこれが慣れず、昔はnodokaというツールを使って配列を変更していた。
最近(とはいえ確かWin7ぐらいから)レジストリで出来るようになりNumlock以外はレジストリを使って変更していた。
Keyswap用のフリーソフトもあることは知っているが、出来るだけソフトを使わずレジストリでやりたく、重い腰を上げてやることにした。ソフトを利用したくない理由は会社のPCにソフトを入れるのが面倒だったから、、
一度やればその後は使わないので、一度使ったレジストリファイルの内容を思い出すところから始める。
現状の調査
LeftCtrl ↔ CapsLock と 半角/全角↔ESC の入れ替えをしていたレジストリの内容が下記。
■レジストリキーのパス
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
■設定内容
“Scancode Map”=hex:
00,00,00,00,00,00,00,00,05,00,00,00,3a,00,1d,00,1d,00,3a,00,01,00,29,00,29,00,01,00,00,00,00,00
最初の8バイト | ヘッダのような物で00をセット | 00,00,00,00,00,00,00,00 |
次の4バイト | 登録するデータ+1のカウント | 05,00,00,00 |
入れ替えるキーのセット1 | LeftCtrl→CapsLock | 3a,00,1d,00 |
入れ替えるキーのセット2 | CapsLock → LeftCtrl | 1d,00,3a,00 |
入れ替えるキーのセット3 | 半角/全角→ESC | 01,00,29,00 |
入れ替えるキーのセット4 | ESC→半角/全角 | 29,00,01,00 |
最後の4バイト | おまじない 00をセット | 00,00,00,00 |
これを元にNumLockの無効化を行う、コードは一覧がころがっているはずなので
<WIndows キー スキャンコード>
あたりで調べてください、今回使っているキー一覧は一応載せておきます。
CapsLock | 3A |
LeftCtrl | 1D |
半角/全角 | 29 |
ESC | 01 |
NumLock | 45 |
今自分で利用しているもの
LeftCtrl ↔ CapsLock と 半角/全角↔ESC とNumLockを無効化
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,06,00,00,00,3a,00,1d,00,1d,00,3a,00,01,00,29,00,29,00,01,00,00,00,45,00,00,00,00,00
NumLock無効化だけの物
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,02,00,00,00,00,00,45,00,00,00,00,00
KeySwap.reg 等で保存してダブルクリックすると登録されます。反映は再起動が必要です。
設定を戻す場合
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:
KeySwapClear.reg等で保存してダブルクリック→再起動で。
レジストリをいじると最悪PCが起動しなくなりますので、やる場合は自己責任でおねがいします。
NumLock押せなくなって困ったら
最近は起動時にNumLockをON/OFFにするようにマザーボードの設定で出来たりしますが、OS起動時にOFFになってしまいONにしたい場合(もしくはその逆)はWindows標準のスクリーンキーボードを利用してください。テンキーが表示されていない場合はオプション→「テンキーを有効にする」のチェックを付けると表示されるようになります。
コメント