最近買った外付けテンキーで数値キーを押したら、数値キー入力の前後にNumLockキーが押されたことになっていた。理由として有力なのは、本体側のキーボードとNumLockキーの状態を連動させないように一瞬だけNumLockを有効にすることで数値入力を行っているため。
テンキーの不思議な挙動
外付けテンキーをAmazonで買いました。テンキーといえばPCキーボードの右端についていることも多い入力デバイスです。私はテンキーレス派、つまりテンキーが付いていないキーボードを普段愛用しているのですが、ふとテンキーの活用をしてみたくなり購入に至りました。テンキーの数字キー入力は、通常の数値キー入力とは区別される(キーコードが異なる)ので、ソフトのショートカットキー割り当てに有用なのです。
さて、テンキーを手に入れたので早速PCとBluetoothで接続。とりあえず打鍵。テキストエディタに数値が並びます。ほんの少し遅延がある気がしましたが問題なし。次に、目的のソフトの設定でテンキーの「1」を割り当ててみます。正しく割り当てられれば”NumPad 1″といったキー名が表示されるはずです。しかし表示されたのは”NumLock”の文字。あれ? さっきは確かに数値が入力出来ていたのですが。
キーを押した際の入力がどのように認識されているのか確認してみると、「NumLock」→「NumPad 1」→「NumLock」という順に一瞬で入力したことになっています。それは困る! しかし、何故このような挙動なのでしょう?
おさらい: NumLockキーとは?
皆さんはNumLockキーをご存じでしょうか。簡単に言えば「テンキーで数値入力を有効にするキー」です。
NumLockキーが無効の場合、テンキー入力は数値キーではなくカーソルキー等として動作します。ほとんどのキーボードにはカーソルキーが独立して付いているのでNumLockキーを無効にする必要性はないのですが、たまに間違って押すとテンキーで数値が入力できなくなってビックリする、らしいです(繰り返しになりますが私はテンキーレス派です)。NumLockキーが「PCキーボードから取り外したいキーランキング」の上位を争っているというのも頷けます。話が脱線しましたが、つまり「テンキーで数値を入力するにはNumLockキーを有効にする必要がある」のです。
「NumLockキー非連動機能」が原因?
テンキーには2種類あります。NumLockキー連動タイプと非連動タイプです。
連動タイプは、テンキーのNumLockキーの状態が本体側のキーボードと連動するものです。ここで問題となるのが、NumLockを有効にすると一部キーがテンキーとして機能するキーボードが存在することです(ノートパソコンに多いようです)。つまり、テンキーで数字を入力するためにNumLockを有効にすると、本体側のキーボードのキー入力も置き換わってしまいまともに入力できません。
一方で非連動タイプは、その名の通りテンキーのNumLockキーの状態が連動せず独立しています。テンキーのNumLockを有効にしても、本体側は有効にならないため変わらずキー入力が行えます。
詳しくはサンワサプライさんの解説「Point 4 NumLockキー・非連動タイプとは」をご覧ください。
さて、私が今回購入したテンキーについてはどうでしょうか。Amazonのページを見る限りではNumLockキーの連動・非連動に関する記載はありませんでしたが、テンキーでNumLockキーを押しても本体側のNumLock状態は変化しなかったのでおそらく非連動なのでしょう。
そしてここからは憶測ですが、「NumLock」→「NumPad 1」→「NumLock」という高速入力は、本体側キーボードのNumLockが無効な時にテンキーの数値入力を行うためのマクロなのではないでしょうか。確かにNumLockを一瞬だけ有効にすれば他のキー入力に影響はありませんし、テンキーの数字入力としてOSに認識させられます。そう思いながら調べていたら有力な情報が見つかりました。
外付けテンキーに関する注意:
ドライバ不要で NumLock 非連動型のものは、NumLock状態はOS側に通知されず、数値キーが押される前後にNumLockを出力している場合がある。
キーリスト – AutoHotkeyJp
完全にこれですね。本日の結論です。「ドライバなしでテンキーから数値を入力するために、キー入力の前後でNumLockを出力するテンキーがある」。ということは、テンキーによってはNumLockキー非連動かつ妙なマクロなしで動くものがあるのでしょうか。私はとりあえず買ってしまったテンキーをどうにか使えるように色々試してみます。