指示命令 (Directives)

すべての指示命令は「#」から始まる名前となっています。

関連するコマンド

  • #AllowSameLineComments
  • #ClipboardTimeout
  • #CommentFlag
  • #ErrorStdOut
  • #EscapeChar
  • #HotkeyInterval
  • #HotkeyModifierTimeout
  • #Hotstring
  • #If
  • #IfWinActive / Exist
  • #IfTimeout
  • #Include / #IncludeAgain
  • #InstallKeybdHook
  • #InstallMouseHook
  • #KeyHistory
  • #MaxHotkeysPerInterval
  • #MaxMem
  • #MaxThreads
  • #MaxThreadsBuffer
  • #MaxThreadsPerHotkey
  • #NoEnv
  • #NoTrayIcon
  • #Persistent
  • #SingleInstance
  • #UseHook
  • #Warn
  • #WinActivateForce

スクリプト

#Persistent

スクリプトを永続的に実行状態にできます。

#Persistent
#Persistent

ホットキーホットストリング、OnMessage()やGUIが使用されていないスクリプトは、通常そのスクリプトの終わりで終了します。#Persistentコマンドを使用することで、これをつねに実行状態にできます。

#SingleInstance

すでにスクリプトが実行されているときの、スクリプトの起動を制御できます。

#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

他のスクリプトを、この命令のある位置に読み込めます。

#Include FileOrDirName
#Include
#Include sample.ahk

作業ディレクトリの変更

ディレクトリ名だけを指定した場合には、それ以降の作業ディレクトリがそこに変更されます。この変更が作用するのは#IncludeとFileInstallのみで、スクリプトの作業ディレクトリ (A_WorkingDir) は、SetWorkingDirで変更します。

#EscapeChars

スクリプトのエスケープ文字を変更できます。既定では、これはバッククォート (`) です。

#EscapeChar NewChar
#EscapeChar (and explanation of escape sequences)

エスケープ文字をバックスラッシュに (\) に変更するには、

#EscapeChar \

とします。

ホットキー

#IfWinActive

ホットキーホットストリングが機能するウィンドウを指定できます。

#IfWinActive
    [, WinTitle, ; 対象のウィンドウ
    WinText]     ; 対象のウィンドウ内に含まれているテキスト
#IfWinActive / #IfWinExist

WinTextはウィンドウ内に含まれているテキストを指定するもので、タイトルに含まれるテキストはWinTitleで指定します。

たとえばメモ帳にだけ適応したいホットキーがあるときには、

#IfWinActive, ahk_class Notepad

と記述することで、その後で定義されるホットキーは、メモ帳がアクティブなときのみ機能するようになります。この設定を無効にするには、パラメータを指定せずに

#IfWinActive

とします。

WinText変数は使えません#IfWinActive / #IfWinExist

対象のウィンドウをタイトルの文字列で指定するときは、独特な名前で指定するようにします。さもなくば予期せぬウィンドウでスクリプトが起動することになります。または複数の条件を指定し、他と区別されるようにします。

同一アプリケーションの異なるウィンドウに同一のホットキーを指定するときには、より具体的に指定するウィンドウを先に記述するようにします。

なおホットキーの発動ではなくウィンドウごとに処理を分岐させるには、IfWinActiveコマンドを使用します。

#If

ホットキーとホットストリングが機能する条件を式で指定できます。

#If [Expression]
#If - Syntax & Usage | AutoHotkey

#Hotstring

ホットストリングのオプションの指定、または終了文字の変更を行えます。3つの形式があり、それぞれ機能が異なります。

#Hotstring NoMouse
#Hotstring EndChars NewChars
#Hotstring NewOptions
#Hotstring

#MaxHotkeysPerInterval

n hotkeys have been received in the last mms.」のダイアログが表示されるときには、これと#HotkeyIntervalの値を見直します。

#MaxHotkeysPerIntervalの既定は70、#HotkeyIntervalは2000で、70以上のホットキーが2000ミリ秒以内に押されると、警告ダイアログが表示されます。 #MaxHotkeysPerInterval #HotkeyInterval

その他

#WinActivateForce

ウィンドウをアクティブにするとき、穏やかな方法を省き、強引な方法を用いるようにできます。これは早さや正確性を向上させるものではなく、タスクバー ボタンのフラッシュを抑制するためのものです。

#WinActivateForce
#WinActivateForce

スクリプトにこのコマンドが含まれているとWinActivate、WinActivateBottomなどでウィンドウをアクティブにするとき、最初から強引な方法で処理されるようになります。

#ErrorStdOut

構文エラーをダイアログではなく、標準エラー出力へ送るようにできます。#ErrorStdOut - Syntax & Usage | AutoHotkey

AutoHotkey.exe C:\myScript.ahk 2> log.txt