NumLockキーの無効化をする方法

とあるゲームで遊んでいる時に不意に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
入れ替えるキーのセット1LeftCtrl→CapsLock3a,00,1d,00
入れ替えるキーのセット2 CapsLock → LeftCtrl1d,00,3a,00
入れ替えるキーのセット3半角/全角→ESC01,00,29,00
入れ替えるキーのセット4ESC→半角/全角29,00,01,00
最後の4バイトおまじない 00をセット00,00,00,00

これを元にNumLockの無効化を行う、コードは一覧がころがっているはずなので
<WIndows キー スキャンコード>
あたりで調べてください、今回使っているキー一覧は一応載せておきます。

CapsLock3A
LeftCtrl1D
半角/全角29
ESC01
NumLock45

今自分で利用しているもの

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標準のスクリーンキーボードを利用してください。テンキーが表示されていない場合はオプション→「テンキーを有効にする」のチェックを付けると表示されるようになります。

コメント