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キーの機能は改変しえない。そこで質問者は「壊れてもいいから改造に踏み切りたい」との決意を示し、具体的な方策を尋ねている。

マイクロソフト Sculpt Mobile Keyboard USB Port T9T-00023
- 出版社/メーカー: マイクロソフト
- 発売日: 2012/11/02
- メディア: Personal Computers
- この商品を含むブログを見る
前述の質問者の希望を叶えるには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を参照すること。