まえがき
業務に使っているPCはテンキーの付いたノートPCなのですが、基本的にNumLockを有効としてテンキーでも数字が入力できるようにしたいと思っています。
PCの調子が悪くなり、初期化を行ったのですが、NumLockを常に有効にしたいのにログインすると無効になってしまうという問題にしばらく悩まされたので、これをチェックしておけばよいというポイントをメモしておきたいと思います。
BIOSの設定
まずはBIOSに設定項目があります。メーカーによって異なってくるかとは思いますが、多分基本的にはどこのPCでも設定できるんじゃないかと思います。今使っているのはHPのやつですが、ロゴが出ているときにF10を連打してセットアップメニューに入り、詳細設定のブートオプションの中に「ブート時のNum Lock」というのがあるので、これをONにして保存します。
シャットダウン時の設定
そもそもNumLockが有効な状態でシャットダウンしておかないと、次回起動する際に、有効な状態になっていないという情報がありました。一応、これは意識しておきます。
高速スタートアップの無効化
これは実際影響があるのか不明なのですが、高速スタートアップが有効だと良くないという情報がありました。分からないけれどとりあえず無効化しておきます。
コントロールパネルの電源オプション、「電源ボタンの動作を選択する」の中にあります。無い場合はそもそも無効だということで関係ないのだと思いますが、もし項目を出したい場合は、PowerShellからpowercfg /hibernate on
とすると出てきます。
レジストリの変更
ググるとよく出てくる情報ですが、レジストリをいじるとログイン後のNumLockの状態を制御できるとのことです。[HKEY_USERS]-[.DEFAULT]-[Control Panel]-[Keyboard]
の "InitialKeyboardIndicators" の値のデータを"2"または"2147483650"にするとよいそうです。
しかし自分のケースではうまくいきませんでした。上記のレジストリ位置とは違うのですが、[HKEY_CURRENT_USER]-[Control Panel]-[Keyboard]
の "InitialKeyboardIndicators" を確認してみると、これを"2"または"2147483650"に変えても、再起動すると"0"に戻ってしまうのです。これは、次の項の設定が原因のようでした。
スクリーンキーボードの設定
これが検索してようやく見つけた情報で、自分のケースでの根本原因でした。シャットダウン時にキーボード上ではNumLockを有効にしていても、再起動後にWindowsのスクリーンキーボード機能を開いてみると、NumLockは無効状態になっていたのです。起動したことさえ無かった機能でしたが、これを有効にして、そのまま再起動してみたところ、NumLockが有効な状態でログインすることができました。前述の[HKEY_CURRENT_USER]-[Control Panel]-[Keyboard]
を確認しても、"0"に戻っていることはありませんでした。
おわりに
ネットでまとまっている情報がほとんど上記3番目までしか書いておらず、5番目の情報を残しておきたいと思い、記事にしました。もし困っている方の助けになれば幸いです。
おまけ:NumLockキーを使わない…いや、使う
上記のようにNumLockは常に有効でありたいマンなので、NumLockキーのキーバインドを変えてそもそも使えなくしてやろうと思いました。こちらの記事で紹介されているサイトからレジストリ変更ファイルを取得してえいやっと対応しました。しかし、対応した段階ではまだ上記5番目の解決策にたどり着いておらず、すなわちログインしてNumLockが無効な状態になっていて、しかしキーバインドを変えてしまったためNumLockキーを押してNumLockを有効にすることができない!するとNumLockが有効な状態でシャットダウンすることもできない!という真理に気付いたりしていました。
そういうわけなので、NumLockキーよりも全く押されることのないキーにNumLockを割り当てて、いざという時に切り替えができるようにしておこう、ということで、2つあるAltキーの右側(たぶん一度も押したことがない)にNumLockを割り当てる形を取ることにしました。
みなさんも、使わないからと言って一つしかないものをゼロにすると、いざという時に困ってしまう可能性があるので、そういうケースは慎重に扱いましょう。