変数がどのように機能するかについての一般的な説明と詳細については、変数を参照してください。
変数への値の格納文字列や数値を変数に格納するには、コロンと等号の演算子(:=)の後に数値や引用符で囲まれた文字列、その他の型の式を続けます。事例:
MyNumber := 123 MyString := "This is a literal string." CopyOfVar := Var
変数を明示的に削除することはできませんが、空文字列などの新しい値を代入することで、以前の値を解放することができます:
MyVar := ""
変数に値を割り当てるには、その参照を取り、double-derefを使ったり、関数に渡したりして間接的に行うこともできます。事例:
MouseGetPos &x, &y
値を割り当てられていない変数の値を読み込もうとするとエラーになります。IsSetはこの状態を検出するために使われます。
変数の内容の取得変数の内容を文字列に含めるには、連結か 書式を使う。事例:
MsgBox "The value of Var is " . Var . "." MsgBox "The value in the variable named Var is " Var "." MsgBox Format("Var has the value {1}.", Var)
部分式も同じように文字列と組み合わせることができる。事例:
MsgBox("The sum of X and Y is " . (X + Y))
変数の比較:さまざまな種類の比較に関する重要な注意事項については、以下の式のセクションをお読みください。
構造化された概要と詳細な説明については、エクスプレッションをご覧ください。
式は、一連の変数、リテラル文字列、リテラル数値に対して、演算を実行するために使用されます。
式中のプレーンワードは変数名として解釈されます。したがって、リテラル文字列は変数と区別するために二重引用符で囲む必要があります。事例:
if (CurrentSetting > 100 or FoundColor != "Blue") MsgBox "The setting is too high or the wrong color is present."
上の例では、"Blue"はリテラル文字列なので引用符で囲まれています。しまシングルクオートマーク(')とダブルクオートマーク(")は、シングルクオートマークで囲まれた文字列がリテラルダブルクオートマークを含むことができ、その逆も可能であることを除いて、同じように機能します。従って、リテラル文字列の中に実際の引用符を含めるには、引用符をエスケープするか、文字列を反対のタイプの引用符で囲みます。事例:
MsgBox "She said, `"An apple a day.`"" MsgBox 'She said, "An apple a day."'
空の文字列:式の中で空の文字列を指定するには、空の引用符のペアを使用します。例えば、if (MyVar != "")
というステートメントは、MyVarが空白でなければ真となる。
式の結果を格納する:結果を変数に代入するには、コロンと等号の演算子(:=)を使う。事例:
NetPrice := Price * (1 - Discount/100)
ブール値:式がtrueまたはfalseに評価される必要がある場合(IF文など)、空白またはゼロの結果はfalseとみなされ、それ以外の結果はtrueとみなされる。例えば、ItemCountが空白か0の場合のみ、if ItemCount
式が偽になる。同様に、if not ItemCount
式は逆の結果をもたらす。
NOT/>/=/<などの演算子は、自動的に真か偽の値を生成する:真なら1、偽なら0となる。しかし、AND/OR演算子は常に入力値のいずれかを生成する。例えば以下の式では、A_Indexが5より大きい場合は変数Doneに1が代入され、それ以外の場合はFoundItの値が代入される:
Done := A_Index > 5 or FoundIt
上で示唆したように、変数を空白にするか0を代入するだけで、偽の値を保持することができる。これを利用するために、if Done
という省略記法を使えば、変数Doneが真か偽かをチェックすることができる。
式では、キーワードtrueと falseは1と0に解決される。これらの例は、スクリプトをより読みやすくするために使われます:
CaseSensitive := false ContinueSearch := true
整数と浮動小数点:整数と浮動小数点:式の中で、小数点または科りま数法を含む数値は浮動小数点とみなされ、そうでない場合は整数となります。加算や乗算など、ほとんどの演算子では、入力のどちらかが浮動小数点数であれば、結果も浮動小数点数になります。
式内でも非式内でも、整数は16進数か10進数のどちらかの形式で書くことができる。16進数はすべて接頭辞0xで始まる。例えば、Sleep 0xFF
は Sleep 255
に相当する。浮動小数点数は、小数点の有無にかかわらず、科学表記で書くこともできる(例:1e4
や -2.1E-4
)。
式内では、128
、0x7F
、1.0
などの引用符で囲まれていないリテラル数値は、スクリプトの実行を開始する前に純粋な数値に変換されるため、数値を文字列に変換すると元のリテラル値とは異なる値が生成される可能性があります。事例:
MsgBox(0x7F) ; 128と表示します。 MsgBox(1.00) ; 1.0と表示します。
演算子に関する一般的な情報については、「演算子」を参照のこと。
以下に記す場合を除き、空白の値(空文字列)または数値以外の値が算術演算に含まれる場合、ゼロとはみなされません。代わりにTypeErrorがスローされます。Tryを使用しない場合、処理されなかった例外はデフォルトでエラーダイアログを表示します。
オペレーター | 説明 |
---|---|
%Expr% |
デリファレンスまたは名前の置換。 Exprが VarRefに評価されると、 そうでない場合は、Expr部分式の値が変数やプロパティの名前または部分名として使われる。これによってスクリプトは、Exprを評価することで名前が決まる変数やプロパティ(通常は別の変数)を参照できるようになる。変数は動的に作成できないが、スクリプトのどこかで非動的に宣言または参照されていれば、動的に代入できる。 注:部分式Exprの 結果は、アクセスする変数またはプロパティの名前または部分名でなければならない。 パーセント記号は、曖昧さのためにExpr内で直接使用することはできないが、括弧内に入れ子にすることはできる。そうでなければ、Exprはどんな式でもよい。 %Expr%シーケンスと部分名(間にスペースや他の文字を含まない)が隣接している場合、それらは結合されて1つの名前になります。 エラーがスローされるのは、その変数がまだ存在していない場合、あるいは初期化されておらず、その値を読み込もうとしている場合である。or-maybe演算子(??)は、デフォルト値を提供することで、そのようなケースを避けるために使うことができる。事例: これは歴史的に "double-deref"として知られているが、Exprが変数を含まない場合(1番目のderef)、また、結果の変数が代入のターゲットであり、参照解除されない場合(2番目のderef)、この用語は不正確である。 |
x.y x.%z% |
会員アクセス。オブジェクトxの値の取得、設定、メソッドの呼び出し。yはリテラル名、zは名前として評価される式。オブジェクト構文を参照のこと。 |
var? |
Maybe。変数のアンセットを許可する。これは、変数をオプショナル・パラメーター、配列要素、オブジェクト・リテラルに渡す場合、または直接代入の右辺に渡す場合にのみ有効である。クエスチョンマークの後には、以下の記号のいずれかを続けなければならない(空白は無視する): 変数は通常オプションのパラメータだが、どんな変数でも構わない。関数のパラメータではない変数の場合、変数への参照はあるが代入がない場合、ロード時にVarUnset 警告が表示されることがあります。 この演算子は現在、変数に対してのみサポートされている。より一般的なケースで明示的または条件付きでパラメータを省略するには、 こちらも参照のこと:unset(オプション・パラメータ) |
++ -- |
増減の前後。変数に 1 を加算または減算する。演算子は変数名の前でも後でもよい。名前の前に現れた場合、その操作は実行され、その結果は次の操作で使用される(この場合、結果は変数参照)。例えば、 これらの演算子は、 |
** |
冪。使用例: 冪演算子は右結合である。例えば、 注意: |
- ! ~ & |
単項マイナス(-):オペランドの符号を反転します。 単項プラス(+): 論理否定(!):オペランドが空白または0の場合、論理否定を適用した結果は1、つまり「真」を意味する。そうでなければ、結果は0(偽)である。事例: Bitwise-not(~):オペランドの各ビットを反転する。64ビットの符号付き整数を使用するため、正の入力値は常に負の結果を与え、その逆も同様である。例えば、 参照(&):変数への参照を表す値である VarRef を作成します。VarRefを使えば、ターゲット変数に間接的にアクセスできる。例えば、 A_Clipboardのような組み込み変数への参照は、組み込み関数のOutputVarパラメータに直接渡される場合を除き、現在サポートされていません。 |
* / // |
乗算(*):それ以外の場合は浮動小数点数。 その他の使用法:アスタリスク(*)記号は変種関数呼び出しにも使われる。 真の除算(/):真の除算は、両方の入力が整数の場合でも浮動小数点数の結果を返す。例えば、 整数除算(//):ダブルスラッシュ演算子は、高性能な整数除算を行う。例えば、 演算子 *= と /=は、変数の値を別の値で乗算または除算する省略記法である。例えば、 ゼロによる除算はZeroDivisionErrorをスローする。 |
+ - |
足し算(+)と引き算 (-)。これに関連して、+=演算子や-=演算子は、変数をインクリメントしたりデクリメントしたりする省略記法である。例えば、 その他の使用法:記号の前に値(または値を返す部分式)がない場合、代わりに単項演算子として解釈されます。 |
<< >> >>> |
ビットシフト・レフト(<<)。使用例: 算術ビットの右シフト(>>)。使用例: 論理ビットの右シフト(>>)。使用例: 以下は、3つの演算子すべてに適用されます:
|
& ^ | |
ビットワイズ・アンド(&)、ビットワイズ・エクスクルーシブ・オア(^)、ビットワイズ・オア(|)。この3つのうち、&が最も優先順位が高く、|が最も低い。 以下は、3つの演算子すべてに適用されます:
|
. |
連結。ピリオド(ドット)の両側に少なくとも1つのスペースまたはタブを入れ、2つの項目を1つの文字列にまとめる。ピリオドを省略しても同じ結果が得られる Var := "The color is " . FoundColor ; Explicit concat Var := "The color is " FoundColor ; Auto-concat 部分式は連結することもできる。For example: ピリオド(またはその他の演算子)で始まる行は、自動的にその上の行に追加される。 各入力の全長は、たとえ2進数のゼロが含まれていても使用される。例えば、 その他の使い方:ピリオド(ドット)の右にスペースまたはタブがない場合、リテラル浮動小数点数またはメンバアクセスとして解釈される。例えば、 |
~= | RegExMatchの省略形。例えば、"abc123" ~= "\d" の結果は4(最初の数字の位置)です。 |
> < >= <= |
大きい(>)、小さい(<)、大小(>=)、より小さい(<=)。入力は数値で比較される。入力のどちらかが数値または数値文字列でない場合、TypeErrorがスローされる。 |
= == != !== |
大文字小文字を区別しないイコール(=)/ノットイコール(=)、 大文字小文字を区別するイコール(==)/ノットイコール(!==)。==演算子は、=演算子と同じ動作をするが、入力のどちらかが数値でない(あるいは両方が文字列である)場合は、==は常に大文字と小文字を区別し、=は常に大文字と小文字を区別しない。!=と!==は、結果が反転することを除けば、!を使わない場合と同じ動作をする。 ==と!==演算子は、2進数の0を含む文字列を比較するのに使うことができる。~=以外の比較演算子は、最初の2進数の0までしか比較しない。 大文字と小文字を区別しない比較では、ASCII文字のA-Zのみが小文字と同等とみなされる。代わりに、現在のユーザーのロケールのルールに従って比較するには、StrCompareを使用し、CaseSenseパラメータに "Locale"を指定する。 |
IS IN CONTAINS |
|
NOT | 論理否定。優先順位が低いことを除けば、これは!演算子と同様である。例えば、not (x = 3 or y = 3) は!(x = 3 or y = 3) と同じである。 |
AND && |
どちらも論理積だ。事例: In an expression where all operands are true, the last operand is returned. Otherwise, the first operand that is false is returned. In other words, the result is true only if all operands are true. Boolean expressions are subject to short-circuit evaluation (from left to right) to improve performance. In the following example, all operands are true and will be evaluated: A := 1, B := {}, C := 20, D := true, E := "str" MsgBox(A && B && C && D && E) ; Shows "str" (E). In the following example, only the first two operands will be evaluated because B is false. The rest is ignored, i.e. C is not incremented either: A := 1, B := "", C := 0, D := false, E := "str" MsgBox(A && B && ++C && D && E) ; Shows "" (B).
|
OR || |
どちらも論理和である。事例: In an expression where at least one operand is true, the first operand that is true is returned. Otherwise, the last operand that is false is returned. In other words, if at least one operand is true, the result is true. Boolean expressions are subject to short-circuit evaluation (from left to right) to improve performance. In the following example, at least one operand is true. All operands up to D will be evaluated. E is ignored and will never be incremented: A := "", B := false, C := 0, D := "str", E := 20 MsgBox(A || B || C || D || ++E) ; Shows "str" (D). In the following example, all operands are false and will be evaluated: A := "", B := false, C := 0 MsgBox(A || B || C) ; Shows "0" (C).
|
?? |
あるいは、合体演算子と呼ばれるものかもしれない。左オペランド(変数でなければならない)に値があれば、それが結果となり、右分岐はスキップされる。そうでない場合は、右オペランドが結果になる。言い換えれば、 これは通常、変数やオプショナル・パラメータにまだ値がないことが分かっている場合に、デフォルト値を提供するために使われる。事例: MsgBox MyVar ?? "Default value" 変数が初期化されていないことも想定されるので、そのような場合でもエラーは発生しない。 |
?: |
三項演算子。この演算子は、if-else文に代わる省略記法である。左辺の条件を評価し、2つの分岐のどちらが最終的な結果になるかを決定する。たとえば、 こちらも参照のこと:maybe(var?)、or-maybe (??) 注:行頭で使用する場合、他の文との曖昧さを避けるため、3項条件は通常括弧で囲む。詳しくは表現ステートメントを参照。 |
:= += -= *= /= //= .= |= &= ^= >>= <<= >>>= |
アサイン。変数の内容に演算を行い、結果を同じ変数に戻す。最も単純な代入演算子はコロン等号(:=)で、式の結果を変数に格納する。他の演算子の動作については、この表の関連項目を参照のこと。例えば、 他のほとんどの演算子とは異なり、代入は右から左に評価される。その結果、 代入が他の演算子の入力として使われる場合、その値は変数そのものとなる。例えば、 代入演算子の優先順位は、構文エラーを回避したり、より直感的な動作を提供したりする場合に、自動的に引き上げられる。事例: 直接代入( 代入は、 |
() => expr |
ファットアロー機能。単純な関数を定義し、FuncまたはClosureオブジェクトを返します。関数のパラメータ・リスト(オプションで関数名を前に付ける)を演算子の左に書く。関数が(返された参照を通じて)呼び出されると、その関数は部分式exprを評価し、結果を返します。 次の2つの例は同等である: sumfn := Sum(a, b) => a + b Sum(a, b) { return a + b } sumfn := Sum どちらの場合も、関数はスクリプトが起動した時点で無条件に定義されるが、関数参照がsumfnに格納されるのは、代入が評価されたときだけである。 関数名が省略され、パラメータリストが単一のパラメータ名のみで構成されている場合は、括弧を省略することができます。以下の例では、パラメータ double := a => a * 2 exprの変数参照は、同等の完全な関数定義と同じ方法で解決される。例えば、exprは(入れ子になった関数のように)外側の関数のローカル変数を参照することがあり、その場合、ファット・アロー式が評価されるたびに新しいクロージャが作成され、返されます。宣言は使えないので、この関数は常にassume-localである。 関数の名前を指定することで、クロージャへの参照を自分自身の中に保存することなく(それによって問題のある循環参照を作成する)、再帰的または他のネストされた関数から呼び出すことができます。It can also be helpful for debugging, such as with Func.Name or when displayed on the debugger's call stack. |
, | コンマ(複数ステートメント)。カンマは、1行に複数の部分式を記述するために使用することができる。これは、複数の割り当てや関数コールをグループ化するためによく使われる。事例: 注:カンマ(またはその他の演算子)で始まる行は、自動的にその上の行に追加される。 カンマは、関数呼び出しや制御フロー文のパラメータを区切るためにも使われる。複数ステートメント式をパラメータ・リストに含めるには、括弧で囲む。例えば、 |
以下のタイプの部分式は、優先順位や評価の順序を上書きする:
式 | 説明 |
---|---|
(表現) |
括弧で囲まれた任意の部分式。例えば、 複数ステートメント式の場合は、最後のステートメントの結果が返される。例えば、 |
Mod() |
関数呼び出し。関数名または式と、パラメータ・リストを始める開括弧の間にはスペースを入れてはならない。詳細については、関数呼び出しを参照のこと。 (式)は必ずしも括弧で囲む必要はないが、そうすることで曖昧さをなくすことができる。例えば、 |
(式)() |
|
Fn(Params*) | 変数関数呼び出し。Paramsは、パラメータ値を含むArrayのような列挙可能なオブジェクト(__Enumメソッドを持つオブジェクト)です。 |
x[y] [a, b, c] |
アイテムのアクセス。オブジェクトxの__Itemプロパティ(またはデフォルトのプロパティ)を、パラメータy(またはyの代わりに複数のパラメータ)で取得または設定します。これは通常、コレクション内の配列要素またはアイテムに対応し、yはアイテムのインデックスまたはキーである。閉じ括弧の直後に任意の代入演算子を使えば、その項目に値を代入することができる。例えば、 配列リテラル。オープンブラケットに値(または値を返す部分式)が先行しない場合、配列リテラルの開始として解釈される。例えば、 |
{a: b, c: d} |
オブジェクト・リテラル。オブジェクトを作成する。各ペアは、リテラル・プロパティ名 ダイナミック・プロパティ名を使うには、部分式をパーセント記号で囲む。事例: |
以下の変数はプログラムに組み込まれており、どのスクリプトからも参照できる。
一般的な情報については、組み込み変数を参照してください。
変数 | 説明 |
---|---|
A_Space | スペース1文字を含む。 |
A_Tab | タブ文字を1文字含む。 |
変数 | 説明 |
---|---|
A_Args | コマンドラインパラメータの配列を含む。詳細については、スクリプトにコマンドラインパラメータを渡すを参照してください。 |
A_WorkingDir | スクリプトのカレント作業ディレクトリを取得または設定するために使用する。ルート・ディレクトリでない限り、最後のバックスラッシュは含まれない。Two examples: C:\ and C:\My Documents. SetWorkingDir can also be used to change the working directory. スクリプトの起動方法に関係なく、スクリプトの作業ディレクトリの初期値はA_ScriptDirです。 |
A_InitialWorkingDir | スクリプトの初期作業ディレクトリで、スクリプトの起動方法によって決まる。例えば、スタートメニューのようなショートカットから実行した場合、最初の作業ディレクトリはショートカットのプロパティにある「Start in」フィールドによって決定されます。 |
A_ScriptDir |
現在のスクリプトが置かれているディレクトリのフルパス。最後のバックスラッシュは(ルート・ディレクトリでも)省略される。 スクリプトテキストがファイルからではなく標準入力から読み込まれる場合、この変数には初期作業ディレクトリが格納される。 |
A_ScriptName |
MsgBox、InputBox、FileSelect、DirSelect、Guiのデフォルトタイトルを取得または設定するために使用できます。スクリプトによって設定されていない場合、デフォルトは現在のスクリプトのファイル名で、パスは省略される。 If the script text is read from stdin rather than from file, this variable contains an asterisk (*). |
A_ScriptFullPath |
現在のスクリプトのフルパス、例:C:\Scripts\My Script.ahk If the script text is read from stdin rather than from file, this variable contains an asterisk (*). |
A_ScriptHwnd | スクリプトの隠されたメイン・ウィンドウの固有ID(HWND/ハンドル)。 |
A_LineNumber | スクリプト(またはその#Include files)内で現在実行中の行の番号。この行番号は、ListLinesが表示する行番号と一致する。この例のようなエラー報告に役立つ: コンパイルされたスクリプトは、すべての#Include filesが1つの大きなスクリプトにマージされるため、行番号が非コンパイルモードで実行したときと異なる場合があります。 |
A_LineFile |
A_LineNumberが属するファイルのフルパスとファイル名。スクリプトが外部ファイルからロードされた場合、その行がスクリプトの#Includeファイルのいずれかに属していなければ、これはA_ScriptFullPathと同じです。 スクリプトが.binファイルに基づいてコンパイルされた場合、A_ScriptFullPathと同じ、現在の実行可能ファイルのフルパスと名前です。 スクリプトが埋め込まれている場合、A_LineFileにはアスタリスク(*)の後にリソース名が続く、例:*#1 |
A_ThisFunc | 現在実行中のユーザー定義関数の名前(ない場合は空白)、事例:MyFunction。こちらも参照のこと:Nameプロパティ(Func) |
A_AhkVersion | 1.0.22のように、スクリプトを実行しているAutoHotkeyのバージョンが含まれています。コンパイルされたスクリプトの場合、そのスクリプトをコンパイルするために最初に使用されたバージョンが報告される。バージョン番号の書式設定により、スクリプトはA_AhkVersionがこの例のように>または>=で指定された最小バージョン番号より大きいかどうかをチェックすることができる:if (A_AhkVersion >= "1.0.25.07") 。こちらも参照のこと:#Requires、VerCompare |
A_AhkPath |
非コンパイルまたは埋め込みスクリプトの場合:現在のスクリプトを実際に実行しているEXEファイルのフルパスと名前。事例:C:\Program Files\AutoHotkey\AutoHotkey.exe .binファイルに基づいてコンパイルされたスクリプトの場合は、レジストリからインストールディレクトリを読み取り、"\AutoHotkey.exe"を追加して値を決定します。AutoHotkeyがインストールされていない場合、値は空白になります。以下の例はこれに相当する: InstallDir := RegRead("HKLM\SOFTWARE\AutoHotkey", "InstallDir", "") AhkPath := InstallDir ? InstallDir "\AutoHotkey.exe" : "" .exeファイルに基づいてコンパイルされたスクリプトの場合、A_AhkPathにはコンパイルされたスクリプトのフルパスが含まれます。これは、外部スクリプトを実行するために/scriptと組み合わせて使うことができる。代わりにインストールされたAutoHotkeyのコピーを見つけるには、上記のようにレジストリを読み取ります。 |
A_IsCompiled | Contains 1 if the script is running as a compiled EXE and 0 (which is considered false) if it is not. |
変数 | 説明 |
---|---|
A_YYYY |
現在の4桁の年(例:2004年)。A_Yearと同義。 注:ロケールや言語に適した書式の時刻や日付を取得するには、 |
A_MM | 現在の2桁の月(01-12)。A_Monと同義。 |
A_DD | 現在の月の2桁の曜日(01-31)。A_MDayと同義。 |
A_MMMM | 現在のユーザーの言語での現在の月のフルネーム 例:7月 |
A_MMM | 現在のユーザーの言語での現在の月の略称 例:Jul |
A_DDDD | 現在のユーザーの言語での曜日フルネーム 例:日曜日 |
A_DDD | 現在のユーザーの言語での曜日略号 例:Sun |
A_WDay | 現在の1桁の曜日(1~7)。1はどの地域でも日曜日。 |
A_YDay | 現在の曜日(1~366)。例えば、009ではなく9が取り出される。ゼロパディングされた値を取り出すには、以下のようにする:FormatTime(, "YDay0") 。 |
A_YWeek | ISO 8601に従った現在の年号と週番号(例:200453)。年と週を分けるには、Year := SubStr(A_YWeek, 1, 4) 、Week := SubStr(A_YWeek, -2) を使う。A_YWeekの正確な定義:新年1月1日を含む週が4日以上ある場合は、第1週とします。それ以外は前年の最終週となり、次週は第1週となります。 |
A_Hour | 24時間制の現在の2桁の時(00~23)(例:17は午後5時)。12時間表示とAM/PM表示を同時に取得するには、次のようにします:FormatTime(, "h:mm:ss tt") |
A_Min | 現在の2桁の分(00-59)。 |
A_Sec | 現在の2桁の秒(00-59)。 |
A_MSec | 現在の3桁のミリ秒(000-999)。先頭のゼロを取り除くには、次の例に従ってください:Milliseconds := A_MSec + 0 。 |
A_Now |
YYYYMMDDHH24MISS形式の現在の現地時間。 注:日付と時刻の計算はDateAddと DateDiffで実行できる。また、FormatTimeはあなたのロケールや好みに合わせて日付や時刻をフォーマットすることができます。 |
A_NowUTC | YYYYMMDDHH24MISS形式の現在の協定世界時(UTC)。UTCは基本的にグリニッジ標準時(GMT)と同じである。 |
A_TickCount | システムが起動してから経過したミリ秒数(最大49.7日)。A_TickCountを変数に格納することで、最新のA_TickCountの値からその変数を引くことで、後で経過時間を計測することができる。事例: StartTime := A_TickCount Sleep 1000 ElapsedTime := A_TickCount - StartTime MsgBox ElapsedTime " milliseconds have elapsed." A_TickCountの10ミリ秒よりも高い精度が必要な場合は、QueryPerformanceCounter()を使用する。 |
変数 | 説明 |
---|---|
A_IsSuspended | Contains 1 if the script is suspended, otherwise 0. |
A_IsPaused | Contains 1 if the thread immediately underneath the current thread is paused, otherwise 0. |
A_IsCritical | 現在のスレッドでCriticalがオフの場合は0が格納される。Otherwise it contains an integer greater than zero, namely the message-check interval being used by Critical. 現在のクリティカル状態は、Old_IsCritical := A_IsCritical の後にCritical Old_IsCritical で保存・復元できる。 |
A_ListLines | 行をログに記録するかどうかを取得または設定する。設定可能な値は0(無効)または1(有効)。詳細はListLinesを参照。 |
A_TitleMatchMode | タイトルマッチモードの取得または設定に使用できる。設定可能な値は1、2、3、RegEx。詳細はSetTitleMatchModeを参照。 |
A_TitleMatchModeSpeed | タイトルマッチのスピードを取得または設定するために使用できる。設定可能な値はFastとSlow。詳細はSetTitleMatchModeを参照。 |
A_DetectHiddenWindows | 隠しウィンドウを検出するかどうかを取得または設定する。設定可能な値は0(無効)または1(有効)。詳細はDetectHiddenWindowsを参照。 |
A_DetectHiddenText | ウィンドウ内の隠しテキストを検出するかどうかを取得または設定するために使用できる。設定可能な値は0(無効)または1(有効)。詳細はDetectHiddenTextを参照。 |
A_FileEncoding | 様々な組み込み関数のデフォルト・エンコーディングを取得または設定するために使用できます。詳細はFileEncodingを参照。 |
A_SendMode | 送信モードの取得または設定に使用できる。取り得る値は、Event、Input、Play、InputThenPlay。詳細はSendModeを参照。 |
A_SendLevel | 送信レベル(0~100の整数)を取得または設定する。詳細はSendLevelを参照。 |
A_StoreCapsLockMode | Send後にCapsLockの状態を復元するかどうかを取得または設定するために使用できます。設定可能な値は0(無効)または1(有効)。詳細はSetStoreCapsLockModeを参照。 |
A_KeyDelay A_KeyDuration |
キー入力の遅延時間または継続時間をミリ秒単位で取得または設定する。詳細はSetKeyDelayを参照。 |
A_KeyDelayPlay A_KeyDurationPlay |
SendPlayモードで送信されるキー入力の遅延時間または持続時間をミリ秒単位で取得または設定するために使用できます。詳細はSetKeyDelayを参照。 |
A_WinDelay | ウィンドウ関数の遅延をミリ秒単位で取得または設定する。詳細はSetWinDelayを参照。 |
A_ControlDelay | 制御変更関数の遅延をミリ秒単位で取得または設定する。詳細はSetControlDelayを参照。 |
A_MenuMaskKey | WinまたはAltキーアップイベントのマスクに使用されるキーを制御します。詳細はA_MenuMaskKeyを参照。 |
A_MouseDelay A_MouseDelayPlay |
マウスディレイをミリ秒単位で取得または設定する。A_MouseDelayは従来のSendEventモード用で、A_MouseDelayPlayはSendPlay用です。詳細はSetMouseDelayを参照。 |
A_DefaultMouseSpeed | デフォルトのマウス速度を取得または設定するために使用します。0(最も速い)から 100(最も遅い)までの整数です。詳細はSetDefaultMouseSpeedを参照。 |
A_CoordModeToolTip A_CoordModePixel A_CoordModeMouse A_CoordModeCaret A_CoordModeMenu |
座標の相対的な領域を取得または設定するために使用できます。設定可能な値は Screen、Window、Client です。詳細はCoordModeを参照。 |
A_RegView | レジストリのビューを取得または設定する。設定可能な値は32、64、Default。詳細はSetRegViewを参照。 |
A_TrayMenu | トレイメニューを変更または表示するために使用できるMenu オブジェクトを返します。 |
A_AllowMainWindow | スクリプトのメインウィンドウを トレイアイコンから開くことを許可するかどうかを取得または設定するために使用できます。設定可能な値は0(禁止)と1(許可)。 スクリプトがコンパイルも 埋め込みもされていない場合、この変数のデフォルトは1です。そうでない場合、この変数のデフォルトは0ですが、値を代入することでオーバーライドできます。1に設定すると、トレイメニューに「開く」メニュー項目が復活し、メインウィンドウの「表示」メニューにある「最近実行した行」などの項目が有効になり、スクリプトのソースコードやその他の情報を見ることができるようになる。 以下の関数は、スクリプトの実行時にメインウィンドウを表示し、対応するビューオプションを選択することができます:ListLines、ListVars、ListHotkeys、KeyHistory。 1に設定しても、WinShowでメイン・ウィンドウが表示されたり、ControlGetTextや同様のメソッドで検査されたりするのを防ぐことはできませんが、スクリプトのソース・コードやその他の情報がメイン・ウィンドウ経由で公開されるのを防ぐことができます。 |
A_IconHidden | トレイアイコンを隠すかどうかを取得または設定する。設定可能な値は0(可視)または1(非表示)。詳細は#NoTrayIconを参照。 |
A_IconTip | トレイアイコンのツールチップテキストを取得または設定するために使用することができます。空白の場合は、スクリプト名が代わりに使用される。 複数行のツールチップを作成するには、各行の間に改行文字(`n)を使用します(例: Windows 10以前では、アンパサンド(&)を含むツールチップテキストを表示するには、各アンパサンドをさらに2つのアンパサンドでエスケープします。例えば、 |
A_IconFile | TraySetIconによって カスタムトレイアイコンが指定されていない場合は空白で、その場合はアイコンのファイルのフルパスとファイル名になります。 |
A_IconNumber | A_IconFile が空白の場合は空白。そうでない場合は、A_IconFileのアイコンの番号(通常は1)。 |
変数 | 説明 |
---|---|
A_TimeIdle |
システムが最後にキーボードやマウスなどの入力を受け取ってから経過したミリ秒数。これは、ユーザーが不在かどうかを判断するのに便利である。ユーザーからの物理的な入力や、何等かのプログラムやスクリプト(Send関数やMouseMove関数など)によって生成された人工的な入力は、この値をゼロに戻す。この値は10刻みで増加する傾向があるため、他の値と等しいかどうかはチェックしない。その代わりに、別の値より大きいか小さいかをチェックする。事例: if A_TimeIdle > 600000 MsgBox "Last activity was 10 minutes ago" |
A_TimeIdlePhysical | 上記と似ているが、対応するフック(キーボードまたはマウス)がインストールされているときはいつでも、人工的なキーストロークやマウスクリックを無視する。(これにより、シミュレートされたキーストロークやマウスクリックが、 ユーザーが存在することを誤って示すのを防ぐことができる。) どちらのフックもインストールされていない場合、この変数はA_TimeIdleと等価である。フックが1つしかインストールされていない場合、そのフックの物理入力のタイプのみがA_TimeIdlePhysicalに影響する(他の/インストールされていないフックの入力は、物理的、人工的の両方に影響しない)。 |
A_TimeIdleKeyboard | キーボードフックがインストールされている場合、システムが最後に物理的なキーボード入力を受け取ってから経過したミリ秒数。そうでなければ、この変数はA_TimeIdleと等価である。 |
A_TimeIdleMouse | マウスフックがインストールされている場合、システムが最後に物理的なマウス入力を受け取ってから経過したミリ秒数。そうでなければ、この変数はA_TimeIdleと等価である。 |
変数 | 説明 |
---|---|
A_ThisHotkey | 最近実行したホットキーまたは自動置換でないホットストリング(ない場合は空白)。#zなど。この値は、現在のスレッドが別のホットキーやホットストリングによって中断された場合に変更されるため、一般的には、使用可能な場合はThisHotkeyパラメータを使用する方がよいでしょう。 ホットキーが最初に作成されたとき(Hotkey関数またはスクリプトのダブルコロン構文)、そのキー名と修飾記号の順序がそのホットキーの永続的な名前になり、そのホットキーのすべてのバリエーションで共有されます。 Hotstring関数またはスクリプト内のダブルコロンラベルによってホットストリングが最初に作成されると、そのトリガー文字列とオプション文字のシーケンスが、そのホットストリングの永続的な名前になる。 |
A_PriorHotkey | 前のホットキーを除き、上記と同じ。ない場合は空白になる。 |
A_PriorKey | キー履歴に該当するキーがない場合は空白。AutoHotkeyスクリプトによって生成されたすべての入力は除外されます。この変数を使用するには、キーボードまたはマウスフックがインストールされ、キーヒストリーが有効になっていなければならない。 |
A_TimeSinceThisHotkey | A_ThisHotkeyが押されてから経過したミリ秒数。A_ThisHotkeyが空白のときは常に空白になります。 |
A_TimeSincePriorHotkey | A_PriorHotkeyが押されてから経過したミリ秒数。A_PriorHotkeyが空白のときは常に空白になる。 |
A_EndChar | 直近の非自動置換ホットストリングをトリガーするためにユーザーが押した終了文字。終了文字が必要ない場合(*オプションのため)、この変数は空白になる。 |
A_MaxHotkeysPerInterval | Can be used to get or set the maximum number of hotkeys that can be pressed within the interval defined by A_HotkeyInterval without triggering a warning dialog. 詳細はA_MaxHotkeysPerIntervalを参照。 |
A_HotkeyInterval | Can be used to get or set the length of the interval used by A_MaxHotkeysPerInterval, in milliseconds. |
A_HotkeyModifierTimeout | Can be used to get or set the timeout affecting the behavior of Send with hotkey modifiers Ctrl, Alt, Win, and Shift. 詳細はA_HotkeyModifierTimeoutを参照。 |
変数 | 説明 |
---|---|
A_ComSpec | Contains the same string as the ComSpec environment variable, which is usually the full path to the command prompt executable (cmd.exe). Run/RunWaitと一緒に使われることが多い。事例: C:\Windows\system32\cmd.exe |
A_Temp | 一時ファイルを保存するフォルダのフルパスと名前。これは、以下のいずれかの場所から取得される(順番に):1) 環境変数TMP、TEMP、またはUSERPROFILE、2) Windowsディレクトリ。事例: C:\Users\<UserName>\AppData\Local\Temp |
A_OSVersion |
オペレーティングシステムのバージョン番号。"major.minor.build"の形式。例えば、Windows 7 SP1は6.1.7601です。 AutoHotkey実行ファイルまたはコンパイル済みスクリプトのプロパティで互換性設定を適用すると、OSが異なるバージョン番号を報告するようになり、A_OSVersionに反映されます。 |
A_Is64bitOS | OSが64ビットの場合は1 (true)、32ビットの場合は0 (false)を含む。 |
A_PtrSize | ポインタのサイズをバイト数で表す。これは、スクリプトを実行する実行可能ファイル(EXE)のタイプに応じて、4(32ビット)または8(64ビット)のいずれかになります。 |
A_Language | システムのデフォルト言語であり、4桁のコードのいずれかである。 |
A_ComputerName | ネットワーク上で見られるコンピュータの名前。 |
A_UserName | このスクリプトを起動したユーザーのログオン名。 |
A_WinDir | Windowsのディレクトリ。事例:C:\Windows |
A_ProgramFiles |
Program Filesディレクトリ(例: 64ビット・システムでは(32ビット・システムではなく)、以下が適用される:
|
A_AppData |
現在のユーザーのアプリケーション固有データを含むフォルダーのフルパスと名前。事例: C:\Users\<UserName>\AppData\Roaming |
A_AppDataCommon |
全ユーザーのアプリケーション固有データを含むフォルダのフルパスと名前。事例: C:\ProgramData |
A_Desktop |
現在のユーザーのデスクトップファイルを含むフォルダーのフルパスと名前。事例: C:\Users\<UserName>\Desktop |
A_DesktopCommon |
全ユーザーのデスクトップファイルを含むフォルダーのフルパスと名前。事例: C:\Users\Public\Desktop |
A_StartMenu |
現在のユーザーのスタートメニューフォルダのフルパスと名前。事例: C:\Users\<UserName>\AppData\Roaming\Microsoft\Windows\Start Menu |
A_StartMenuCommon |
全ユーザーのスタートメニューフォルダのフルパスと名前。事例: C:\ProgramData\Microsoft\Windows\Start Menu |
A_Programs |
現在のユーザーのスタートメニューにあるProgramsフォルダのフルパスと名前。事例: C:\Users\<UserName>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs |
A_ProgramsCommon |
全ユーザーのスタートメニューにあるProgramsフォルダのフルパスと名前。事例: C:\ProgramData\Microsoft\Windows\Start Menu\Programs |
A_Startup |
現在のユーザーのスタートメニューにあるスタートアップフォルダのフルパスと名前。事例: C:\Users\<UserName>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup |
A_StartupCommon |
全ユーザーのスタートメニューのスタートアップフォルダのフルパスと名前。事例: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup |
A_MyDocuments |
現在のユーザーの "My Documents"フォルダのフルパスと名前。類似の変数の多くとは異なり、フォルダがドライブのルートである場合、最後のバックスラッシュは含まれない(例えば、 C:\Users\<UserName>\Documents |
A_IsAdmin | Contains 1 if the current user has admin rights, otherwise 0. スクリプト自身を管理者として再起動させるには(または管理者を要求するユーザーにプロンプトを表示するには)、Run *RunAsを使用します。ただし、スクリプトを管理者として実行すると、スクリプトによって起動されるすべてのプログラムも管理者として実行されることに注意してください。代替案についてはFAQを参照。 |
A_ScreenWidth |
プライマリ・モニターの幅と高さをピクセル単位で指定する(例:1024と768)。 マルチモニターシステムの他のモニターの寸法を調べるには、SysGetを使用する。 デスクトップ全体の幅と高さを知るには(複数のモニターにまたがっていても)、次の例を使う: VirtualWidth := SysGet(78) VirtualHeight := SysGet(79) さらに、SysGet を使用して、タスク バーやその他の登録されたデスクトップ ツールバーが除外されるため、モニタの総面積よりも小さくなる可能性のあるモニタの作業領域を検出します。。 |
A_ScreenDPI | 画面幅に沿った1論理インチあたりのピクセル数。複数のディスプレイモニターがあるシステムでは、この値はすべてのモニターで同じになります。ほとんどのシステムでは96です。システムのテキストサイズ(DPI)の設定によります。GUIの-DPIScaleオプションも参照してください。 |
変数 | 説明 |
---|---|
A_Clipboard | OSのクリップボードの内容を取得または設定するために使用できる。詳細はA_Clipboardを参照。 |
A_Cursor | 現在表示されているマウスカーソルの種類。それは以下の言葉のいずれかとなる:AppStarting、Arrow、Cross、Help、IBeam、Icon、No、Size、SizeAll、SizeNESW、SizeNS、SizeNWSE、SizeWE、UpArrow、Wait、Unknown。サイズタイプのカーソルで使われる頭字語はコンパスの方向である。例えば、NESW = NorthEast+SouthWestである。手の形をしたカーソル(ポインティングとグラブ)はアンノウンに分類される。 |
A_EventInfo | 以下のイベントに関する追加情報が含まれています:
注:A_ThisHotkeyなどの変数とは異なり、各スレッドは、A_EventInfoの値を保持します。したがって、スレッドが他のスレッドによって中断されても、再開されたときには、これらの変数に元の値や正しい値が表示される。 A_EventInfoもスクリプトで設定できますが、ポインタで使用可能な範囲(AutoHotkeyのバージョンによって32ビットまたは64ビット)の符号なし整数しか使えません。 |
A_LastError | これは通常、スクリプトがDllCall、Run/RunWait、File/Ini/Reg関数(文書化されている場合)、その他の特定の関数を呼び出した後にOSのGetLastError()関数から生じる結果です。A_LastErrorは0から4294967295までの数値で、16進数ではなく常に10進数です。ゼロ(0)は成功を、それ以外の数値は呼び出しが失敗したことを意味します。各々の数値は、特定のエラー条件に対応しています。ローカライズされたエラーの説明を取得する方法についてはOSErrorご覧ください。または、www.microsoft.com で "システム エラー コード" を検索してリストを取得してください。A_LastErrorはスレッドごとの設定です。つまり、他のスレッドによる割り込みでは変更できません。 A_LastErrorに値を代入すると、OSのSetLastError()関数も呼び出されます。 |
True False |
0と1です。これらは、スクリプトをより読みやすくするために使用することができます。詳細はブール値をご覧ください。 これらは実際にはキーワードであり、変数ではありません。 |
変数 | 説明 |
---|---|
A_Index | 現在のループの繰り返し回数(64ビット整数)を取得または設定するために使用できる。ループ本体が最初に実行されるときに1を含む。2回目には2が入り、以下同様です。内側ループが外側ループで囲まれている場合、内側ループが優先されます。A_Indexはすべてのループの内部で機能するが、ループの外部では0を含む。Loopのようなカウントループの場合、A_Indexを変更すると、実行される反復回数に影響する。 |
A_LoopFileName、他 | この変数とその他の関連変数は、ファイル・ループ内でのみ有効である。 |
A_LoopRegName、他 | この変数とその他の関連変数は、レジストリのループ内でのみ有効である。 |
A_LoopReadLine | ファイル読み込みループ参照。 |
A_LoopField | 解析ループを参照。 |
var := ""
のように、何も設定しないことで解放できる。