組み込み変数
提供: 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 | コントロールのシングルクリックやそのほかのキーストロークによって呼び出された場合。 メニューバー配下のメニューアイテムの実行や、GuiEscape、GuiCloseイベントとして実行された場合でも、この値が割り当てられる。 | |
DoubleClick | ダブルクリックの2回目のクリックによって呼び出されたときにこの値が割り当てられる。 (1回目のクリックでは、Normalが割り当てられたスレッドが実行される) | |
スライダーの操作を表す値 | Sliderコントロールに割り当てられたラベルが実行された場合、どのような操作で値が変更されたかを示す値が格納される。 | |
ファイル名 | GuiDropFilesイベントで呼び出された場合、ファイル名が改行区切りで格納される。 | |
その他 | GUIコントロールのタイプによっては、ほかの値が返される場合もある。 「DoubleClickでなければ通常の実行」などの判定を行うことは推奨されない。 | |
A_EventInfo | 現在のスレッドが呼び出されたイベントに関する追加の情報を格納する。 追加の情報を持たないイベントでは、「 0 」になる。
|
OS及びユーザー情報[編集]
ComSpec | コンソールシェル(多くの場合「cmd.exe」)のフルパス。 |
A_Temp | テンポラリフォルダのフルパス。 |
A_OSType |
Windows9x系なら「 |
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 」というコマンドを実行すると、スクリーン上での座標になる。キャレットがない場合や座標が取得できない場合は空白になる。
|
Clipboard | クリップボードのテキスト。 Clipboardを参照。 |
ClipboardAll | クリップボードの全内容。 通常の変数とは扱いが大きく異なる。 Clipboardを参照。 |
ErrorLevel |
ErrorLevel参照。 |
A_LastError | DllCallやRun,RunWaitの実行後に、「GetLastError()」APIが返すエラーコードを格納する。 値は 0 ~ 4294967295 の範囲で常に10進数形式で格納されている。 通常は0が成功でそれ以外の値はエラーとなっている。 この組み込み変数は ErrorLevel 等と同様にスレッド毎に値が保持されるので、他のスレッドのことは考慮する必要はない。 エラーコード別の詳細はこのサイトなどが参考になる。 |