Hotkey
実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 |
キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル |
レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト
Hotkey[編集]
スクリプト実行中にホットキーを割り当てたり設定を変更したりする。
Hotkey, KeyName [, Label, Options] Hotkey, IfWinActive [, WinTitle, WinText] Hotkey, IfWinExist [, WinTitle, WinText] Hotkey, IfWinNotActive [, WinTitle, WinText] Hotkey, IfWinNotExist [, WinTitle, WinText] Hotkey, If, Expression
Parameters[編集]
引数名 | 説明 | |
---|---|---|
KeyName | ホットキー定義で使用するようなキー名。 すでに設定されているホットキーの場合、以下の引数に基づき設定が変更される。 この際、大文字小文字の違いや ^!c と !^c のような修飾キー記号の順番の違いは無視される。IfWin...サブコマンドによる条件の設定が有効の場合、その条件下でのアクションが設定・更新される。 | |
Label | ホットキー入力時に実行させたいラベル名。ホットキーラベルも可能。後ろの : や :: は含まない。すでに登録されているホットキーの場合、ここを空にすることで、他の設定だけを変更できる。 ラベル名のほかに以下のものも設定できる。 | |
On | Offにしたホットキーを再度有効にする | |
Off | ホットキーを無効にする | |
Toggle | 無効と有効を切り替える | |
AltTab他 | 各種AltTabアクションを割り当てる | |
Options | 以下のオプションの組み合わせ。 半角スペースで区切っても、全部つなげて書いてもよい。 | |
UseErrorLevel | 何らかの問題が発生したとき、エラーダイアログを表示せず、後述のErrorLevel変数に値を代入して処理を続行する。 | |
On | 停止されているホットキーのLabel割り当てを更新しつつ、再度有効にしたいときに指定する。 | |
Off | ホットキーを無効にする。Labelを割り当てつつ無効にしたいときに使う。 | |
B | #MaxThreadsBufferと同じバッファ処理を行う。 | |
B0 | バッファ処理を行わない | |
Pn | n にスレッドの優先度を指定。例えば P3
| |
Tn | n にスレッド数の上限を指定。#MaxThreadsPerHotkeyで指定するものと同じ。 | |
IfWinActive IfWinExist IfWinNotActive IfWinNotExist |
ホットキーが動作する条件を設定する。 このサブコマンドで条件を変更すると、以後にHotkeyコマンドでホットキーに割り当てられたアクションは、その条件に一致する場合のみ動作するようになる。 条件の詳細は#Ifwin...指令の項を参照。 | |
WinTitle WinText |
ウィンドウのタイトル、テキストの条件を指定する。Hotkey,IfWinActive のようにこの引数を空にして実行すると、 条件無し に設定される。
| |
If, Expression | AHKL 指定のExpression をホットキーの条件とする。#If で指定するものと同様。 |
ErrorLevel[編集]
AHKL [v1.1.04+] このコマンドは失敗した場合に例外をスローすることができる。詳細は実行時エラーを参照。
IfWin..,系サブコマンドを使用した場合、設定に成功すれば 0
、何らかの問題が発生した場合 1
になる。
UseErrorLevelオプションを使用した場合、問題がなければ 0
、問題があった場合は以下のどれかになる。
1 | Label引数で指定されたラベルが存在しない |
2 | KeyNameパラメータで指定されたキーが現在のシステムで使用できないか、そもそも存在しない |
3 | WheelUp & MButton のように、コンビネーションキーのプレフィクスキーに使用できないキーを指定した
|
4 | AltTabやShiftAltTabに単独のキーを割り当てようとした(これらの機能には、2つ以上のキーからなるホットキーを割り当てる必要がある) |
5 | 設定されていないホットキーの設定を更新しようとした |
6 | ホットキーは設定されているが、現在の IfWin... 条件下のアクションが設定されていない時に設定を更新しようとした
|
50 | 登録しようとしたホットキーが他のアプリケーションで使用されていて登録できなかった(Windows9x系のみ) |
51 | Windows9x系では使用できないホットキーを設定しようとした |
98 | 設定できるホットキー数の上限700個を超過した |
99 | 空きメモリが足りずに処理に失敗した |
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.
Remarks[編集]
このコマンドで割り当てるより、ホットキーラベルとして定義した方が効率がよい。
このコマンドは、スクリプトで動的に割り当てを変更したい場合などにのみ使用する。
一つのラベルを複数のホットキーに割り当てることもできる。
この場合、%A_ThisHotkey%変数でどのホットキーが押されたかを知ることができる。
このコマンドで作られたホットキーも、Suspendコマンドで停止することができる。
このコマンドでホットキーを登録・無効化した場合、キーボードフックやマウスフックは自動的に有効・無効になる。
このコマンドでホットキーを作成すると、スクリプトは自動的に常駐になる。
Related[編集]
#Ifwin..., Hotkey Symbols, #MaxThreadsBuffer, #MaxThreadsPerHotkey, Suspend, Threads, Gosub, Return, Menu, SetTimer
AHKL #If
Example(s)[編集]
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