ホットキーの空きを調べる
Windowsにはホットキーを表示する機能はないが、調べることができないのかというとそうではなく、プログラムを作れば、「RegisterHotKey」関数で割り当てたホットキーを調べることは可能だ。
キーの組み合わせをRegisterHotKey関数で登録しようとしたとき、すでに割り当てられている組み合わせは、エラーになって登録できない。これからすでに使われている組み合わせを知ることができる。
ただ、キーボードフックやメッセージを使う方法は、検出が困難だ。アプリケーションのコードを調べればわかるのだが、基本的には困難で事実上調べることはできない。残された方法は、プログラムひとつひとつでホットキーが有効化どうかを確かめる方法である。
インターネット検索するとホットキーを調べるツールがいくつか見つかる。筆者も自作のプログラム用にPowerShellで空いているホットキーの組み合わせを探すプログラムを作った。プログラム自体には、あまり興味が持てないだろうから、リストを掲載するのはやめてGitHubに上げておいた。
●ShinjiShioda/SerchWindowsHotkey: PowerShell Search Windows Hotkey program
https://github.com/ShinjiShioda/SerchWindowsHotkey
また、上記のリポジトリに、作成したプログラムで出力したCSVファイルとそれを取り込んだExcelファイルも置いてある。
ホットキーの割り当て状態
以下の表は、Windows 11 Ver.22H2で機能キーを使うホットキーの割り当て状態である。機能キーは、Winキーあり/なしの組み合わせがホットキーに使われている。ただし、修飾キーにWinキーを含まない組み合わせはごく少数である。また、「Win+Alt+Ctrl」を修飾キーに持つ組み合わせは定義されていないようだ。ファンクションキーのF14以降にホットキーの割り当てが多数あるが、検証はできなかった。F12までしかないキーボードでは、「Shift+F1~F12」が「F13~F24」になるとされているが、この方法では、F13~F24に割り当てられたホットキーを押すことはできないようだ。これについては別途調べてみたい。
文字/数字/記号を使うホットキーは、修飾キーにWinキーを含むものだけが定義されており、Winキーを含まない組み合わせは、ホットキーとしては定義されていなかった。これは、そもそも文字数字キーは、アクセラレータでの利用が想定されているからだろう。
ホットキーは原則は文字ではなく、キーに対して定義する。Windowsでは、さまざまな配列のキーボードを使うため、記号類に対応したキーには特殊な仮想キーコードが割り当てられており、特定の配列に依存しないようになっている。日本語用の109キーボードの場合の記号キーの割り当てを以下の表に示す。
ホットキーを使って、さまざまな機能をキーだけで実行できるユーティリティなどもあり、ホットキーで作業効率などを改善できる。残念ながら、すべてのホットキーを調べることはできないが、少なくともWindowsが利用しているホットキーがわかれば、これを避けて割り当てをすることが可能だ。