Fnキー+F5キーでF5キーを発行する処理を、F5キーのみで行うには

 キーカスタマイズに関する質問が、先日OKWaveに投稿された。

 質問者の相談内容をまとめてみよう。質問者はWindows 8対応のBluetoothキーボードであるSculpt Mobile Keyboard T9T-00023というものを購入した。このキーボードの特長として、F1キーやF5キーに割り当てられている「Windows 8 ショートカット キー」や「 メディア コントロール キー」の搭載が挙げられる*1。こういった特殊な機能がF1キーやF5キーに割り当てられているため、F1キーやF5キーの本来のキーの機能を利用するには、Fnキーと組み合わせなければならない。質問者はこのような仕組みを「貧弱な機能」と批判し、なんとかしてFnキーを押し下げたままにしたいと言っている。ただし質問者の調査によると、既存のツールを用いてもFnキーの機能は改変しえない。そこで質問者は「壊れてもいいから改造に踏み切りたい」との決意を示し、具体的な方策を尋ねている。



 前述の質問者の希望を叶えるにはAutoHotkey_Lを用いればよい、と私は思っている。
 AutoHotkey_L では何のキーに何の機能を割り当てるかを設定する。まず、前者について考えてみよう。質問者が取り上げたキーボードでは、F1キー や F5キー に、音楽の再生や検索用の機能が割り当てられているようだ。ここで、Fnキーそのものの制御はたとえできなくとも、特殊な機能が割り当てられているそれらのキー自体の挙動を操作さえできればよいことに気がつく。問題のキーは思うに、キーリスト - AutoHotkeyJpの「マルチメディア」のどれかのキーか、「キーコード」で指定できるキーだろうか。なんとかしてAutoHotkey_L で操作するキーの情報を突き止めてみてほしい。
 次に割り当てる機能に焦点を当てる。そうはいっても、質問者はF5キーの本来の機能を使用したいとしか言っていないので、F5キーの情報を発行する機能だけを実装すればよいことになる。
 仮に、F5キーに「ブラウザの検索」機能が割り当てられており、それはAutoHotkey_L で Browser_Search というキーとして認識しうるとしよう。このキーを押したときにF5キーの情報を発行するには、以下のようにAutoHotkeyスクリプトを書く。

Browser_Search::Send,{F5}


 このように、Fnキーの押し下げを制御するのではなく他のキーそのものを制御し、F5キーを発行することを考えてみた。想定していたのは、F5キーにマルチメディア関係の機能が割り当てられていて、その挙動を AutoHotkey_L で改変しうるということである。
 なお、ひょっとすると、F5キーには Win + F という、ブラウザに限らない検索用のショートカット・キーが割り当てられているかもしれない。その場合には #f::Send,{F5} という一行のスクリプトを作成すること*2

*1:Microsoft Sculpt Mobile Keyboard

*2:#fのように修飾キーを含むホットキーの設定方法の関係については、ホットキー - AutoHotkeyJpを参照すること。