最近ずーど使っていたBluetoothのキーボードがおかしい挙動を繰り返していたため、安い有線キーボードを買い替えました。こんな感じです(Amazon ロジクール K120 商品ページより)
そこで2つの問題がありました。
- 前のキーボードではFキーに便器な機能(音量調整やPlay&Stopなど)がついていたが、これにはなかった。(安いものだから)
- 英語のOS環境下、JIS配列には使わないキーがいくつあります。
- 「変換」、「無変換」など
今回はその使わないキーをFnキーをCombiにして、Fキーに機能を拡張してみました。
環境
- Windows 10 64bit
- Autohotkey v1.1.33.02 (https://www.autohotkey.com/)
- 基本操作は理解している
Solution
今回解決したいことの本質は、「キーマップの変更」です。
しかし、「変換」「無変換」など、Autohotkeyでは既存のリストにはありませんでした。例えば
Symbol | Description |
---|---|
# |
Win (Windows logo key) |
! | Alt |
^ | Ctrl |
+ | Shift |
リストの一覧はこちらで確認できます
特殊キー(Special keys)を見つけ出す
ここで一番の問題は、Symbolのないキーをどうやって私のものになるのか。
そして使ったのは、AutohotkeyにあるKey history
という機能です。
まず任意のスクリプトに以下の行を追加して、強制的にkeyboard hookを動かせます。
# InstallKeybdHook
一度スクリプトをリロードして、
次にView=>Key history and script info
をクリックする。
中身は大体こんな感じになります。
ここで注目してほしいのは、VK(Virtual Key)
&SC(Scan Code)
です。
この場合、F5キーのVKは74、SCは03Fになります。
次に記録されているVK:EB, SC:07B
というのは、「無変換」を押した時の記録です。これにより、Autohotkeyのスクリプトで「無変換」を指せます。
vkEB
かcs07B
であることを分かりました。(v1.1.27前のバージョンでは、vkEBsc07B
という表記も可能です。)
※リフレッシュしても反応がない場合、スクリプトの中身を確認したり、リロードしたりして、再度確認してみましょう。
公式サイトにSpecial Keysに関する説明はこちらで確認可能です。
拡張していきます
「無変換」+「Fキー」にmediaをコントロール機能(Multimedia keys)を拡張させれば良いのです。最終的に出来上がったスクリプトはこんな感じです。
sc07B & F9::Media_Play_Pause
sc07B & F10::Mute the volume
sc07B & F11::Increase the volume
sc07B & F12::Lower the volume
参考
Autohotkey公式ドキュメント
Understanding AutoHotkey Keyboard ScanCodes and Virtual Key Codes
おわりに
既製の機能をものを慣れていくのではなく、主導的に自分の習慣などを合わせていくのも面白かったです。
皆さんも自分の使わないボタンを活用して、Hotkeyを作ってみませんか。