すべての指示命令は「#」から始まる名前となっています。
スクリプトを永続的に実行状態にできます。
#Persistent#Persistent
ホットキー、ホットストリング、OnMessage()やGUIが使用されていないスクリプトは、通常そのスクリプトの終わりで終了します。#Persistentコマンドを使用することで、これをつねに実行状態にできます。
すでにスクリプトが実行されているときの、スクリプトの起動を制御できます。
#SingleInstance [force|ignore|off]#SingleInstance
パラメータ | 説明 |
---|---|
なし | 古いインスタンスを維持するか、新しいそれで置換するかをダイアログで尋ねる。 |
force | ダイアログを表示せず、自動的に新しいインスタンスで置換する。これはReloadコマンドの効果に似ている。 |
ignore | |
off |
既定では次のようなダイアログが表示され、ユーザーに選択が求められます。
それは「An older instance of this script is already running. Replace it with this instance? Note: To avoid this message, see #SingleInstance in the help file.」といった内容です。
他のスクリプトを、この命令のある位置に読み込めます。
#Include FileOrDirName#Include
#Include sample.ahk
ディレクトリ名だけを指定した場合には、それ以降の作業ディレクトリがそこに変更されます。この変更が作用するのは#IncludeとFileInstallのみで、スクリプトの作業ディレクトリ (A_WorkingDir) は、SetWorkingDirで変更します。
スクリプトのエスケープ文字を変更できます。既定では、これはバッククォート (`) です。
#EscapeChar NewChar#EscapeChar (and explanation of escape sequences)
エスケープ文字をバックスラッシュに (\
) に変更するには、
#EscapeChar \
とします。
ホットキーとホットストリングが機能するウィンドウを指定できます。
#IfWinActive [, WinTitle, ; 対象のウィンドウ WinText] ; 対象のウィンドウ内に含まれているテキスト#IfWinActive / #IfWinExist
WinTextはウィンドウ内に含まれているテキストを指定するもので、タイトルに含まれるテキストはWinTitleで指定します。
たとえばメモ帳にだけ適応したいホットキーがあるときには、
#IfWinActive, ahk_class Notepad
と記述することで、その後で定義されるホットキーは、メモ帳がアクティブなときのみ機能するようになります。この設定を無効にするには、パラメータを指定せずに
#IfWinActive
とします。
WinTextに変数は使えません。#IfWinActive / #IfWinExist
対象のウィンドウをタイトルの文字列で指定するときは、独特な名前で指定するようにします。さもなくば予期せぬウィンドウでスクリプトが起動することになります。または複数の条件を指定し、他と区別されるようにします。
同一アプリケーションの異なるウィンドウに同一のホットキーを指定するときには、より具体的に指定するウィンドウを先に記述するようにします。
なおホットキーの発動ではなくウィンドウごとに処理を分岐させるには、IfWinActiveコマンドを使用します。
ホットキーとホットストリングが機能する条件を式で指定できます。
#If [Expression]#If - Syntax & Usage | AutoHotkey
ホットストリングのオプションの指定、または終了文字の変更を行えます。3つの形式があり、それぞれ機能が異なります。
#Hotstring NoMouse
#Hotstring EndChars NewChars
#Hotstring NewOptions#Hotstring
「n hotkeys have been received in the last mms.」のダイアログが表示されるときには、これと#HotkeyIntervalの値を見直します。
#MaxHotkeysPerIntervalの既定は70、#HotkeyIntervalは2000で、70以上のホットキーが2000ミリ秒以内に押されると、警告ダイアログが表示されます。 #MaxHotkeysPerInterval #HotkeyInterval
ウィンドウをアクティブにするとき、穏やかな方法を省き、強引な方法を用いるようにできます。これは早さや正確性を向上させるものではなく、タスクバー ボタンのフラッシュを抑制するためのものです。
#WinActivateForce#WinActivateForce
スクリプトにこのコマンドが含まれているとWinActivate、WinActivateBottomなどでウィンドウをアクティブにするとき、最初から強引な方法で処理されるようになります。
構文エラーをダイアログではなく、標準エラー出力へ送るようにできます。#ErrorStdOut - Syntax & Usage | AutoHotkey
AutoHotkey.exe C:\myScript.ahk 2> log.txt