ホットキーとは、キーの押下によりスクリプトを起動する機能です。
#n:: Run, Notepad.exe return
実行する処理が1行だけならば、
#n::Run, Notepad.exe
のように、returnを省いて記述できます。
ホットキーのラベルに、大文字/小文字の区別はありません。
割り当てられているホットキーは、メイン メニューの【View → Hotkeys and their methods】で一覧できます。
Hotkeyコマンドを使用することで、スクリプト内でホットキーを定義できます。
Hotkey, KeyName [, Label, Options]Hotkey
key := "^a" Hotkey, %key%, Func Func: Run, Notepad.exe return
同一のLabelに異なるKeyNameを指定すると、それらのKeyNameがそれぞれLabelに割り当てられます。よって既存のホットキーの割り当てを変更するには、
Hotkey, %key%, Off
としてキーを無効にします。ただしこうすると再度同じキーに割り当てても有効にならないため、
Hotkey, %key%, Func, On
として明示的に有効にします。
#IfWinActiveのようにホットキーが動作するウィンドウを制限したいならば、
Hotkey, IfWinActive/Exist [, WinTitle, WinText]
の形式を、#Ifのように制限したいならば、
Hotkey, If, Expression
を用います。
直近に実行されたホットキーは、組み込み変数のA_ThisHotkeyで取得できます。
マウスのホットキーは、Windows NT/2000/XP以降でのみ機能します。
| キー | ラベル | |
|---|---|---|
| ボタン | 左 | LButton |
| 中央 | MButton |
|
| 右 | RButton |
|
| ホイール | 上 | WheelUp |
| 下 | WheelDown |
|
| ホイール (Windows Vista以降) |
左 | WheelLeft |
| 右 | WheelRight |
|
| 拡張ボタン (Windows 2000/XP以降) |
戻る | XButton1 |
| 進む | XButton2 |
|
文字キーと数字キーは、その文字または数値と同じ名前を指定します。たとえば「a」キーならば「a」とします。
| キー | ラベル | |
|---|---|---|
| スペース | Space |
|
| タブ | Tab |
|
| エンター | Enter (Return) ※1 |
|
| エスケープ | Escape (Esc) |
|
| バックスペース | Backspace (BS) |
|
| デリート | Delete (Del) ※4 |
|
| インサート | Insert (Ins) ※4 |
|
| ホーム | Home ※4 |
|
| エンド | End ※4 |
|
| ページアップ | PgUp ※4 |
|
| ページダウン | PgDn ※4 |
|
| 上 | Up |
|
| 下 | Down |
|
| 左 | Left |
|
| 右 | Right |
|
| スクロールロック | ScrollLock |
|
| キャップスロック※3 | CapsLock |
|
| ナンバーロック | NumLock |
|
| 変換 | sc079※2 |
|
| 無変換 | sc07B |
|
| ひらがなカタカナ | sc070 |
|
| 半角/全角 | sc029 |
|
| 英数※3 | sc03a |
|
日本語キーボードに特有のラベルのコードは、
のいずれかの形式で指定します。仮想キーとスキャンコードはAutoHotKeyのツールで調べられます。Special Keys - List of Keys and Mouse/Joystick Buttons for Hotkeys and Macros
コロンはホットキーを表す記号として用いるため、
^:::MsgBox, colon
のように指定すると「This line does not contain a recognized action.」としてキーに指定できません。よってこのような場合にはキーコードを用いて、
^sc028::MsgBox, colon
とします。
またセミコロンはコメントを表す記号のため、
;::MsgBox, semicolon
としてもコメントとして無視され機能しません。よってこれもコロン同様に、
sc027::MsgBox, semicolon
とするか、セミコロンをエスケープして
`;::MsgBox, semicolon
とします。Remap colon key: HELP !!! - Ask for Help - AutoHotkey Community
| キー | ラベル | 文字表記のラベル |
|---|---|---|
| Shift | + |
Shift |
| Ctrl | ^ |
Control (Ctrl) |
| Alt | ! |
Alt |
| Win | # |
|
| AltGr | <^?>! |
ホットキーの前に記述し、その作用を拡張します。
| ラベル | 説明 | ME以前への対応※1 |
|---|---|---|
< |
左側の修飾キーを使用する
たとえば |
× |
> |
右側の修飾キーを使用する | × |
* |
修飾キーの状態を考慮しない
たとえば |
× |
~ |
キー本来の機能をブロックしない | × |
$ |
○ | |
UP |
キーが離されたときに、ホットキーを発動する
|
○ |
修飾記号を用いないラベル表記もあります。
| キー | ラベル | 修飾記号での表記 |
|---|---|---|
| 左シフト | LShift |
^+ |
| 右シフト | RShift |
>+ |
| 左コントロール | LControl (LCtrl) |
<^ |
| 右コントロール | RControl (RCtrl) |
>^ |
| 左Alt | LAlt |
<! |
| 右Alt | RAlt |
>! |
| 左Win | LWin |
<# |
| 右Win | RWin |
># |
テンキーからの入力に操作を割り当てられます。そのときNumlockのオン/オフの状態で、キーによっては異なる入力として処理できます。
| キー | ラベル | |
|---|---|---|
| Numlock ON | Numlock OFF | |
| 0 | Numpad0 |
NumpadIns |
| 1 | Numpad1 |
NumpadEnd |
| 2 | Numpad2 |
NumpadDown |
| 3 | Numpad3 |
NumpadPgDn |
| 4 | Numpad4 |
NumpadLeft |
| 5 | Numpad5 |
NumpadClear |
| 6 | Numpad6 |
NumpadRight |
| 7 | Numpad7 |
NumpadHome |
| 8 | Numpad8 |
NumpadUp |
| 9 | Numpad9 |
NumpadPgUp |
| . | NumpadDot |
NumpadDel |
| / | NumpadDiv |
|
| * | NumpadMult |
|
| + | NumpadAdd |
|
| - | NumpadSub |
|
| Enter | NumpadEnter |
|
(マルチメディア キーボードの拡張キー)
| キー | ラベル | |
|---|---|---|
| ブラウザ | 戻る | Browser_Back |
| 進む | Browser_Forward |
|
| 更新 | Browser_Refresh |
|
| 停止 | Browser_Stop |
|
| 検索 | Browser_Search |
|
| お気に入り | Browser_Favorite |
|
| ホーム | Browser_Home |
|
| 音量 | ミュート | Volume_Mute |
| ダウン | Volume_Down |
|
| アップ | Volume_Up |
|
| メディアプレーヤーの操作 | 次へ | Media_Next |
| 前へ | Media_Prev |
|
| 停止 | Media_Stop |
|
| 再生/一時停止 | Media_Play_Pause |
|
| アプリケーションの起動 | メール | Launch_Mail |
| メディアプレーヤー | Launch_Media |
|
| (VK_LAUNCH_APP1) | Launch_App1 |
|
| (VK_LAUNCH_APP2) | Launch_App2 |
|
| キー | ラベル |
|---|---|
| アプリケーションキー | AppsKey |
| プリントスクリーン | PrintScreen |
| ポーズ | Pause |
| ブレーク ※Pauseと区別されません |
Break |
| Ctrl + ブレーク | CtrlBreak |
| ヘルプキー ※1 | Help |
| スリープキー ※1 | Sleep |
Alt + Tabのキー入力のための専用のラベルが、いくつか用意されています。
| ラベル | 機能 |
|---|---|
AltTab |
Alt-tabメニューが表示されているならば前方へ送る、さもなくばメニューを表示する。 (カスタム コンビネーションと共に使用しなければ、何も起こらない) |
ShiftAltTab |
メニューを後方へ送る以外、AltTabと同じ |
AltTabAndMenu |
Alt-tabメニューが表示されているならば前方へ送る、さもなくばメニューを表示する。 |
AltTabMenuDismiss |
Alt-tabメニューを閉じる。 |
ジョイスティックからの入力に操作を割り当てられます。
| キー | ラベル |
|---|---|
| ボタン | Joy1 ~ Joy32 |
| X軸 (水平)、Y軸 (垂直)、Z軸 (深度) | JoyX、JoyY、JoyZ |
| 第4軸 (ラダー) | JoyR |
| 第5軸、第6軸 | JoyU、JoyV |
JoyPOV |
|
JoyName |
|
JoyButtons |
|
JoyAxes |
|
JoyInfo |
2つのキーを組み合わせてホットキーにできます。Custom Combinations - Hotkeys (Mouse, Joystick and Keyboard Shortcuts)
Numpad0 & a::MsgBox, TEST Numpad0 & b::Run, Notepad.exe
ただしリマップを行うときには、
Numpad0 & a::x
のようにはできないため、
Numpad0 & a::Send, x
とします。
タスクトレイのAutoHotKeyのアイコンをダブルクリックし、スクリプトのメイン ウィンドウを開きます。そしてメニューの【View → Key history and script info】を表示させると、そこに直近に入力されたキーのラベルが表示されます。

表示内容は、たとえば次のようなものです。
VK SC Type Up/Dn Elapsed Key Window ---------------------------------------------- 41 01E d 6.24 A 41 01E u 0.05 A 42 030 d 0.90 B 42 030 u 0.05 B F3 029 u 2.18 not found F4 029 d 0.00 not found 09 00F d 0.30 Tab 09 00F u 0.06 Tab F0 03A d 0.48 not found A0 02A d 0.28 LShift A0 02A u 0.06 LShift 1D 07B d 1.03 not found 1D 07B u 0.03 not found
ここで上記1行目は、
の意味であり、Typeは下表の通りです。
| 記号 | 説明 |
|---|---|
| h | Hook Hotkey |
| s | Suppressed (blocked) |
| i | Ignored because it was generated by an AHK script |
| a | Artificial |
| # | Disabled via #IfWinActive/Exist |
| U | Unicode character (SendInput) |
Keyにはキーのラベルが表示されますが、日本語キーボードに特有のキーなどは[not found]となります。