2015/06/07

Windows の悪仕様 [F1] キーを無効化

 [F1] キーで「ヘルプ」が開くのは Windows の悪仕様である…というのは、衆目一致するところだと思うのですが、バージョンを重ねても代々踏襲され続けていますよね。
 多分、Windows 10 でも引継がれるんでないでしょうか。

 これ、[F2] キーを使用する際によく押し間違えるんですよ。[F2] キーは、ファイル名の変更や、Excel セル値の変更で多用するキーです。
 押し間違える都度、「ヘルプ」が開くわけです。しかも、マシンスペックによっては開くまでに相応の時間を要する上、その間操作できなくなり非常にストレスフルです。

 そこで、OS のスキャンコードマップを変更して、[F1] キーを無効にしてしまいます。
 これ、かれこれ 2、3年ほど前から設定していますが、意図せず開く「ヘルプ」に煩わされることもなくなり、非常に快適です。

 この方法の問題点としては、OS レベルで完全にキーを無効にしてしまうので、[F1] キーが全く使えなくなるということがあります。
 とはいえ幸か不幸か、ほとんどのアプリケーションで [F1] キーは「ヘルプ」に割当てられているため、今のところ困ったことはありません。ただ、一部特殊なアプリケーション(キーボードをフルに使うゲームとか)では問題が発生するかもしれません。まぁ私の場合は、ゲームをあまりしない人間なので。

 さて、設定方法ですが、レジストリを変更します。
 「『レジストリ』って何?」という方は、とんでもないところを編集してしまうとシステムに致命的なダメージを与えかねませんので、やらないほうが無難だと思います。なので、エディタの起ち上げ方等、作業の具体的手順については触れません。

 ターゲットのレジストリキーは、以下になります。

OS 全体に適用する場合:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]

ログオン中のユーザにのみ適用する場合:
[HKEY_CURRENT_USER\KeyBoard Layout]

 いずれかのキーの下へ、以下の値を追加します。

名前: Scancode Map
種類: バイナリ値(REG_BINARY)

 で、この値に入れるデータは次のとおり。

00 00 00 00 00 00 00 00 02 00 00 00 00 00 3B 00 00 00 00 00


 これの意味するところは、以下のようになります。

00 00 00 00 :ヘッダ(固定)
00 00 00 00 :ヘッダ(固定)
02 00 00 00 :設定の数(1) + 1(フッタ分)
00 00 3B 00 :無効(0x0000) ← F1(0x003B)
00 00 00 00 :フッタ(固定)

 なので、別に「無効(0x0000)」としなくても、他のキーに割り当てることも可能です。
 コードの一覧は、以下が参考になります。

Keyboard Scan Code Specification - Microsoft
http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/scancode.doc

 なお、レジストリ値に組込む際は、リトルエンディアンになることに留意してください。例えば、[右Alt] キーはコード 0xE038 ですが、レジストリ値へは 38 E0 となります。
 コードは左右入換て使わないといけない、と覚えておけば良いかと思います。

 ご参考まで、私の設定値を上げておきます。

00 00 00 00 :ヘッダ(固定)
00 00 00 00 :ヘッダ(固定)
04 00 00 00 :設定の数(3) + 1(フッタ分)
5C E0 38 E0 :右Windows(0xE05C) ← 右Alt(0xE038)
5D E0 1D E0 :Application(0xE05D) ← 右Ctrl(0xE01D)
00 00 3B 00 :無効(0x0000) ← F1(0x003B)
00 00 00 00 :フッタ(固定)

1 件のコメント:

j-kawa さんのコメント...

ありがとうございます。
何度も参照し、いくつかのPCに設定しました。

説明もわかりやすく、レジストリを操作する
責任も自分で取れます。