Hotkey

提供: AutoHotkey Wiki
移動: 案内検索

実行制御 | 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