ホットキーとは、キーの押下によりスクリプトを起動する機能です。
#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 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]となります。