AutoHotkeyでメディアキーのホットキーを作成する
メディアキー(マルチメディアキー/ホットキー)をリマップを試みたのだが、AutoHotkeyでは基本制御できない事が分かった。ただ、ファンクションキーは割と自由度高めにカスタマイズが可能でマルチメディアキーを取り入れたり、アプリケーションの起動など様々なカスタマイズが可能(正確にはメディアキーはリマップはできることはできるが、やらないほうが無難)。
ここではメディアキーを取り入れる方法とメディアキーをリマップした場合について述べる。
メディアキーを取り入れる
例えばF1~F12
などにメディアキーを取り入れたい場合、ドキュメントにある【マルチメディアキー】を参考に下記のように記述することでマルチメディアキーが有効になる。
#Requires AutoHotkey v2.0+
; F1-F12
F1:: Volume_Mute
F2:: Volume_Down
F3:: Volume_Up
F4:: SoundSetMute -1,, "Microphone"
F5:: Media_Next
F6:: Media_Prev
F7:: Media_Play_Pause
F8:: Run "explore C:\Users\your_username\Videos\Captures"
F9:: Send "{PrintScreen}"
F10:: Send "#!{r}"
F11:: Browser_Refresh
F12:: Return
上記コードのメディアキー以外の補足。
名前 | 説明 |
---|---|
SoundSetMute -1,, "Microphone" | マイクのオン/オフ |
Run "explore C:\Users\your_username\Videos\Captures" | エクスプローラー起動のホットキー。サンプルのようにパスを指定することでエクスプローラーのショートカットが作成できる。 |
Send "{PrintScreen}" | スクリーンショット |
Send "#!{r}" | 画面録画の開始 |
Return | キーの無効化 |
メディアキーをリマップする場合
もし画像のようなメディアキーが割り振られていた場合、リマップができるものとできないものがあるので注意してほしい。基本AutoHotkeyではメディアキーの制御はできないと思ってください。おそらくBIOS起動したりレジストリの方で変更しないといけないレベルになります。

画像のようなメディアキーの場合マルチメディアキーで登録されているキーがあればリマップは可能です。F1(ミュート)F2(音量を下げる)F3(音量を上げる)に対して別のキーを登録したい場合は下記のコードのように記述すれば動作します。
Volume_Mute:: MsgBox "こんにちは"
Volume_Down:: Volume_Down
Volume_Up:: Volume_Up
PrintScreen:: Send "#{PrintScreen}"
例えばPrintScreen
を押したら全画面スクリーンショットに切り替えるホットキーに設定してもはじかれ通常のスクリーンショットになります。つまり制御不可能ということなのでしょう。無難にファンクションキーをリマップするべきかと思います。
ただ、ファンクションキーにはメディアキーを割り振ることは可能でマルチメディアキーで用意されていないメディアキーも自作することが可能です。この場合高度な知識が必要でWindowAPIやDllCallなどのWindowsに対して深い知識が必要になってくる。