Windowsログオン時にテンキーが使えるようにレジストリでNumLockを有効にする

PC起動時にNumLockを強制的にONにしたい

起動時のNum Lockキーが無効になっているテンキー付きのWindowsパソコンでログオンパスワードを入力しようとするとき、いつもNum Lockをオンにすることを忘れていて、テンキーで入力したつもりが入力されていなかったことに気づいたとき、イラっとすることがあります。

そんなときにあらかじめBIOS(UEFI)で起動時のNum Lock有効をオンにすればいいのですが、最近のパソコンの中にはBIOS(UEFI)のメニューに起動時のNumLockの有効/無効の設定項目自体が存在していないものもあります。そんなときは「あきらめるしかないのか?」とモヤモヤします。そこで、「いちいちNum Lockボタンを押さなくてもいいように何かいい方法がないかな~」と探したところ、レジストリの設定でNumLockをオンにする方法を見つけることができたのでメモ。

グループポリシーで設定する方法も探しましたが見つからなかったので、どうやら存在していないようです。

設定変更するレジストリの場所

Windows10/8.1/8/7でレジストリの場所は共通のようです。Windows8だけは値に違いがあるようです。

  • HKEY_USERS.DEFAULT\Control Panel\Keyboard

ここにあるInitialKeyboardIndicatorsの値を変更します。変更後に再起動すると、ログオン画面の時点でNum Lockがオン(有効)になっているはずです。

Windows10/8.1の場合

  変更前
  `2147483648`
  デフォルト


  変更後
  `2147483650`または`2`
  NumLockオン

Windows8の場合

  変更前
  `2147483648`
  デフォルト


  変更後
  `2147483650`または`80000002`
  NumLockオン

※2でもNumLockが有効になるみたいです。

Windows7の場合

  変更前
  `2147483648`
  デフォルト


  変更後
  `2`
  NumLockオン

ログオン前とログオン後のレジストリの違い

ログオン前にNumLockをONにしておきたいとき

ログオン前のNum Lockオン設定はHKEY_USERS\.DEFAULT側のInitialKeyboardIndicatorsの値をいじればいいみたいです.

ログオン後にNumLockをONにしておきたいとき

ログオン後のNum Lockオン設定はHKEY_CURRENT_USER\Control Panel\KeyboardにあるInitialKeyboardIndicatorsをいじればいいようです。

ちなみに、HKEY_USERS\.DEFAULT側のInitialKeyboardIndicatorsの値は2147483648となっているのに対し、HKEY_CURRENT_USER\Control Panel\KeyboardのInitialKeyboardIndicatorsの値を見てみると2になっていました。

以下のページでは、HKEY_USERS\.DEFAULTとHKEY_CURRENT_USER\Control Panel\Keyboardの両方を設定しないとNumLockがオンにならないとありました。HKEY_USERS\.DEFAULT側のレジストリの変更だけで効果がなければ、HKEY_CURRENT_USER\Control Panel\Keyboardも設定してみてください。

それと、ログオンユーザー専用のHKEY_CURRENT_USERではなく、コンピューター全体に適用するHKEY_LOCAL_MACHINEで設定したらどうなるのか気になります。

一桁の値で設定するとBIOS側の設定に依存または優先?

本当かどうかわかりませんが、以下のページでは0(NumLockオフ)か2(NumLockオン)で値を設定した場合はレジストリ値よりもBIOS(UEFI)の設定が優先され、逆に2147483648か2147483650(NumLockオン)で値を設定した場合はBIOS(UEFI)の設定よりもレジストリ値が優先されるようです。

レジストリを登録するコマンド

以下のコマンドを管理者として起動したらコマンドプロンプトで実行すれば、簡単にNumLockキーをオンにするレジストリの登録ができます。

reg add "HKEY_USERS\.DEFAULT\Control Panel\Keyboard" /v InitialKeyboardIndicators /t REG_SZ /d 2147483650 /f
reg add "HKEY_CURRENT_USER\Control Panel\Keyboard" /v InitialKeyboardIndicators /t REG_SZ /d 2 /f

NumLockキー以外にCapsLockキーとScrollLockキーもオンにしたいとき

以下のページではInitialKeyboardIndicatorsの値によってはNumLock以外にCapsLock、ScrollLockもオンにすることができるようです。

  オンにするキー
  InitialKeyboardIndicatorsの値(10進数)




  オフ
  `2147483648`または`0`


  CapsLock
  `2147483649`または`1`


  NumLock
  `2147483650`または`2`


  CapsLock+NumLock
  `2147483651`または`3`


  ScrollLock
  `2147483652`または`4`


  CapsLock+ScrollLock
  `2147483653`または`5`


  NumLock+ScrollLock
  `2147483654`または`6`


  CapsLock+NumLock+ScrollLock
  `2147483655`または`7`

試しに10進数を2進数、8進数、16進数にしてみた

InitialKeyboardIndicatorsの値を10進数から2進数、8進数、16進数に変換してみたところ、興味深い数値になりました。8進数と16進数の下一桁が0~7になっていました。またWindows8でNumLockをオンにする80000002が16進数の欄にありました。

  2進数
  8進数
  10進数
  16進数




  10000000000000000000000000000000
  20000000000
  2147483648
  80000000


  10000000000000000000000000000001
  20000000001
  2147483649
  80000001


  10000000000000000000000000000010
  20000000002
  2147483650
  80000002


  10000000000000000000000000000011
  20000000003
  2147483651
  80000003


  10000000000000000000000000000100
  20000000004
  2147483652
  80000004


  10000000000000000000000000000101
  20000000005
  2147483653
  80000005


  10000000000000000000000000000110
  20000000006
  2147483654
  80000006


  10000000000000000000000000000111
  20000000007
  2147483655
  80000007

更に興味深いのは2進数の下3桁で、下1桁目がCaps Lockで、下2桁目がNum Lockで、下3桁目がScroll Lockとなっているようです。オンにするキーに該当する桁を1にした場合の2進数を10進数に変換すると0~7になります。

Hugo で構築されています。
テーマ Stack は Jimmy によって設計されています。