組み込み変数

提供: AutoHotkey Wiki
移動: 案内検索
リファレンス > 組み込み変数 - 公式ドキュメント

特殊文字[編集]

A_Space 単独の半角スペースを表すのに使う。AutoTrimも参照。
A_Tab 単独のTab文字を表すのに使う。AutoTrimも参照。
False 0」,「」を表すときに使う。
True 1」,「」を表すときに使う。

スクリプト情報[編集]

1, 2, 3, ……及び 0 コマンドライン引数。
%0%には引数の数が格納される。
引数の渡し方などはスクリプトの項を参照。

関数や式では直接参照出来ないので以下のようにする。

var1 = %1%
SomeFunc(var1)
A_WorkingDir 作業ディレクトリ。
ファイルの読み書きなどでデフォルトのディレクトリとなる。
SetWorkingDirコマンドで変更可能。
最後の「\」は除かれる。ただし、ドライブルートだけは例外。
A_ScriptDir スクリプトのあるディレクトリパス。
最後の「\」は除かれる。
A_ScriptName スクリプトのファイル名。
実行ファイル化されている場合、拡張子が「.exe」になる。
IfInString, A_ScriptName, .exe」で、実行ファイル化されているかを判別できる。
A_ScriptFullPath スクリプトのフルパス
A_ScriptHwnd AHKL スクリプトの非表示メインウインドウのユニークID。(HWND/ハンドル)
A_LineNumber スクリプトの現在実行中の行番号。
ListLinesコマンドで表示される行番号と同じ。
行番号はインクルードされたファイル毎のものとなる。
コンパイルした場合は一つのファイルにマージされているので実際の行番号と異なる。
A_LineFile 現在実行中の部分が書かれたスクリプトファイルのフルパス。
#Includeを使用していない場合は、常にA_ScriptFullPathと同じになる。
A_ThisFunc 現在実行中のユーザ定義関数名を格納。関数外では空。
IsFunc()も参照のこと。
A_ThisLabel Gosub, Goto, Return などで移動したラベル名を格納。
ホットキー, ホットストリング, タイマー, GUIイベント, メニュー などのイベントでAHKから呼び出された場合も更新される。
サブルーチン非実行時は空。
A_AhkVersion AutoHotkeyのバージョンを「1.0.22」などの文字列で格納する。
実行ファイル化されたスクリプトの場合、コンパイルを行ったAutoHotkeyのバージョンになる。
If A_AhkVersion >= 1.0.25.07」のようにして、バージョン番号の大小を比べることが可能。
A_AhkPath 現在のスクリプトを実行している実行ファイル(AutoHotkey.exe)のフルパス。

コンパイルされたスクリプトでは、レジストリに記録されたインストール先ディレクトリ内のAutoHotkey.exeのパスになる。
インストール先が取得できない場合は、空文字列になる。

A_IsUnicode AHKL ユニコード版かどうかを示す。
ユニコード版の時のみ真(1)を格納。それ以外の場合は未定義(空文字列)。
A_IsCompiled 実行ファイル化されたスクリプトの場合「1」になる。
それ以外の場合は空になる。
A_ExitReason OnExitで指定されたサブルーチンが終了前に呼び出されたとき、終了理由が格納される。
詳細はOnExit参照。
環境変数名(PATHなど) AutoHotkey実行時の環境変数は普通の変数と同じようにアクセスできる。

繰り返し処理関連[編集]

Loop系のコマンドには固有の組み込み変数が用意されている。詳細に関しては各コマンドのページを参照。

[重要] 本家の公式版およびAHKLのANSI版では ファイルやディレクトリパスを扱う時に結果が不正になる ことがあるので注意すること。

A_Index ループの実行回数。1回目は 1。詳細はLoopの項参照。
 Loop (ファイル検索)
A_LoopFileName ファイル名(ディレクトリパスを除く)
A_LoopFileExt ファイルの拡張子。
.は含まない(例: txt)
A_LoopFileFullPath ファイルのフルパス。
ただし、FilePatternで相対パスを指定した場合は、こちらも相対パスになる。
A_LoopFileLongPath ロングファイルネーム形式の、正式なフルパス。
A_LoopFileShortPath ファイルの8.3形式の短いパス。
ただし、FilePatternで相対パスを指定した場合は、こちらも相対パスになる。
NTFSでショートパスの生成を無効にしている場合、この変数は空になる。
A_LoopFileShortName 8.3形式のショートファイルネーム。
NTFSのショートファイルネーム生成が無効になっているなどの理由により取得に失敗した場合は、A_LoopFileNameと同じものになる。
A_LoopFileDir ファイルのあるディレクトリ。
ただし、FilePatternで相対パスを指定した場合は、こちらも相対パスになる。
A_LoopFileTimeModified ファイルの最終更新日時。YYYYMMDDHH24MISS形式。
A_LoopFileTimeCreated ファイルの作られた日時。YYYYMMDDHH24MISS形式。
A_LoopFileTimeAccessed ファイルの最終アクセス日時。YYYYMMDDHH24MISS形式。
A_LoopFileAttrib ファイルの属性。FileGetAttribで取得されるものと同じ。
A_LoopFileSize ファイルサイズ(Byte単位)。4ギガバイト以上のサイズにも対応。
A_LoopFileSizeKB ファイルのサイズ(KB単位)
A_LoopFileSizeMB ファイルのサイズ(MB単位)
 Loop (レジストリ)
A_LoopRegName 対象となっている値やサブキーの名前。
RegEdit.exeで (規定)となっている値の場合、空になる。
A_LoopRegType サブキーの場合 KEYとなる。
値の場合、 REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ, REG_DWORD, REG_QWORD, REG_BINARY, REG_LINK, REG_RESOURCE_LIST, REG_FULL_RESOURCE_DESCRIPTOR, REG_RESOURCE_REQUIREMENTS_LIST, REG_DWORD_BIG_ENDIAN のどれかになる。
これらのどれでも無いタイプのキーだった場合、空になる。
A_LoopRegKey 対象となっているルートキーの名前。( HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT, HKEY_CURRENT_CONFIG) リモートのレジストリでも、コンピュータ名は含まない。
A_LoopRegSubKey 対象となっている項目のサブキーのパス。
A_LoopRegTimeModified キーの最終更新日時。YYYYMMDDHH24MISS形式。
NT系で、対象がサブキーの場合以外は空。
 Loop,Read
A_LoopReadLine 読み込んだ行の内容。
 Loop,Parse
A_LoopField フィールド内容。

日付時刻[編集]

FormatTimeコマンドを使用することで、より多くの形式を使用できる。

A_YYYY, A_Year 現在日時の年を表す4桁の数字(...2004...)
A_MM, A_Mon 月を表す2桁の数字(01...12)
A_DD, A_MDay 日を表す2桁の数字(01...31)
A_MMMM 月の名称(...July...)
A_MMM 月を表す3文字の省略名(...Jul...)
A_DDDD 曜日を表す文字列(Sunday...)
A_DDD 曜日を表す3文字の省略名(Sun...)
A_WDay 曜日を表す1文字の数字(1...7)1が日曜
A_YDay 1年の中で何日目か(1...366)
ゼロサプライされないので、001...099...366のような形式にしたい場合は、「FormatTime, OutputVar, , YDay0」とする。
A_YWeek 西暦年と週番号をつなげたISO8601形式の文字列(...200453...)
1月1日を含む週が4日以上ある場合、その週が第1週に、そうでない場合は次の週が第1週になる。
A_YDay 1月1日からの日数を表す1~3桁の数(1...366)
A_Hour 時を表す2桁の数字(00...23)
A_Min 分を表す2桁の数字(00...59)
A_Sec 秒を表す2桁の数字(00...59)
A_MSec ミリ秒を表す3桁の数字(000...999)
A_Now 現在時刻をYYYYMMDDHH24MISSの書式で表したもの。
A_NowUTC UTC時刻をYYYYMMDDHH24MISSの書式で表したもの。
A_TickCount OSが起動してからの経過時間(ミリ秒)

スクリプト設定[編集]

A_IsSuspended スクリプトがSuspendコマンドでサスペンドされている場合は「1」になる。それ以外の場合は「0」。
A_IsPaused 実行中のスレッドPauseコマンドで一時停止している場合は「1」になる。それ以外の場合は「0」。
A_IsCritical 実行中のスレッドCritical設定されていない場合は「0」となる。
それ以外の場合は0より大きい整数値(メッセージチェック間隔)を格納する。
A_BatchLines SetBatchLinesで設定した処理速度。
A_TitleMatchMode SetTitleMatchModeで指定したウィンドウタイトルのマッチ方式。(1/2/3)
A_TitleMatchModeSpeed SetTitleMatchModeで指定したウィンドウタイトルマッチの種類。(Fast/Slow)
A_DetectHiddenWindows DetectHiddenWindowsで指定した、非表示ウィンドウの検出の有無。(On/Off)
A_DetectHiddenText DetectHiddenTextで指定した隠しテキスト検出の有無(On/Off)
A_AutoTrim AutoTrimで指定した、引数の前後の空白を自動除去するかどうか。(On/Off)
A_StringCaseSense StringCaseSenseで指定した、大文字小文字区別の有無。(On/Off/Locale)
A_FileEncoding AHKL 現在のデフォルトのファイルエンコーディングを格納する。
FileEncodingで変更が可能。
A_FormatInteger SetFormatで指定した整数値の書式(H/D)
A_FormatFloat SetFormatで指定した小数値の書式
A_KeyDelay SetKeyDelayで指定した、キー入力の間隔。(ミリ秒)
A_WinDelay SetWinDelayで指定した、ウィンドウ操作の間隔。(ミリ秒)
A_ControlDelay SetControlDelayで指定したGUIコントロール操作の間隔。(ミリ秒)
A_MouseDelay SetMouseDelayで指定した、マウス操作の間隔。(ミリ秒)
A_DefaultMouseSpeed SetDefaultMouseSpeedで指定した、マウスの移動速度のデフォルト。(0...100)
A_RegView AHKL SetRegViewで指定した、レジストリビューの方式。(Default/32/64)
A_IconHidden トレイアイコンが非表示になっているかどうか。(0=表示、1=非表示)
#NoTrayIcon指令やMenuコマンドでアイコン非表示にできる。
A_IconTip Menu, Tray, Tip somestring」でトレイアイコンのツールチップを指定したとき、その内容
A_IconFile Menu, tray, icon iconfilename.ico」でトレイアイコンを指定した場合、そのファイル名
A_IconNumber アイコンファイルにアイコンが含まれていれば、その数

待機経過時間[編集]

A_TimeIdle 最後に何らかの入力があってからの経過時間をミリ秒で格納。(NT系専用)
PCが放置されているときにアクションを起こすのに使える。
何らかのプログラムが生成した入力イベントでもリセットされてしまう。
A_TimeIdlePhysical A_TimeIdleと同じだが、キーボードHookマウスHookが使用されていると、プログラムが発生させた入力イベントを無視できる。

ホットキー・GUI関連[編集]

A_ThisMenu A_ThisMenuItemのアイテムが入っていたメニュー名を格納。
A_ThisMenuItem 最後に選択されたメニューアイテム名が格納される。
詳細は、Menuコマンド参照。
複数のメニューアイテムに一つのサブルーチンを割り当てる場合などに使用。
A_ThisMenuItemPos A_ThisMenuItemのアイテムがA_ThisMenu内で何番目にあったかを格納する。
一番上は「1」。セパレーターもカウントされる。A_ThisMenuやA_ThisMenuItemが削除された場合、この変数は空になる。
A_ThisHotkey 最後に実行されたホットキーのラベル名が格納される。(Win+Aなら「#a」)
ホットキーサブルーチンの実行中に他のホットキーが割り込んでくると、この値は変更されてしまうため、
必要ならサブルーチンのはじめの方で別の変数にコピーすること。
A_PriorHotkey 一つ前のホットキー
A_PriorKey AHKL 最後に押したキー または キーを離す前に押した最後のキーの名前。KeyHistoryで見つからない場合は空白
AutoHotkeyのスクリプトによって生成された入力はすべて除外される。
この変数を利用するには、キーボードHookマウスHookを使用、また#KeyHistoryを有効にしている必要がある。
A_TimeSinceThisHotkey A_ThisHotkeyの発生から経過した時間(ミリ秒)。A_ThisHotkeyが空なら「-1」。
A_TimeSincePriorHotkey A_PriorHotkeyの発生から経過した時間。
A_EndChar 一番最近のスクリプト実行型ホットストリングを発動させた終了キー。
*」オプションにより終了キーが不要になっていた場合は、空白になる。
A_Gui 現在のスレッドを呼び出したGUIウィンドウの番号。
現在のスレッドがGUI上のイベントで呼び出されたのでない場合、空になる。
A_GuiControl 現在のスレッドを呼び出したGUIコントロール。
コントロールに「V」オプションで変数が関連付けられている場合、その変数名が格納される。
変数が関連付けられていない場合、コントロールのテキストが最大63文字格納される。
この変数に格納された値は、GuiControlコマンドのControlID引数で使用できる。
現在のスレッドがGUIコントロールの操作イベントで呼び出されたのでない場合は空になる。
A_GuiWidth
A_GuiHeight
GuiSizeイベントが呼び出されたときの当該GUIウィンドウの横幅/高さ。
現在のスレッドがGuiSizeイベント以外で呼び出された場合は、不定もしくは未定義になる。
これらの値はDPIスケーリングの影響を受ける。
A_GuiX
A_GuiY
一部のGUI関連イベントで横/縦の座標を格納する。
これらの値はDPIスケーリングの影響を受ける。
A_GuiEvent
A_GuiControlEvent
現在のスレッドがGUIのどんな操作によって呼び出されたか。内容は以下のどれか
(空) 現在のスレッドがGUIのアクションとして呼び出されたものでない場合。
Normal コントロールのシングルクリックやそのほかのキーストロークによって呼び出された場合。
メニューバー配下のメニューアイテムの実行や、GuiEscapeGuiCloseイベントとして実行された場合でも、この値が割り当てられる。
DoubleClick ダブルクリックの2回目のクリックによって呼び出されたときにこの値が割り当てられる。
(1回目のクリックでは、Normalが割り当てられたスレッドが実行される)
スライダーの操作を表す値 Sliderコントロールに割り当てられたラベルが実行された場合、どのような操作で値が変更されたかを示す値が格納される。
ファイル名 GuiDropFilesイベントで呼び出された場合、ファイル名が改行区切りで格納される。
その他 GUIコントロールのタイプによっては、ほかの値が返される場合もある。
「DoubleClickでなければ通常の実行」などの判定を行うことは推奨されない。
A_EventInfo 現在のスレッドが呼び出されたイベントに関する追加の情報を格納する。
追加の情報を持たないイベントでは、「0」になる。

OS及びユーザー情報[編集]

ComSpec コンソールシェル(多くの場合「cmd.exe」)のフルパス。
A_Temp テンポラリフォルダのフルパス。
A_OSType

Windows9x系なら「WIN32_WINDOWS」、NT系なら「WIN32_NT」。

A_OSVersion "WIN_VISTA", "WIN_2003", "WIN_XP", "WIN_2000", "WIN_NT4", "WIN_95", "WIN_98", "WIN_ME"
AHKL "WIN_8", "WIN_7", "WIN_VISTA", "WIN_2003", "WIN_XP", "WIN_2000", "WIN_NT4" (9x系はサポート外となった)
A_Is64bitOS AHKL OSが64-bitなら「1」、32-bitなら「0」。
A_PtrSize AHKL ポインタの占めるバイトサイズを格納。32-bitでは 4、64-bitでは 8となる。 32-bit版AHKの場合4バイトである。
A_Language システムの言語をあらわす4桁の16進数値。
値と言語の対応は言語コード一覧を参照。日本語は「0411」。
A_ComputerName 現在のコンピュータのネットワーク上での名前。
A_UserName ログインしているユーザー名。
A_IsAdmin ユーザーが管理者権限を有している場合「1」、管理者権限がない場合「0」。9x系では常に「1」。
A_WinDir Windowsディレクトリのパス。(例:C:\Windows)
A_ProgramFiles
ProgramFiles
Program Filesディレクトリのパス。(例:C:\Program Files)
A_AppData Application Dataフォルダのフルパス。
A_AppDataCommon 全ユーザー共通のApplication Dataフォルダのフルパス。
A_Desktop デスクトップフォルダのフルパス。
A_DesktopCommon AllUsersの共通デスクトップフォルダのフルパス。
A_StartMenu スタートメニューフォルダのフルパス。
A_StartMenuCommon AllUsersの共通スタートメニューフォルダのフルパス。
A_Programs スタートメニューの「プログラム」フォルダのフルパス。
A_ProgramsCommon AllUsersの共通スタートメニューの「プログラム」フォルダのフルパス。
A_Startup スタートアップフォルダのフルパス。
A_StartupCommon AllUsersの共通スタートアップフォルダのフルパス。
A_MyDocuments My Documentsフォルダのフルパス。
この変数だけは、ドライブのルートが設定されているとき、最後の「\」が除かれて「D:」のようになる。
A_ScreenWidth
A_ScreenHeight
画面の横幅と高さ。
マルチモニタ環境での第2モニタ以降やデスクトップ全体の寸法を得るには、SysGetコマンドを使用する。
デスクトップ全体の大きさを取得するには以下のようにする(95/NTでは無効で0)。
SysGet, VirtualWidth, 78
SysGet, VirtualHeight, 79
A_ScreenDPI AHKL Number of pixels per logical inch along the screen width. In a system with multiple display monitors, this value is the same for all monitors. On most systems this is 96; it depends on the system's text size (DPI) setting. See also Gui -DPIScale.
A_IPAddress1...A_IPAddress4 1番目から4番目のネットワークアダプタのIPアドレス。

[編集]

A_Cursor 現在のマウスカーソルの種類。以下の文字列のどれか。
AppStarting, Arrow, Cross, Help, IBeam, Icon, No, UpArrow, Wait, Unknown
Size, SizeAll, SizeNESW, SizeNS, SizeNWSE, SizeWE
Size??の??は方角を表す。 ブラウザでリンクをポイントしたときなどに使われる手の形のカーソルは、Unknownとして扱われる。
A_CaretX
A_CaretY
キャレット(テキスト入力カーソル)の座標。
通常はアクティブウィンドウの左上からの座標だが、「CoordMode,Caret,Screen」というコマンドを実行すると、スクリーン上での座標になる。
キャレットがない場合や座標が取得できない場合は空白になる。
  • 一部のウィンドウではキャレット座標が実際の位置と異なるものを返す場合がある。
  • FireFoxなど独自描画を行っているものはキャレット位置を取得できない事がある。
  • タイマー等で短い間隔(~500ms)でこの変数を連続で参照した場合にダブルクリックが正常に検出されない事が報告されている。
Clipboard クリップボードのテキスト。
Clipboardを参照。
ClipboardAll クリップボードの全内容。
通常の変数とは扱いが大きく異なる。
Clipboardを参照。
ErrorLevel
ErrorLevel参照。
A_LastError DllCallRun,RunWaitの実行後に、「GetLastError()」APIが返すエラーコードを格納する。
値は 0 ~ 4294967295 の範囲で常に10進数形式で格納されている。
通常は0が成功でそれ以外の値はエラーとなっている。
この組み込み変数は ErrorLevel 等と同様にスレッド毎に値が保持されるので、他のスレッドのことは考慮する必要はない。
エラーコード別の詳細はこのサイトなどが参考になる。