設定サンプル
メッセージボックスを表示する
- メモ帳を開き、次のテキストを記入します。
MsgBox, Hello AutoHotkey world
- 次のように指定して保存します。
- ファイル名
script.ahk
- ファイルの種類
すべてのファイル (*.*)
- 文字コード
UTF-8
- 保存した script.ahk をダブルクリックして実行すると、「Hello AutoHotkey world」ウィンドウが表示されます。

「Hello AutoHotkey world」ウィンドウの表示
「Alt」+「4」キーでアプリケーションを終了する
アプリケーションの終了ホットキーとして
Alt +
F4 キーがあります。
Alt +
F4 キーだと
F4 キーが少し遠いので、
4 キーで代用してしまおう、というものです。
- メモ帳を開き、次のテキストを記入します。
!4::Send,!{F4}
return
- 次のように指定して保存します。
- ファイル名
QuitAlt4.ahk
- ファイルの種類
すべてのファイル (*.*)
- 文字コード
UTF-8
- 保存した QuitAlt4.ahk をダブルクリックして実行すると、システムトレイに
アイコンが表示されます。
この状態が先ほど設定したスクリプトが有効な状態です。
試しにいま開いているメモ帳をクリックして(アクティブにして)、Alt + 4 キーを押すとメモ帳が閉じられることを確認できます。
- 本スクリプトを終了するには、システムトレイの
アイコンの右クリックメニュー「Exit」から終了できます。
「無変換」+「J」キーで矢印キー左に動かす
矢印キーはキーボードの少し離れた位置にあるので、無変換キーを活用してなるべく手を動かさずに矢印キーを押すということを目的としたキーバインド(複数キーの組み合わせ)です。
- メモ帳を開き、次のテキストを記入します。
vk1D & j::Send, {left}
- 次のように指定して保存します。
- ファイル名
ArrowLeft.ahk
- ファイルの種類
すべてのファイル (*.*)
- 文字コード
UTF-8
- 保存した ArrowLeft.ahk をダブルクリックして実行すると、システムトレイに
アイコンが表示されます。
この状態が先ほど設定したスクリプトが有効な状態です。
試しにいま開いているメモ帳をクリックして(アクティブにして)、無変換 + J キーを押すとメモ帳内で点滅しているキャレットが左に移動することを確認できます。
- 本スクリプトを終了するには、システムトレイの
アイコンの右クリックメニュー「Exit」から終了できます。
実装サンプル - 複数設定する
複数のスクリプトを組み合わせて、実際に利用できる設定のサンプルです。
- メモ帳を開き、次のテキストを記入します。
; 無変換 + J キー ⇒ ← キー
; 無変換 + L キー ⇒ → キー
; 無変換 + I キー ⇒ ↑ キー
; 無変換 + K キー ⇒ ↓ キー
vk1D & j::Send, {Blind}{Left}
vk1D & l::Send, {Blind}{Right}
vk1D & i::Send, {Blind}{Up}
vk1D & k::Send, {Blind}{Down}
; 無変換 + , キー ⇒ Home キー
; 無変換 + . キー ⇒ End キー
vk1D & vkBC::Send, {Blind}{Home}
vk1D & vkBE::Send, {Blind}{End}
; 無変換 + U キー ⇒ PageUp キー
; 無変換 + O キー ⇒ PageDown キー
vk1D & u::Send, {Blind}{PgUp}
vk1D & o::Send, {Blind}{PgDn}
; 無変換 + 1 キー ⇒ F1 キー
; 無変換 + 2 キー ⇒ F2 キー
; 無変換 + 3 キー ⇒ F3 キー
; 無変換 + 4 キー ⇒ F4 キー
; 無変換 + 5 キー ⇒ F5 キー
; 無変換 + 6 キー ⇒ F6 キー
; 無変換 + 7 キー ⇒ F7 キー
; 無変換 + 8 キー ⇒ F8 キー
; 無変換 + 9 キー ⇒ F9 キー
; 無変換 + 0 キー ⇒ F10 キー
vk1D & 1::Send, {Blind}{F1}
vk1D & 2::Send, {Blind}{F2}
vk1D & 3::Send, {Blind}{F3}
vk1D & 4::Send, {Blind}{F4}
vk1D & 5::Send, {Blind}{F5}
vk1D & 6::Send, {Blind}{F6}
vk1D & 7::Send, {Blind}{F7}
vk1D & 8::Send, {Blind}{F8}
vk1D & 9::Send, {Blind}{F9}
vk1D & 0::Send, {Blind}{F10}
※ 無変換キーとの組み合わせで別のキーを実行できるようにするスクリプトです。
※ {Blind} を追加すると他のキーとの組み合わせの動作も可能となります。例えばブラウザーでページを開いているときに Alt + 無変換 + J キーを押して前のページに移動可能となります。
※ ; の行はわかりやすいように補足したコメント行なので削除したり、自分なりのコメントに書き換えても動作は変わりません。

実装サンプル
- 次のように指定して保存します。
- ファイル名
AutoHotkey.ahk
- ファイルの種類
すべてのファイル (*.*)
- 文字コード
UTF-8
- 保存した AutoHotkey.ahk をダブルクリックして実行すると、システムトレイに
アイコンが表示されます。
この状態が先ほど設定したスクリプトが有効な状態です。
- 本スクリプトを終了するには、システムトレイの
アイコンの右クリックメニュー「Exit」から終了できます。
キーリスト
制御キー
| キー |
キーコード |
| 半角/全角 |
vkF3 または vkF4 |
| 変換 |
vk1C |
| 無変換 |
vk1D |
| [カタカナ/ひらがな/ローマ字] |
vkF2 |
※ v1.1.27.00 よりキーが変更となり、例えば無変換キーは vk1Dsc07B ⇒ vk1D に変更となり、最初の vk から始まる4文字のみが有効となり、sc 以下は不要となりました。
修飾キー
| キー |
キーコード |
| Windows |
# |
| Alt |
! |
| Ctrl |
^ |
| Shift |
+ |
修飾キーの使い方
修飾キーは、次のように記述します。
#z::Run www.autohotkey.com
Windows +
Z キーを押すと、ブラウザーで www.autohotkey.com を開きます。
修飾キーを複数組み合わせる場合は、次のように記述します。
^!n::
IfWinExist 無題 - メモ帳
WinActivate
else
Run Notepad
Ctrl +
Alt +
N キーを押すと、「無題 - メモ帳」というタイトルのウィンドウがあればアクティブにし、なければメモ帳を起動します。
更新履歴
v2 系
Version 2.0.21
(2025/02/09)
- 長さではなくアドレスが指定された場合の StrGet のクラッシュを修正しました。(v2.0.20 で修正されました)
Version 2.0.20
(2025/02/08)
- スクリプト終了時のメッセージコールバックで未定義の動作が発生する可能性を修正しました。
- Run がプロセスハンドルを閉じない問題を修正しました。
- 他のスクリプトの GUI ウィンドウ HWND を渡した場合に GuiFromHwnd がクラッシュする問題を修正しました。
- For( a in b ) の先頭のスペースが誤ってエラーを発生させる問題を修正しました。
- 列挙子呼び出し (For) が暗黙的に返される "" を true として扱う問題を修正しました。
- A_maxHotkeysPerInterval と A_Hotkeyinterval が小文字で記述されている場合に誤った値を返す問題を修正しました。
- FileSelect がフィルターパターンに *.. がない場合にフィルターパターンを重複する問題を修正しました。
- コントロール作成時に T オプションを使用した場合に、ListBox のタブストップ間隔が修正されました。[PR #346]
- ~RAlt と <:: により、~ にもかかわらず (および他の L/R 修飾キーでも同様) リリース時に RAlt:: が実行される問題を修正しました。
- 存在しないソースキーによる remap により、サイレント終了が発生する問題を修正しました。
- 修飾子が一致しない場合に、キーアップホットキーが不要なパススルーを引き起こす問題を修正しました。例: ^RButton up:: も存在する場合、RButton:: をアクティブ化した後、RButton のリリースが抑制されない問題を修正しました。
- /* ; */ 内のセミコロンがブロックコメントの終了を妨げていた問題を修正しました。
- 組み込みメソッドの IsOptional および IsByRef の戻り値を修正しました。
- RegWrite のパラメータ 1 を必須に修正しました。
- デバッグ中に文字列の戻り値が破損する問題を修正しました。
- Else の配置が誤っていたため、ロード時にクラッシュするのではなくエラーが発生するように修正しました。
- x64 における StrPut/StrGet の 32 ビット整数制限の処理を修正しました。
- 変換を必要としない操作で文字列の長さが制限されなくなりました。
- API の制限を超えた場合、変換時により一貫した例外が発生するようになりました。
- 1 と LButton up:: の使用後に 1:: が呼び出されないように修正しました。同様の問題も修正しました。
- ListView に Sort オプションがあり、Col1 を省略して Add を呼び出した場合にクラッシュする問題を修正しました。
- 静的関数が親関数の静的変数を使用していない問題を修正しました。
- ペアになっていないキーアップホットキーがプレフィックスとしても使用されているが、カスタムコンボが無効になっているかチルダ修飾子が付いている場合に、キーが抑制されない問題を修正しました。
Version 2.0.19
(2025/01/25)
- RegEx コンパイル中のメモリ範囲外アクセスを修正しました。
- 送信後に外部リリースされた修飾子が「復元」されないように修正しました。
- モーダル ダイアログ ボックスが InputHook イベントを抑制する問題を修正しました。
- 一部のケースで、キー リピートでキーが押された後にキー アップが誤って抑制される問題を修正しました。
- アルファ チャネルのない大きなアイコンをロードするときに発生する重大なエラーを修正しました。
- ClassNN を判別できない場合に、MouseGetPos がコントロールを空白にしてスローしないように修正しました。
- オプションを検証するように FileSelect を修正しました。
- 一部のケースで、予期しない Catch/Else/Finally/Until がエラーとしてフラグ付けされない問題を修正しました。
- Else が返された場合に Try/Catch/Else/Finally が Finally を実行しない問題を修正しました。
- 太い矢印関数を含む if-else-if-else-if の実行を修正しました。
v1 系
Version 1.1.37.02
(2024/03/16)
- 一部の Alt コンボをアクティブにするために LWin::Alt を使用できない問題を修正しました。
- マウスの AltTab ホットキーが、1:: for 1 や WheelDown::AltTab などのプレフィックス ホットキーの実行を抑制しない問題を修正しました。 (v1.1.37.00で壊れました)
- SendInput によって押された修飾子を認識しないフック ホットキーを修正しました。
- 抑制された Alt/Ctrl/Shift/Win ホットキーに影響を与えるいくつかの問題を修正しました。
- *LCtrl:: アクティブ ウィンドウから LCtrl をブロックしましたが、システムは Ctrl キーが押されていると判断するため、Alt キーとキーの組み合わせの送信は失敗し、そのため WM_SYSKEYDOWN の代わりに WM_KEYDOWN が送信されます。
- *LAlt:: により、システムは以前の {LAlt DownR} を忘れてしまうため、LAlt が抑制されていたとしても、LAlt が物理的にダウンしている間は、LCtrl::LAlt などの再マッピングは正しく動作しません。
- システムの修飾キーの低レベル追跡が論理状態と一致しないその他の潜在的な問題。
- A_Clipboard が純粋な数値の割り当てを無視する問題を修正しました。
- RAlt (AltGr ではない場合) を解放した後に SendInput が LCtrl を解放できない問題を修正しました。
- 新しいスレッドがクリティカルによるメッセージ チェックを防止できない問題を修正しました。
フィードバック