スクリプト実行中にホットキーを割り当てたり設定を変更したりする
Hotkey, KeyName [, Label, Options] Hotkey, IfWinActive [, WinTitle, WinText] Hotkey, IfWinExist [, WinTitle, WinText] Hotkey, IfWinNotActive [, WinTitle, WinText] Hotkey, IfWinNotExist [, WinTitle, WinText]
引数名 | 説明 |
---|---|
KeyName |
ホットキー定義で使用するようなキー名。 すでに設定されているホットキーの場合、以下の引数に基づき設定が変更される。 この際、大文字小文字の違いや「^!c」と「!^c」のような修飾キー記号の順番の違いは無視される。 IfWin...サブコマンドによる条件の設定が有効の場合、その条件下でのアクションが設定・更新される。 |
Label |
ホットキー入力時に実行させたいラベル名。ホットキーラベルも可能。後ろの「:」や「::」は含まない。 すでに登録されているホットキーの場合、ここを空にすることで、他の設定だけを変更できる。 ラベル名のほかに以下のものも設定できる。
|
Options | 以下のオプションの組み合わせ。 半角スペースで区切っても、全部つなげて書いてもよい。
|
IfWinActive, IfWinExist, IfWinNotActive, IfWinNotExist |
ホットキーが動作する条件を設定する。 このサブコマンドで条件を変更すると、以後にHotkeyコマンドでホットキーに割り当てられたアクションは、その条件に一致する場合のみ動作するようになる。 条件の詳細は#Ifwin...指令の項を参照。 |
WinTitle, WinText |
ウィンドウのタイトル、テキストの条件を指定する。 「Hotkey,IfWinActive」のようにこの引数を空にして実行すると、「条件無し」に設定される。 |
IfWin..,系サブコマンドを使用した場合、設定に成功すれば0、何らかの問題が発生した場合1になる。
UseErrorLevelオプションを使用した場合、問題がなければ0、問題があった場合は以下のどれかになる。
KeyNameとUseErrorLevelオプションだけを指定することにより、そのホットキーが設定されているかどうかを調べることができる。
Hotkey, ^!p,, UseErrorLevel if ErrorLevel in 5,6 MsgBox The hotkey does not exist or it has no variant for the current IfWin criteria.
このコマンドで割り当てるより、ホットキーラベルとして定義した方が効率がよい。
このコマンドは、スクリプトで動的に割り当てを変更したい場合などにのみ使用する。
一つのラベルを複数のホットキーに割り当てることもできる。
この場合、%A_ThisHotkey%変数でどのホットキーが押されたかを知ることができる。
このコマンドで作られたホットキーも、Suspendコマンドで停止することができる。
このコマンドでホットキーを登録・無効化した場合、キーボードフックやマウスフックは自動的に有効・無効になる。
このコマンドでホットキーを作成すると、スクリプトは自動的に常駐になる。
#Ifwin..., Hotkey Symbols, #MaxThreadsBuffer, #MaxThreadsPerHotkey, Suspend, Threads, Gosub, Return, Menu, SetTimer
Hotkey, ^!z, MyLabel return MyLabel: MsgBox You pressed %A_ThisHotkey%. return ; Other examples: Hotkey, RCtrl & RShift, AltTab ; Makes RCtrl & RShift operate like Alt-Tab. Hotkey, #c, On Hotkey, $+#c, Off Hotkey, ^!a, , T5 ; Change the hotkey to allow 5 threads. Hotkey, IfWinActive, ahk_class Notepad Hotkey, ^!c, MyLabelForNotepad