Eine allgemeine Erklärung und Details zur Funktionsweise finden Sie unter Variablen.
Werte in Variablen speichern: Um eine Zeichenkette oder Zahl in eine Variable zu speichern, verwenden Sie den Doppelpunkt-Gleich-Operator (:=), gefolgt von einer Zahl, einer in Anführungszeichen gesetzten Zeichenkette oder einem Ausdruck beliebigen Typs. Zum Beispiel:
MeineZahl := 123 MeineZkette := "Dies ist eine direkt geschriebene Zeichenkette." KopieVonVar := Var
Eine Variable kann nicht explizit gelöscht werden, aber ihr vorheriger Wert kann durch Zuweisung eines neuen Wertes, z.B. einer leeren Zeichenkette, freigegeben werden:
MeineVar := ""
Einer Variable kann auch indirekt ein Wert zugewiesen werden, indem man ihre Referenz nimmt und eine Doppeldereferenz (double-deref) verwendet oder sie an eine Funktion übergibt. Zum Beispiel:
MouseGetPos &x, &y
Den Wert einer Variable zu lesen, der kein Wert zugewiesen wurde, wird als Fehler gewertet. Dieser Zustand kann mit IsSet erkannt werden.
Inhalte von Variablen abrufen: Mit einer Verkettung oder der Format-Funktion kann der Inhalt einer Variable in eine Zeichenkette eingefügt werden. Zum Beispiel:
MsgBox "Der Wert von Var ist " . Var . "." MsgBox "Der Wert in der Variable namens Var ist " Var "." MsgBox Format("Var hat den Wert {1}.", Var)
Teilausdrücke können auf dieselbe Weise mit Zeichenketten kombiniert werden. Zum Beispiel:
MsgBox("Die Summe von X und Y ist " . (X + Y))
Variablen vergleichen: Bitte lesen Sie sich den folgenden Abschnitt durch, um zu erfahren, welche Vergleiche es gibt.
Eine strukturierte Übersicht und zusätzliche Erklärungen finden Sie unter Ausdrücke (Expressions).
Ausdrücke werden verwendet, um eine oder mehrere Operationen auf eine Reihe von Variablen, direkt geschriebenen Zeichenketten und/oder direkt geschriebenen Zahlen anzuwenden.
Reine Wörter in Ausdrücken werden als Variablennamen interpretiert. Folglich müssen direkt geschriebene Zeichenketten in doppelte Anführungszeichen gesetzt werden, um sie von Variablen zu unterscheiden. Zum Beispiel:
if (AktuelleEinstellung > 100 or GefundeneFarbe != "Blau") MsgBox "Die Einstellung ist zu hoch oder die Farbe ist falsch."
Im obigen Beispiel ist "Blau" in Anführungszeichen gesetzt, da es sich um eine direkt geschriebene Zeichenkette handelt. Einfache Anführungszeichen (') und doppelte Anführungszeichen (") sind funktionsgleich, außer dass eine Zeichenkette, die von einfachen Anführungszeichen umschlossen ist, direkt geschriebene doppelte Anführungszeichen enthalten kann, und umgekehrt. Um daher ein tatsächliches Anführungszeichen in eine direkt geschriebene Zeichenkette einzufügen, versehen Sie das Anführungszeichen mit einem Escapezeichen oder umschließen Sie die Zeichenkette mit gegenteiligen Anführungszeichen. Zum Beispiel:
MsgBox "Sie sagte: `"Ein Apfel pro Tag.`"" MsgBox 'Sie sagte: "Ein Apfel pro Tag."'
Leere Zeichenketten: Um eine leere Zeichenkette in einem Ausdruck anzugeben, verwenden Sie ein leeres Anführungszeichenpaar. Zum Beispiel wäre die Anweisung if (MeineVar != "")
wahr, wenn MeineVar nicht leer ist.
Ergebnis eines Ausdrucks speichern: Um einer Variable das Ergebnis eines Ausdrucks zuzuweisen, verwenden Sie den Doppelpunkt-Gleich-Operator (:=). Zum Beispiel:
NettoPreis := Preis * (1 - Rabatt/100)
Boolesche Werte: In Fällen, wo die Auswertung eines Ausdrucks entweder True (wahr) oder False (falsch) ergeben muss (z.B. bei einer IF-Anweisung), wird eine leere Zeichenkette oder 0 als False und alle anderen Ergebnisse als True angesehen. Zum Beispiel wäre die Anweisung if ElementeAnzahl
nur dann False, wenn ElementeAnzahl leer oder 0 ist. Der Ausdruck if not ElementeAnzahl
würde das gegenteilige Ergebnis liefern.
Operatoren wie NOT/>/=/< erzeugen automatisch einen True- oder False-Wert: 1 für True und 0 für False. Die Operatoren AND/OR hingegen erzeugen immer einen der Eingabewerte. Im folgenden Beispiel wird 1 in die Done-Variable gespeichert, wenn A_Index größer als 5 ist, andernfalls der Wert von FoundIt:
Done := A_Index > 5 or FoundIt
Wie oben angedeutet, kann eine Variable zum Speichern eines False-Wertes verwendet werden, indem sie einfach leer gemacht oder ihr 0 zugewiesen wird. Verwenden Sie dann die Kurzanweisung if Done
, um zu prüfen, ob die Done-Variable True oder False ist.
In einem Ausdruck werden die Schlüsselwörter True und False in 1 bzw. 0 aufgelöst. Diese können verwendet werden, um die Lesbarkeit eines Skripts zu verbessern. Zum Beispiel:
GroßKleinSensitiv := false SucheFortsetzen := true
Integer (ganze Zahlen) und Floating-Point-Zahlen (Gleitkommazahlen): Innerhalb eines Ausdrucks werden Zahlen, die einen Dezimalpunkt enthalten oder mit der wissenschaftlichen Schreibweise angegeben sind, als Floating-Point-Zahlen behandelt, andernfalls sind sie Integer. Für die meisten Operatoren wie Addition und Multiplikation gilt: Wenn einer der Eingabewerte eine Floating-Point-Zahl ist, ist auch das Ergebnis eine Floating-Point-Zahl.
Innerhalb und außerhalb von Ausdrücken können Integer sowohl im hexadezimalen als auch dezimalen Format geschrieben werden. Hexadezimalzahlen beginnen mit dem 0x-Präfix. Zum Beispiel ist Sleep 0xFF
äquivalent zu Sleep 255
. Floating-Point-Zahlen können optional mit der wissenschaftlichen Schreibweise angegeben werden, mit oder ohne Dezimalpunkt (z.B. 1e4
oder -2.1E-4
).
Innerhalb von Ausdrücken werden direkt geschriebene Zahlen ohne Anführungszeichen wie 128
, 0x7F
und 1.0
bereits vor Beginn der Skriptausführung in reine Zahlen umgewandelt. Folglich kann die Umwandlung der Zahl in eine Zeichenkette einen Wert erzeugen, der vom direkt geschriebenen Originalwert abweicht. Zum Beispiel:
MsgBox(0x7F) ; Zeigt 128 MsgBox(1.00) ; Zeigt 1.0
Allgemeine Informationen zu Operatoren finden Sie unter Operatoren.
Sofern nicht anders unten angegeben, werden leere Werte (leere Zeichenketten) oder nicht-numerische Werte innerhalb einer mathematischen Operation nicht als 0 interpretiert. Stattdessen wird ein TypeError ausgelöst. Wenn Try nicht verwendet wird, führt die unbehandelte Ausnahme standardmäßig zu einem Fehlerdialogfenster.
Operator | Beschreibung |
---|---|
%Ausdr% |
Dereferenzierung oder Namensubstitution. Wenn die Auswertung von Ausdr eine VarRef ergibt, greift Andernfalls wird der Wert des Teilausdrucks Ausdr als Name oder Teilname einer Variable oder Eigenschaft verwendet. Auf diese Weise kann das Skript auf eine Variable oder Eigenschaft verweisen, deren Name durch die Auswertung von Ausdr ermittelt wird, was typischerweise eine andere Variable ist. Variablen können nicht dynamisch erstellt werden, aber eine Variable kann dynamisch zugewiesen werden, wenn sie irgendwo im Skript nicht-dynamisch deklariert oder referenziert wurde. Hinweis: Das Ergebnis des Teilausdrucks Ausdr muss der Name oder Teilname der Variable oder Eigenschaft sein, auf die zugegriffen werden soll. Prozentzeichen dürfen wegen ihrer Mehrdeutigkeit nicht direkt in Ausdr verwendet werden, können aber innerhalb von runden Klammern verschachtelt werden. Andernfalls kann Ausdr ein beliebiger Ausdruck sein. Eventuell angrenzende %Ausdr%-Sequenzen und teilweise vorhandene Namen (ohne Leerzeichen oder andere Zeichen dazwischen) werden zu einem einzigen Namen kombiniert. Standardmäßig wird ein Error ausgelöst, wenn die Variable noch nicht existiert oder wenn sie uninitialisiert ist und ihr Wert gelesen wird. Um diesen Fall zu vermeiden, kann mit dem Oder-Vielleicht-Operator (??) ein Standardwert bereitgestellt werden. Zum Beispiel: Obwohl historisch als "double-deref" (Doppeldereferenz) bekannt, ist dieser Begriff ungenau, wenn Ausdr keine Variable enthält (erste Dereferenzierung), und wenn die resultierende Variable, die das Ziel einer Zuweisung ist, nicht dereferenziert wird (zweite Dereferenzierung). |
x.y x.%z% |
Objektelementzugriff. Abrufen (Get), Setzen (Set) oder Aufrufen (Call) einer Methode des Objekts x, wobei y ein direkt geschriebener Name und z ein Ausdruck ist, dessen Auswertung einen Namen ergibt. Siehe Objektsyntax. |
Var? |
Vielleicht. Erlaubt einer Variable, ungesetzt zu sein. Dies kann nur für die Übergabe einer Variable an einen optionalen Parameter, an ein Array-Element oder an ein Objektliteral (direkt geschriebenes Objekt) verwendet werden; oder auf der rechten Seite einer direkten Zuweisung. Nach dem Fragezeichen muss eines der folgenden Symbole stehen (Leerzeichen werden ignoriert): Die Variable ist typischerweise ein optionaler Parameter, kann aber eine beliebige Variable sein. Für Variablen, die keine Funktionsparameter sind, kann beim Laden des Skripts immer noch eine VarUnset-Warnung angezeigt werden, wenn andere Referenzen zu der Variable existieren, aber keine Zuweisungen. Dieser Operator wird derzeit nur für Variablen unterstützt. Um in allgemeineren Fällen einen Parameter explizit oder bedingt wegzulassen, verwenden Sie das Schlüsselwort Siehe auch: unset (Optionale Parameter) |
++ -- |
Vorherige und nachherige Inkrementierung/Dekrementierung. Erhöht oder verringert eine Variable um 1. Der Operator kann entweder vor oder hinter dem Namen der Variable stehen. Wenn der Operator vor dem Namen steht, wird die Operation ausgeführt und das Ergebnis wird von der nächsten Operation verwendet (das Ergebnis ist in diesem Fall eine Variablenreferenz). Zum Beispiel bewirkt Diese Operatoren können auch mit einer Eigenschaft eines Objekts verwendet werden, z.B. |
** |
Potenz. Anwendungsbeispiel: Der Potenzoperator ist rechtsassoziativ. Zum Beispiel wird Hinweis: Eine negative Basis mit einem gebrochenen Exponenten wie |
- ! ~ & |
Unäres Minuszeichen (-): Invertiert das Vorzeichen des Operanden. Unäres Pluszeichen (+): Logisches NICHT (!): Wenn dieser Operator auf einen Operanden angewendet wird, der leer oder 0 ist, ist das Ergebnis 1 (true). Andernfalls ist das Ergebnis 0 (false). Zum Beispiel: Bitweises NICHT (~): Dieser Operator invertiert jedes Bit seines Operanden. Da vorzeichenfähige 64-Bit-Integer verwendet werden, führt ein positiver Eingabewert immer zu einem negativen Ergebnis und umgekehrt. Zum Beispiel ergibt die Auswertung von Referenz (&): Erstellt eine VarRef. Dies ist ein Wert, der eine Referenz repräsentiert, die auf eine Variable verweist. Eine VarRef kann verwendet werden, um indirekt auf die Zielvariable zuzugreifen. Zum Beispiel bewirkt Das Abrufen einer Referenz, die auf eine interne Variable wie z.B. A_Clipboard verweist, wird derzeit nicht unterstützt, es sei denn, sie wird direkt an einen AusgabeVar-Parameter einer internen Funktion übergeben. |
* / // |
Multiplikation (*): Das Ergebnis ist ein Integer, wenn beide Eingabewerte Integer sind, andernfalls ist es eine Floating-Point-Zahl. Andere Verwendungen: Das Sternchensymbol (*) kann auch in variadischen Funktionsaufrufen verwendet werden. Echte Division (/): Die echte Division liefert immer eine Floating-Point-Zahl, auch dann, wenn beide Eingabewerte Integer sind. Zum Beispiel ergibt Integer-Division (//): Der Doppelschrägstrich-Operator verwendet eine hochperformante Integer-Division. Zum Beispiel ergibt Die Operatoren *= und /= sind Kurzschreibweisen zum Multiplizieren oder Dividieren eines Variablenwerts mit einem anderen Wert. Zum Beispiel liefert Eine Division durch 0 bewirkt, dass ein ZeroDivisionError ausgelöst wird. |
+ - |
Addition (+) und Subtraktion (-). Die Operatoren += und -= sind Kurzschreibweisen zum Erhöhen oder Verringern eines Variablenwerts um einen beliebigen Wert. Zum Beispiel liefert Andere Verwendungen: Wenn dem Plus- oder Minuszeichen kein Wert (oder Teilausdruck, der einen Wert zurückgibt) vorangestellt ist, wird es stattdessen als unärer Operator interpretiert. |
<< >> >>> |
Bitweise Verschiebung nach links (<<). Anwendungsbeispiel: Arithmetische bitweise Verschiebung nach rechts (>>). Anwendungsbeispiel: Logische bitweise Verschiebung nach rechts (>>>). Anwendungsbeispiel: Das Folgende gilt für alle drei Operatoren:
|
& ^ | |
Bitweises UND (&), bitweises exklusives ODER (^) und bitweises ODER (|). Von diesen drei Operatoren hat & die höchste Priorität und | die niedrigste Priorität. Das Folgende gilt für alle drei Operatoren:
Siehe auch: Bitweises NICHT (~) |
. |
Verkettung. Ein Punkt mit mindestens einem Leer- oder Tabulatorzeichen auf beiden Seiten wird verwendet, um zwei Elemente zu einer einzelnen Zeichenkette zu kombinieren. Dasselbe kann auch ohne diesen Punkt erzielt werden (außer bei Mehrdeutigkeiten wie Var := "Die Farbe ist " . GefundeneFarbe ; Explizite Verkettung Var := "Die Farbe ist " GefundeneFarbe ; Auto-Verkettung Teilausdrücke können auch verkettet werden. Zum Beispiel: Eine Zeile, die mit einem Punkt (oder einem anderen Operator) beginnt, wird automatisch mit der darüber liegenden Zeile verbunden. Es wird immer die volle Länge jedes Eingabewertes verwendet, auch dann, wenn binäre Nullen enthalten sind. Zum Beispiel erzeugt Andere Verwendungen: Wenn kein Leer- oder Tabulatorzeichen rechts vom Punkt steht, wird dies entweder als direkt geschriebene Floating-Point-Zahl oder als Objektelementzugriff interpretiert. Zum Beispiel ist |
~= | Kurzschreibweise für RegExMatch. Zum Beispiel bewirkt "abc123" ~= "\d" , dass 4 (die Position des ersten numerischen Zeichens) zurückgegeben wird. |
> < >= <= |
Größer (>), kleiner (<), größer gleich (>=) und kleiner gleich (<=). Die Eingabewerte werden numerisch verglichen. Es wird ein TypeError ausgelöst, wenn einer der Eingabewerte weder eine Zahl noch eine numerische Zeichenkette ist. |
= == != !== |
nicht-Groß-/Kleinschreibung-sensitiv gleich (=) / ungleich (!=) und Groß-/Kleinschreibung-sensitiv gleich (==) / ungleich (!==). Die Operatoren == und = verhalten sich gleich, wenn beide Eingabewerte numerisch sind, es sei denn, einer der Eingabewerte ist nicht numerisch (oder beide sind Zeichenketten), dann ist == immer Groß-/Kleinschreibung-sensitiv und = immer nicht-Groß-/Kleinschreibung-sensitiv. Die Operatoren != und !== verhalten sich wie ihre Gegenstücke ohne !, außer dass das Ergebnis invertiert ist. Mit den Operatoren == und !== können Zeichenketten verglichen werden, die binäre Nullen enthalten. Alle anderen Vergleichsoperatoren außer ~= vergleichen Zeichenketten nur bis zur ersten binären Null. Bei nicht-Groß-/Kleinschreibung-sensitiven Vergleichen werden nur die ASCII-Großbuchstaben A bis Z und die entsprechenden Kleinbuchstaben als identisch betrachtet. Um stattdessen gemäß den Regeln der aktuellen Sprach- und Regionseinstellungen des Benutzers zu vergleichen, verwenden Sie StrCompare und geben Sie "Locale" im GroßKleinSensitiv-Parameter an. |
IS IN CONTAINS |
|
NOT | Logisches NICHT. Abgesehen von der niedrigeren Priorität ist dies dasselbe wie der !-Operator. Zum Beispiel ist not (x = 3 or y = 3) dasselbe wie !(x = 3 or y = 3) . |
AND && |
Beide Operatoren sind ein logisches UND. Zum Beispiel: In einem Ausdruck, wo alle Operanden wahr sind, wird der letzte Operand zurückgegeben. Andernfalls wird der erste Operand, der falsch ist, zurückgegeben. Mit anderen Worten, das Ergebnis ist nur wahr, wenn alle Operanden wahr sind. Boolesche Ausdrücke werden einer Kurzschlussauswertung unterzogen (von links nach rechts), um die Performanz zu verbessern. Im folgenden Beispiel sind alle Operanden wahr und werden ausgewertet: A := 1, B := {}, C := 20, D := true, E := "Zkette" MsgBox(A && B && C && D && E) ; Zeigt "Zkette" (E). Im folgenden Beispiel werden nur die ersten beiden Operanden ausgewertet, da B falsch ist. Der Rest wird ignoriert, d.h. auch C wird nicht inkrementiert: A := 1, B := "", C := 0, D := false, E := "Zkette" MsgBox(A && B && ++C && D && E) ; Zeigt "" (B). Eine Zeile, die mit |
OR || |
Beide Operatoren sind ein logisches ODER. Zum Beispiel: In einem Ausdruck, wo mindestens ein Operand wahr ist, wird der erste Operand, der wahr ist, zurückgegeben. Andernfalls wird der letzte Operand, der falsch ist, zurückgegeben. Mit anderen Worten, wenn mindestens ein Operand wahr ist, ist auch das Ergebnis wahr. Boolesche Ausdrücke werden einer Kurzschlussauswertung unterzogen (von links nach rechts), um die Performanz zu verbessern. Im folgenden Beispiel ist mindestens ein Operand wahr. Alle Operanden bis zu D werden ausgewertet. E wird ignoriert und nie inkrementiert: A := "", B := false, C := 0, D := "Zkette", E := 20 MsgBox(A || B || C || D || ++E) ; Zeigt "Zkette" (D). Im folgenden Beispiel sind alle Operanden falsch und werden ausgewertet: A := "", B := false, C := 0 MsgBox(A || B || C) ; Zeigt "0" (C). Eine Zeile, die mit |
?? |
Oder-Vielleicht, auch Koaleszenzoperator genannt. Wenn der linke Operand (der eine Variable sein muss) einen Wert hat, wird dieser als Ergebnis verwendet und der rechte Zweig übersprungen. Andernfalls wird der rechte Operand als Ergebnis verwendet. Mit anderen Worten, Dieser Operator wird typischerweise verwendet, um einen Standardwert anzugeben, wenn bekannt ist, dass eine Variable oder ein optionaler Parameter noch keinen Wert haben wird. Zum Beispiel: MsgBox MeineVar ?? "Standardwert" Da die Variable in diesem Fall uninitialisiert sein kann, wird kein Fehler ausgelöst. Im Gegensatz zu |
?: |
Ternärer Operator. Dieser Operator ist die Kurzschreibweise für eine if-else-Anweisung. Er wertet die Bedingung auf seiner linken Seite aus, um zu bestimmen, welche seiner beiden Verzweigungen als Endergebnis dienen soll. Zum Beispiel bewirkt Siehe auch: Vielleicht (Var?), Oder-Vielleicht (??) Hinweis: Wenn dieser Operator am Anfang einer Zeile verwendet wird, ist es ratsam, die ternäre Bedingung in runde Klammern zu setzen, um Mehrdeutigkeiten mit anderen Anweisungsarten zu vermeiden. Einzelheiten finden Sie unter Ausdrucksanweisungen. |
:= += -= *= /= //= .= |= &= ^= >>= <<= >>>= |
Zuweisung. Führt eine Operation am Inhalt einer Variable durch und speichert das Ergebnis wieder in dieselbe Variable. Der einfachste Zuweisungsoperator ist Doppelpunkt-Gleich (:=), der das Ergebnis eines Ausdrucks in eine Variable speichert. Eine Beschreibung der anderen Operatoren finden Sie in den entsprechenden Einträgen dieser Tabelle. Zum Beispiel führt Im Gegensatz zu den meisten anderen Operatoren werden Zuweisungen von rechts nach links ausgewertet. Folglich bewirkt eine Zeile wie Wenn eine Zuweisung als Eingabe für einen anderen Operator verwendet wird, ist der Eingabewert die Variable selbst. Zum Beispiel ist der Ausdruck Die Priorität der Zuweisungsoperatoren wird automatisch erhöht, wenn dadurch ein Syntaxfehler vermieden oder ein intuitiveres Verhalten erreicht wird. Zum Beispiel: Um die Zielvariable ungesetzt zu machen, kombinieren Sie eine direkte Zuweisung ( Eine Zuweisung kann auch mit einer Eigenschaft eines Objekts verwendet werden, z.B. |
() => Ausdr |
Fat-Arrow-Funktion. Definiert eine einfache Funktion und gibt ein Func- oder Closure-Objekt zurück. Schreiben Sie die Parameterliste der Funktion (optional mit vorangestelltem Funktionsnamen) links neben den Operator. Wenn die Funktion aufgerufen wird (über die zurückgegebene Referenz), wertet sie den Teilausdruck Ausdr aus und gibt das Ergebnis zurück. Die folgenden zwei Beispiele sind äquivalent: sumfn := Sum(a, b) => a + b Sum(a, b) { return a + b } sumfn := Sum In beiden Fällen wird die Funktion zum Zeitpunkt des Skriptstarts bedingungslos definiert, aber die Funktionsreferenz wird erst nach Auswertung der Zuweisung in sumfn gespeichert. Wenn der Funktionsname weggelassen wird und die Parameterliste nur aus einem einzigen Parameternamen besteht, können die runden Klammern weggelassen werden. Das folgende Beispiel definiert eine anonyme Funktion mit dem Parameter double := a => a * 2 Variablenreferenzen in Ausdr werden auf die gleiche Weise aufgelöst wie in der äquivalenten vollständigen Funktionsdefinition. Zum Beispiel kann Ausdr auf die lokalen Variablen einer äußeren Funktion verweisen (wie in jeder verschachtelten Funktion), woraufhin ein neues Closure erzeugt wird, das jedes Mal seinen Wert zurückgibt, wenn der Fat-Arrow-Ausdruck ausgewertet wird. Die Funktion ist immer eine Assume-Local-Funktion, da Deklarationen nicht verwendet werden können. Gibt man der Funktion einen Namen, kann sie rekursiv oder von anderen verschachtelten Funktionen aufgerufen werden, ohne dass in der Funktion selbst eine Referenz zum Closure gespeichert werden muss (und dadurch ein problematischer Zirkelbezug entsteht). Dies kann auch fürs Debuggen hilfreich sein, z.B. mit Func.Name oder zum Anzeigen auf dem Aufrufstapel des Debuggers. Die Fat-Arrow-Syntax kann auch zum Definieren von Shorthand-Eigenschaften und -Methoden verwendet werden. |
, | Komma (Mehrfachanweisung). Kommas können verwendet werden, um mehrere Teilausdrücke auf eine Zeile zu schreiben. Dies wird üblicherweise verwendet, um mehrere Zuweisungen oder Funktionsaufrufe zu gruppieren. Zum Beispiel: Hinweis: Eine Zeile, die mit einem Komma (oder einem anderen Operator) beginnt, wird automatisch mit der darüber liegenden Zeile verbunden. Das Komma wird auch verwendet, um die Parameter eines Funktionsaufrufs oder einer Kontrollanweisung voneinander zu trennen. Um einen Mehrfachanweisungsausdruck in eine Parameterliste einzufügen, umschließen Sie ihn mit einem zusätzlichen Paar runder Klammern. Zum Beispiel wertet |
Die folgenden Arten von Teilausdrücken überschreiben die Priorität bzw. die Reihenfolge der Auswertung:
Ausdruck | Beschreibung |
---|---|
(Ausdruck) |
Ein beliebiger Teilausdruck in runden Klammern. Zum Beispiel bewirkt Bei einer Mehrfachanweisung wird das Ergebnis der letzten Anweisung zurückgegeben. Zum Beispiel bewirkt |
Mod() |
Funktionsaufruf. Zwischen dem Funktionsnamen/Ausdruck und der runden Startklammer, die die Parameterliste beginnt, dürfen keine Leerzeichen stehen. Einzelheiten finden Sie unter Funktionsaufrufe. (Ausdruck) muss nicht in Klammern gesetzt werden, aber dadurch können Mehrdeutigkeiten vermieden werden. Zum Beispiel liest |
(Ausdruck)() |
|
Fn(Params*) | Variadischer Funktionsaufruf. Params ist ein enumerierbares Objekt (ein Objekt mit einer __Enum-Methode), z.B. ein Array von Parameterwerten. |
x[y] [a, b, c] |
Objektelementzugriff. Ermittelt oder setzt die __Item-Eigenschaft (oder Standardeigenschaft) des Objekts x mit dem Parameter y (oder mehreren Parametern anstelle von y). Dies entspricht typischerweise einem Array-Element oder einem Element in einer Collection, wobei y der Index oder Schlüssel des Elements ist. Um dem Element einen Wert zuzuweisen, verwenden Sie einen Zuweisungsoperator direkt nach der eckigen Endklammer. Zum Beispiel Direkt geschriebenes Array. Wenn der eckigen Klammer kein Wert (oder kein Teilausdruck, der einen Wert zurückgibt) vorangestellt ist, wird die Klammer als Beginn eines direkt geschriebenen Arrays interpretiert. Zum Beispiel ist Weitere Informationen zur allgemeinen Verwendung finden Sie unter Arrays und Maps. |
{a: b, c: d} |
Objektliteral (direkt geschriebenes Objekt). Erstellt ein Objekt. Jedes Paar besteht aus einem direkt geschriebenen Eigenschaftsnamen Um einen dynamischen Eigenschaftsnamen zu verwenden, umschließen Sie den Teilausdruck mit Prozentzeichen. Zum Beispiel: |
Die folgenden Variablen sind fest in das Programm integriert und können normal referenziert werden.
Allgemeine Informationen finden Sie unter Interne Variablen.
Variable | Beschreibung |
---|---|
A_Space | Enthält ein einzelnes Leerzeichen. |
A_Tab | Enthält ein einzelnes Tabulatorzeichen. |
Variable | Beschreibung |
---|---|
A_Args | Enthält ein Array von Befehlszeilenparametern. Einzelheiten finden Sie unter Befehlszeilenparameter an ein Skript übergeben. |
A_WorkingDir | Kann verwendet werden, um das aktuelle Arbeitsverzeichnis des Skripts abzurufen oder zu setzen, von dem aus das Skript standardmäßig auf Dateien zugreift. Der letzte umgekehrte Schrägstrich ist nicht enthalten, es sei denn, es handelt sich um das Stammverzeichnis. Zwei Beispiele: C:\ und C:\Meine Dokumente. SetWorkingDir kann auch verwendet werden, um das Arbeitsverzeichnis zu ändern. Das Arbeitsverzeichnis des Skripts ist standardmäßig immer A_ScriptDir, egal wie das Skript gestartet wurde. |
A_InitialWorkingDir | Das anfängliche Arbeitsverzeichnis des Skripts, abhängig davon, wie das Skript gestartet wurde. Wenn das Skript z.B. über eine Verknüpfung (z.B. im Startmenü) gestartet wurde, richtet sich dessen anfängliches Arbeitsverzeichnis nach dem Feld "Ausführen in" im Eigenschaftenfenster der Verknüpfung. |
A_ScriptDir |
Der vollständige Pfadname des Verzeichnisses, das das aktuelle Skript enthält. Der letzte umgekehrte Schrägstrich wird weggelassen (auch bei Stammverzeichnissen). Wenn der Skripttext nicht aus der Datei, sondern aus der Standardeingabe (stdin) gelesen wird, enthält diese Variable das anfängliche Arbeitsverzeichnis. |
A_ScriptName |
Kann verwendet werden, um den Standardtitel für MsgBox, InputBox, FileSelect, DirSelect und Gui abzurufen oder zu setzen. Wenn nicht vom Skript gesetzt, enthält diese Variable den Dateinamen des aktuellen Skripts, ohne Pfad, z.B. MeinSkript.ahk. Wenn der Skripttext nicht aus der Datei, sondern aus der Standardeingabe (stdin) gelesen wird, enthält diese Variable ein Sternchen (*). Wenn das Skript kompiliert oder eingebettet ist, enthält diese Variable den Namen der aktuellen EXE-Datei. |
A_ScriptFullPath |
Der vollständige Pfadname des aktuellen Skripts, z.B. C:\Skripte\MeinSkript.ahk Wenn der Skripttext nicht aus der Datei, sondern aus der Standardeingabe (stdin) gelesen wird, enthält diese Variable ein Sternchen (*). Wenn das Skript kompiliert oder eingebettet ist, enthält diese Variable den vollständigen Pfadnamen der aktuellen EXE-Datei. |
A_ScriptHwnd | Die HWND-Nummer (eindeutige ID) des versteckten Hauptfensters des Skripts. |
A_LineNumber | Die Nummer der aktuell ausgeführten Zeile innerhalb des Skripts (oder innerhalb einer #Include-Datei, falls vorhanden). Diese Zeilennummer entspricht der via ListLines angezeigten Zeilennummer; dies ist z.B. nützlich, um einen Fehler zu melden: Da bei einer Skriptkompilierung alle #Include-Dateien zu einem großen Skript zusammengefasst werden, kann die Zeilennummerierung von der im unkompilierten Modus abweichen. |
A_LineFile |
Der vollständige Pfadname der Datei, zu der A_LineNumber gehört. Wenn das Skript aus einer externen Datei geladen wurde, ist diese Variable äquivalent zu A_ScriptFullPath, es sei denn, die Zeile gehört zu einer der #Include-Dateien des Skripts. Wenn das Skript mit einer BIN-Datei kompiliert wurde, enthält diese Variable den vollständigen Pfadnamen der aktuellen EXE-Datei, äquivalent zu A_ScriptFullPath. Wenn das Skript eingebettet ist, enthält A_LineFile ein Sternchen (*), gefolgt vom Namen der Ressource; z.B. *#1 |
A_ThisFunc | Der Name der benutzerdefinierten Funktion, die gerade ausgeführt wird (andernfalls leer), z.B. MeineFunktion. Siehe auch: Name-Eigenschaft (Func) |
A_AhkVersion | Enthält die Version von AutoHotkey, mit der das Skript ausgeführt wird, z.B. 1.0.22. Im Falle eines kompilierten Skripts enthält diese Variable die Version, mit der das Skript ursprünglich kompiliert wurde. Der Aufbau der Versionsnummer erlaubt es, mit ">" oder ">=" zu prüfen, ob A_AhkVersion größer als eine bestimmte Mindestversionsnummer ist. Zum Beispiel: if (A_AhkVersion >= "1.0.25.07") . Siehe auch: #Requires und VerCompare |
A_AhkPath |
Für unkompilierte oder eingebettete Skripte: Der vollständige Pfadname der EXE-Datei, mit der das aktuelle Skript gerade ausgeführt wird. Zum Beispiel: C:\Program Files\AutoHotkey\AutoHotkey.exe Für kompilierte Skripte, die auf einer BIN-Datei basieren, wird der Wert ermittelt, indem das Installationsverzeichnis aus der Registry gelesen und "\AutoHotkey.exe" angefügt wird. Wenn AutoHotkey nicht installiert ist, ist der Wert leer. Das folgende Beispiel ist äquivalent: InstallDir := RegRead("HKLM\SOFTWARE\AutoHotkey", "InstallDir", "") AhkPath := InstallDir ? InstallDir "\AutoHotkey.exe" : "" Für kompilierte Skripte, die auf einer EXE-Datei basieren, enthält A_AhkPath den vollständigen Pfadnamen des kompilierten Skripts. Dies kann in Kombination mit /script verwendet werden, um externe Skripte auszuführen. Um stattdessen die installierte Kopie von AutoHotkey zu lokalisieren, lesen Sie die Registry wie oben gezeigt. |
A_IsCompiled | Enthält 1, wenn das Skript als kompilierte EXE-Datei ausgeführt wird, andernfalls 0 (das als falsch angesehen wird). |
Variable | Beschreibung |
---|---|
A_YYYY |
Das aktuelle 4-stellige Jahr (z.B. 2004). A_Year enthält denselben Wert. Hinweis: Um die formatierte Version einer Uhrzeit oder eines Datums gemäß Ihrer aktuellen Sprach- und Regionseinstellungen abzurufen, verwenden Sie |
A_MM | Der aktuelle 2-stellige Monat (01-12). A_Mon enthält denselben Wert. |
A_DD | Der aktuelle 2-stellige Tag des Monats (01-31). A_MDay enthält denselben Wert. |
A_MMMM | Der aktuelle vollständige Monatsname in der aktuellen Sprache des Benutzers, z.B. Juli |
A_MMM | Der aktuelle abgekürzte Monatsname in der aktuellen Sprache des Benutzers, z.B. Jul |
A_DDDD | Der aktuelle vollständige Wochentagsname in der aktuellen Sprache des Benutzers, z.B. Sonntag |
A_DDD | Der aktuelle abgekürzte Wochentagsname in der aktuellen Sprache des Benutzers, z.B. So |
A_WDay | Der aktuelle 1-stellige Wochentag (1-7). 1 ist Sonntag in allen Sprach- und Regionseinstellungen. |
A_YDay | Der aktuelle Tag des Jahres (1-366). Der Wert enthält keine führenden Nullen, z.B. wird 9 abgerufen, nicht 009. Um einen Wert mit führenden Nullen abzurufen, verwenden Sie folgendes: FormatTime(, "YDay0") . |
A_YWeek | Aktuelles Jahr und aktuelle Kalenderwoche (z.B. 200453) gemäß ISO 8601. Um das Jahr von der Woche zu trennen, verwenden Sie Jahr := SubStr(A_YWeek, 1, 4) und Woche := SubStr(A_YWeek, -2) . Genaue Definition von A_YWeek: Wenn die Woche mit dem 1. Januar mindestens vier Tage im neuen Jahr hat, ist sie Woche 1. Andernfalls ist sie die letzte Woche des Vorjahres und die nächste Woche die erste Woche des neuen Jahres. |
A_Hour | Die aktuelle 2-stellige Stunde (00-23) im 24-Stunden-Format. Um die Zeit im 12-Stunden-Format mit einem AM/PM-Indikator abzurufen, gehen Sie wie folgt vor: FormatTime(, "h:mm:ss tt") |
A_Min | Die aktuelle 2-stellige Minute (00-59). |
A_Sec | Die aktuelle 2-stellige Sekunde (00-59). |
A_MSec | Die aktuelle 3-stellige Millisekunde (000-999). Die führenden Nullen können z.B. wie folgt entfernt werden: Millisekunden := A_MSec + 0 . |
A_Now |
Die aktuelle Ortszeit im YYYYMMDDHH24MISS-Format. Hinweis: Datums- und Zeitberechnungen können mit DateAdd und DateDiff durchgeführt werden. Außerdem können Sie FormatTime verwenden, um das Datum und/oder die Uhrzeit gemäß Ihrer aktuellen Sprach- und Regionseinstellungen zu formatieren. |
A_NowUTC | Die aktuelle koordinierte Weltzeit (engl. Coordinated Universal Time, kurz UTC) im YYYYMMDDHH24MISS-Format. UTC ist grundsätzlich dasselbe wie die mittlere Greenwich-Zeit (engl. Greenwich Mean Time, kurz GMT). |
A_TickCount | Die seit dem Systemstart verstrichene Zeit in Millisekunden, bis zu einem Maximum von 49,7 Tagen. Um diese verstrichene Zeit zu messen, speichern Sie A_TickCount in eine Variable und subtrahieren Sie diese später vom aktuellen A_TickCount-Wert. Zum Beispiel: StartZeit := A_TickCount Sleep 1000 VerstricheneZeit := A_TickCount - StartZeit MsgBox VerstricheneZeit " Millisekunden sind verstrichen." Wenn Sie eine höhere Genauigkeit als die 10 ms von A_TickCount benötigen, verwenden Sie QueryPerformanceCounter(). |
Variable | Beschreibung |
---|---|
A_IsSuspended | Enthält 1, wenn das Skript suspendiert ist, andernfalls 0. |
A_IsPaused | Enthält 1, wenn der Thread direkt unterhalb des aktuellen Threads pausiert ist, andernfalls 0. |
A_IsCritical | Enthält 0, wenn Critical im aktuellen Thread ausgeschaltet ist. Andernfalls enthält A_IsCritical einen Integer größer als 0, nämlich das von Critical verwendete Meldungsüberprüfintervall. Um den aktuellen Status von Critical zu speichern und wiederherzustellen, verwenden Sie Alt_IsCritical := A_IsCritical und später Critical Alt_IsCritical . |
A_ListLines | Kann verwendet werden, um abzurufen oder festzulegen, ob Zeilen protokolliert werden sollen. Mögliche Werte sind 0 (deaktiviert) und 1 (aktiviert). Einzelheiten finden Sie unter ListLines. |
A_TitleMatchMode | Kann verwendet werden, um den Modus der Titelübereinstimmung abzurufen oder zu setzen. Mögliche Werte sind 1, 2, 3 und RegEx. Einzelheiten finden Sie unter SetTitleMatchMode. |
A_TitleMatchModeSpeed | Kann verwendet werden, um die Geschwindigkeit der Titelübereinstimmung abzurufen oder zu setzen. Mögliche Werte sind Fast und Slow. Einzelheiten finden Sie unter SetTitleMatchMode. |
A_DetectHiddenWindows | Kann verwendet werden, um abzurufen oder festzulegen, ob versteckte Fenster erkannt werden sollen. Mögliche Werte sind 0 (deaktiviert) und 1 (aktiviert). Einzelheiten finden Sie unter DetectHiddenWindows. |
A_DetectHiddenText | Kann verwendet werden, um abzurufen oder festzulegen, ob versteckte Texte in einem Fenster erkannt werden sollen. Mögliche Werte sind 0 (deaktiviert) und 1 (aktiviert). Einzelheiten finden Sie unter DetectHiddenText. |
A_FileEncoding | Kann verwendet werden, um die Standardkodierung für verschiedene interne Funktionen abzurufen oder zu setzen. Einzelheiten finden Sie unter FileEncoding. |
A_SendMode | Kann verwendet werden, um den Send-Modus abzurufen oder zu setzen. Mögliche Werte sind Event, Input, Play und InputThenPlay. Einzelheiten finden Sie unter SendMode. |
A_SendLevel | Kann verwendet werden, um den Sendlevel, ein Integer von 0 bis 100, abzurufen oder zu setzen. Einzelheiten finden Sie unter SendLevel. |
A_StoreCapsLockMode | Kann verwendet werden, um abzurufen oder festzulegen, ob der Zustand von Feststell nach einem Send wiederhergestellt werden soll. Mögliche Werte sind 0 (deaktiviert) und 1 (aktiviert). Einzelheiten finden Sie unter SetStoreCapsLockMode. |
A_KeyDelay A_KeyDuration |
Kann verwendet werden, um die Verzögerung oder Dauer (in Millisekunden) für Tastendrücke abzurufen oder zu setzen. Einzelheiten finden Sie unter SetKeyDelay. |
A_KeyDelayPlay A_KeyDurationPlay |
Kann verwendet werden, um die Verzögerung oder Dauer (in Millisekunden) für Tastendrücke, die über den SendPlay-Modus gesendet werden, abzurufen oder zu setzen. Einzelheiten finden Sie unter SetKeyDelay. |
A_WinDelay | Kann verwendet werden, um die Verzögerung (in Millisekunden) für fensterspezifische Funktionen abzurufen oder zu setzen. Einzelheiten finden Sie unter SetWinDelay. |
A_ControlDelay | Kann verwendet werden, um die Verzögerung (in Millisekunden) für steuerelementmodifizierende Funktionen abzurufen oder zu setzen. Einzelheiten finden Sie unter SetControlDelay. |
A_MenuMaskKey | Bestimmt die Taste, mit der Win- oder Alt-Taste-Oben-Ereignisse maskiert werden. Einzelheiten finden Sie unter A_MenuMaskKey. |
A_MouseDelay A_MouseDelayPlay |
Kann verwendet werden, um die Verzögerung (in Millisekunden) für Mausaktionen abzurufen oder zu setzen. A_MouseDelay gilt für den traditionellen SendEvent-Modus, A_MouseDelayPlay für den SendPlay-Modus. Einzelheiten finden Sie unter SetMouseDelay. |
A_DefaultMouseSpeed | Kann verwendet werden, um die Standardgeschwindigkeit des Mauszeigers, ein Integer von 0 (schnell) bis 100 (langsam), abzurufen oder zu setzen. Einzelheiten finden Sie unter SetDefaultMouseSpeed. |
A_CoordModeToolTip A_CoordModePixel A_CoordModeMouse A_CoordModeCaret A_CoordModeMenu |
Kann verwendet werden, um den Bereich, zu dem Koordinaten relativ sein sollen, abzurufen oder zu setzen. Mögliche Werte sind Screen, Window und Client. Einzelheiten finden Sie unter CoordMode. |
A_RegView | Kann verwendet werden, um die Registry-Ansicht abzurufen oder zu setzen. Mögliche Werte sind 32, 64 und Default. Einzelheiten finden Sie unter SetRegView. |
A_TrayMenu | Gibt ein Menu-Objekt zurück, mit dem das Tray-Menü geändert oder angezeigt werden kann. |
A_AllowMainWindow | Kann verwendet werden, um abzurufen oder festzulegen, ob das Hauptfenster des Skripts über das Tray-Symbol geöffnet werden darf. Mögliche Werte sind 0 (verboten) und 1 (erlaubt). Wenn das Skript weder kompiliert noch eingebettet ist, wird diese Variable standardmäßig auf 1 gesetzt, andernfalls wird diese Variable standardmäßig auf 0 gesetzt, kann aber durch Zuweisung eines Wertes überschrieben werden. Diese Variable auf 1 zu setzen, stellt auch den Menüpunkt "Open" im Tray-Menü wieder her und aktiviert die Menüpunkte im View-Menü des versteckten Hauptfensters des Skripts, wie z.B. "Lines most recently executed", was den Quellcode des Skripts und andere Informationen anzeigt. Die folgenden Funktionen sind immer in der Lage, das Hauptfenster zu öffnen und die entsprechenden View-Optionen auszuwählen, wenn sie während der Skriptausführung erreicht werden: ListLines, ListVars, ListHotkeys und KeyHistory. Die Variable auf 1 zu setzen, verhindert nicht, dass das Hauptfenster mit WinShow sichtbar gemacht oder mit ControlGetText oder ähnlichem inspiziert werden kann, verhindert aber, dass der Quellcode des Skripts und andere Informationen via Hauptfenster preisgegeben werden, außer wenn eine der oben aufgeführten Funktionen vom Skript aufgerufen wird. |
A_IconHidden | Kann verwendet werden, um abzurufen oder festzulegen, ob das Tray-Symbol versteckt werden soll. Mögliche Werte sind 0 (sichtbar) und 1 (versteckt). Einzelheiten finden Sie unter #NoTrayIcon. |
A_IconTip | Kann verwendet werden, um den Tooltiptext des Tray-Symbols abzurufen oder zu setzen; dieser wird angezeigt, wenn sich der Mauszeiger darüber befindet. Wenn leer, wird stattdessen der Name des Skripts verwendet. Um einen Tooltip mehrzeilig zu machen, trennen Sie jede Zeile mit einem Zeilenvorschubzeichen (`n), z.B. Windows 10 und niedriger: Um ein Und-Zeichen (&) im Tooltip anzuzeigen, versehen Sie es mit zwei zusätzlichen Und-Zeichen. Zum Beispiel bewirkt |
A_IconFile | Leer, es sei denn, ein benutzerdefiniertes Tray-Symbol wurde via TraySetIcon definiert, dann ist der vollständige Pfadname der Datei des neuen Symbols enthalten. |
A_IconNumber | Leer, wenn A_IconFile leer ist. Andernfalls ist die Nummer der Symbolgruppe enthalten, die in A_IconFile verwendet wird (üblicherweise 1). |
Variable | Beschreibung |
---|---|
A_TimeIdle |
Die Zeit in Millisekunden, die seit der letzten Eingabe via Tastatur, Maus usw. verstrichen ist. Dies ist nützlich, um festzustellen, ob der Benutzer abwesend ist. Physische Benutzereingaben sowie künstlich erzeugte Eingaben durch ein beliebiges Programm oder Skript (z.B. via Send- oder MouseMove-Funktion) setzen diesen Wert auf 0 zurück. Da dieser Wert tendenziell in 10er-Schritten ansteigt, sollte nicht geprüft werden, ob er mit einem anderen Wert übereinstimmt. Prüfen Sie stattdessen, ob dieser Wert größer oder kleiner als ein anderer Wert ist. Zum Beispiel: if A_TimeIdle > 600000 MsgBox "Die letzte Aktivität war vor 10 Minuten" |
A_TimeIdlePhysical | Ähnlich wie oben, allerdings werden künstliche Tastendrücke und/oder Mausklicks ignoriert, wenn der entsprechende Hook (Tastatur oder Maus) installiert ist, d.h. diese Variable reagiert nur auf physische Ereignisse. Dadurch wird verhindert, dass simulierte Tastendrücke und Mausklicks fälschlicherweise die Aktivität des Benutzers vortäuschen. Wenn keine Hooks installiert sind, ist diese Variable äquivalent zu A_TimeIdle. Wenn nur ein Hook installiert ist, wird A_TimeIdlePhysical nur von dieser Art der physischen Eingabe beeinflusst (die Eingabe des anderen/nicht-installierten Hooks hat weder physisch noch künstlich eine Auswirkung). |
A_TimeIdleKeyboard | Wenn der Tastatur-Hook installiert ist, enthält diese Variable die Zeit in Millisekunden, die seit der letzten physischen Tastatureingabe verstrichen ist. Andernfalls ist diese Variable äquivalent zu A_TimeIdle. |
A_TimeIdleMouse | Wenn der Maus-Hook installiert ist, enthält diese Variable die Zeit in Millisekunden, die seit der letzten physischen Mauseingabe verstrichen ist. Andernfalls ist diese Variable äquivalent zu A_TimeIdle. |
Variable | Beschreibung |
---|---|
A_ThisHotkey | Der zuletzt ausgeführte Hotkey oder nicht-automatisch-ersetzende Hotstring (andernfalls leer), z.B. #z. Dieser Wert ändert sich, wenn der aktuelle Thread von einem anderen Hotkey oder Hotstring unterbrochen wird, deshalb ist es in der Regel besser, den Parameter ThisHotkey nach Möglichkeit zu verwenden. Jeder neu erstellte Hotkey - entweder via Hotkey-Funktion oder Zweifach-Doppelpunkt-Syntax - erhält einen festen Namen, der sich aus dem Tastennamen und der Reihenfolge der Modifikatorsymbolen zusammensetzt und von allen Varianten des Hotkeys verwendet wird. Jeder neu erstellte Hotstring - entweder via Hotstring-Funktion oder Zweifach-Doppelpunkt-Label - erhält einen festen Namen, der sich aus der auslösenden Zeichenkette und der Sequenz von Optionszeichen zusammensetzt. |
A_PriorHotkey | Dasselbe wie oben, aber für den vorherigen Hotkey. Andernfalls leer. |
A_PriorKey | Der Name der Taste, die vor dem Drücken oder Loslassen der letzten Taste gedrückt wurde, oder leer, wenn im Tastenverlauf kein entsprechender Tastendruck gefunden werden kann. Alle via Skript erzeugten Eingaben werden ignoriert. Bevor diese Variable verwendet werden kann, muss der Tastatur- oder Maus-Hook installiert und der Tastenverlauf aktiviert sein. |
A_TimeSinceThisHotkey | Die Zeit in Millisekunden, die seit dem Drücken von A_ThisHotkey verstrichen ist. Dieser Wert ist leer, wenn A_ThisHotkey leer ist. |
A_TimeSincePriorHotkey | Die Zeit in Millisekunden, die seit dem Drücken von A_PriorHotkey verstrichen ist. Dieser Wert ist leer, wenn A_PriorHotkey leer ist. |
A_EndChar | Ein Endungszeichen, das der Benutzer zuletzt gedrückt hat, um einen nicht-automatisch-ersetzenden Hotstring auszulösen. Wenn kein Endungszeichen erforderlich war (wegen der *-Option), ist diese Variable leer. |
A_MaxHotkeysPerInterval | Kann verwendet werden, um die maximale Anzahl von Hotkeys abzurufen oder zu setzen, die innerhalb eines via A_HotkeyInterval definierten Zeitrahmens gedrückt werden können, ohne ein Warndialogfenster auszulösen. Einzelheiten finden Sie unter A_MaxHotkeysPerInterval. |
A_HotkeyInterval | Kann verwendet werden, um die Länge des von A_MaxHotkeysPerInterval verwendeten Intervalls abzurufen oder zu setzen, in Millisekunden. |
A_HotkeyModifierTimeout | Kann verwendet werden, um das Zeitlimit abzurufen oder zu setzen, das Einfluss auf das Verhalten von Send mit den Hotkey-Modifikatoren Strg, Alt, Win und Umschalt hat. Einzelheiten finden Sie unter A_HotkeyModifierTimeout. |
Variable | Beschreibung |
---|---|
A_ComSpec | Enthält dieselbe Zeichenkette wie die ComSpec-Umgebungsvariable, was üblicherweise der vollständige Pfad zur ausführbaren Datei der Eingabeaufforderung (cmd.exe) ist. Diese Variable wird oft mit Run/RunWait verwendet. Zum Beispiel: C:\Windows\system32\cmd.exe |
A_Temp | Der vollständige Pfadname des Ordners zum Speichern von temporären Dateien. Folgende Orte werden der Reihenfolge nach durchsucht, um den Pfadnamen zu ermitteln: 1) Umgebungsvariable TMP, TEMP oder USERPROFILE; 2) Windows-Verzeichnis. Zum Beispiel: C:\Users\<Benutzer>\AppData\Local\Temp |
A_OSVersion |
Die Versionsnummer des Betriebssystems im Format "Haupt.Neben.Build". Windows 7 SP1 ist beispielsweise 6.1.7601. Beachten Sie, dass das Betriebssystem eine andere Versionsnummer meldet bzw. A_OSVersion einen anderen Wert enthält, wenn der Kompatibilitätsmodus im Eigenschaftenfenster der AutoHotkey-EXE-Datei oder des kompilierten Skripts eingeschaltet wurde. |
A_Is64bitOS | Enthält 1 (true), wenn das System 64-Bit ist, oder 0 (false), wenn es 32-Bit ist. |
A_PtrSize | Enthält die Größe eines Pointers in Bytes. Dieser Wert ist entweder 4 (32-Bit) oder 8 (64-Bit), abhängig davon, mit welcher EXE-Datei das Skript ausgeführt wird. |
A_Language | Die Standardsprache des Systems als 4-stelliger Code. |
A_ComputerName | Der Netzwerkname des Computers. |
A_UserName | Der Anmeldename des Benutzers, der dieses Skript gestartet hat. |
A_WinDir | Das Windows-Verzeichnis. Zum Beispiel: C:\Windows |
A_ProgramFiles |
Das Verzeichnis der Programmdateien (z.B. Für 64-Bit-Systeme (nicht 32-Bit-Systeme) gilt folgendes:
|
A_AppData |
Der vollständige Pfadname des Ordners, der anwendungsspezifische Daten des aktuellen Benutzers enthält. Zum Beispiel: C:\Users\<Benutzer>\AppData\Roaming |
A_AppDataCommon |
Der vollständige Pfadname des Ordners, der anwendungsspezifische Daten aller Benutzer enthält. Zum Beispiel: C:\ProgramData |
A_Desktop |
Der vollständige Pfadname des Ordners, der die Desktop-Dateien des aktuellen Benutzers enthält. Zum Beispiel: C:\Users\<Benutzer>\Desktop |
A_DesktopCommon |
Der vollständige Pfadname des Ordners, der die Desktop-Dateien aller Benutzer enthält. Zum Beispiel: C:\Users\Public\Desktop |
A_StartMenu |
Der vollständige Pfadname des Ordners, der die Startmenü-Dateien des aktuellen Benutzers enthält. Zum Beispiel: C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\Start Menu |
A_StartMenuCommon |
Der vollständige Pfadname des Ordners, der die Startmenü-Dateien aller Benutzer enthält. Zum Beispiel: C:\ProgramData\Microsoft\Windows\Start Menu |
A_Programs |
Der vollständige Pfadname des Startmenü-Ordners "Programme" des aktuellen Benutzers. Zum Beispiel: C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs |
A_ProgramsCommon |
Der vollständige Pfadname des Startmenü-Ordners "Programme" aller Benutzer. Zum Beispiel: C:\ProgramData\Microsoft\Windows\Start Menu\Programs |
A_Startup |
Der vollständige Pfadname des Startmenü-Ordners "Autostart" des aktuellen Benutzers. Zum Beispiel: C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup |
A_StartupCommon |
Der vollständige Pfadname des Startmenü-Ordners "Autostart" aller Benutzer. Zum Beispiel: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup |
A_MyDocuments |
Der vollständige Pfadname des Ordners "Dokumente", der beliebige Dateien (vorzugsweise Dokumente) des aktuellen Benutzers enthält. Im Gegensatz zu den meisten anderen ähnlichen Variablen wird, wenn der Ordner das Stammverzeichnis eines Laufwerks ist, der umgekehrte Schrägstrich am Ende weggelassen (z.B. C:\Users\<Benutzer>\Documents |
A_IsAdmin | Enthält 1, wenn der aktuelle Benutzer Adminrechte hat, andernfalls 0. Wenn das Skript sich selbst mit Adminrechten neu starten soll (oder um diese Rechte vom Benutzer via Dialogfenster einzufordern), verwenden Sie Run *RunAs. Beachten Sie aber, dass die Skriptausführung als Administrator dazu führt, dass alle Programme, die vom Skript gestartet werden, ebenfalls als Administrator ausgeführt werden. Eine mögliche Alternative finden Sie in der FAQ. |
A_ScreenWidth |
Die Breite und Höhe des primären Bildschirms in Pixel (z.B. 1024 und 768). Mit SysGet können die Dimensionen von nicht-primären Bildschirmen abgerufen werden. Um stattdessen die Breite und Höhe des gesamten Desktops abzurufen (selbst wenn er sich über mehrere Bildschirme erstreckt), verwenden Sie folgendes Beispiel: VirtuelleBreite := SysGet(78) VirtuelleHöhe := SysGet(79) Mit SysGet kann auch der Arbeitsbereich eines Bildschirms abgerufen werden. Dieser Bereich ist in der Regel kleiner als der gesamte Bildschirmbereich, da die Taskleiste und andere registrierte Desktopsymbolleisten ausgeschlossen werden. |
A_ScreenDPI | Die Anzahl der Pixel pro logischem Zoll entlang der Bildschirmbreite. In einem System mit mehreren anzeigefähigen Bildschirmen ist dieser Wert für alle Bildschirme gleich. Standardmäßig gilt ein DPI-Wert von 96, abhängig von der Textgrößeneinstellung des Systems. Siehe auch -DPIScale-GUI-Option. |
Variable | Beschreibung |
---|---|
A_Clipboard | Kann verwendet werden, um den Inhalt der systeminternen Zwischenablage abzurufen oder zu setzen. Einzelheiten finden Sie unter A_Clipboard. |
A_Cursor | Der Typ des aktuell angezeigten Mauszeigers. Die Variable enthält eines der folgenden Wörter: AppStarting, Arrow, Cross, Help, IBeam, Icon, No, Size, SizeAll, SizeNESW, SizeNS, SizeNWSE, SizeWE, UpArrow, Wait, Unknown. Die Großbuchstaben hinter Size sind Himmelsrichtungen, z.B. NESW = NorthEast+SouthWest (Nordost+Südwest). Die handförmigen Mauszeiger (Zeigen und Greifen) sind als Unknown klassifiziert. |
A_EventInfo | Enthält zusätzliche Informationen über die folgenden Ereignisse:
Hinweis: Jeder Thread hat seinen eigenen Wert für A_EventInfo (im Gegensatz zu Variablen wie A_ThisHotkey). Wenn also ein Thread von einem anderen unterbrochen wird, sieht er bei seiner Wiederaufnahme immer noch seine ursprünglichen/korrekten Werte in diesen Variablen. A_EventInfo kann auch vom Skript gesetzt werden, akzeptiert aber nur vorzeichenlose Integer innerhalb eines Zahlenbereichs, der für Pointer üblich ist (je nach AutoHotkey-Version entweder 32-Bit oder 64-Bit). |
A_LastError | Diese Variable ist üblicherweise das Ergebnis der Systemfunktion GetLastError(), nachdem das Skript bestimmte Funktionen wie z.B. DllCall, Run/RunWait und File/Ini/Reg-Funktionen (wo dokumentiert) aufgerufen hat. A_LastError ist eine Zahl zwischen 0 und 4294967295 (immer dezimal, nicht hexadezimal). Null (0) bedeutet Erfolg, während jede andere Zahl bedeutet, dass der Aufruf fehlgeschlagen ist. Jede Nummer entspricht einem bestimmten Fehlerzustand. Unter OSError erfahren Sie, wie der lokalisierte Fehlerbeschreibungstext abgerufen werden kann, oder suchen Sie auf www.microsoft.com nach "system error codes", um eine Liste zu erhalten. A_LastError ist eine threadspezifische Einstellung, d.h. es kann nicht durch Unterbrechungen anderer Threads geändert werden. Beim Zuweisen eines Wertes an A_LastError wird auch die Systemfunktion SetLastError() aufgerufen. |
True False |
Enthalten 1 und 0. Diese können verwendet werden, um die Lesbarkeit eines Skripts zu verbessern. Einzelheiten finden Sie unter Boolesche Werte. Dies sind Schlüsselwörter, keine Variablen. |
Variable | Beschreibung |
---|---|
A_Index | Kann verwendet werden, um die Nummer der aktuellen Schleifenwiederholung (ein 64-Bit-Integer) abzurufen oder zu setzen. Sie enthält 1, wenn der Körper der Schleife zum ersten Mal ausgeführt wurde. Beim zweiten Mal enthält sie 2 und so weiter. Wenn eine innere Schleife von einer äußeren Schleife umschlossen ist, hat die innere Schleife Vorrang. A_Index funktioniert in jeder Schleifenvariante, enthält aber außerhalb einer Schleife den Wert 0. Bei endlichen Schleifen wie z.B. Loop beeinflusst eine Änderung von A_Index die aktuelle Anzahl der geplanten Wiederholungen. |
A_LoopFileName, etc. | Diese und verwandte Variablen sind nur für Datei-Schleifen relevant. |
A_LoopRegName, etc. | Diese und verwandte Variablen sind nur für Registry-Schleifen relevant. |
A_LoopReadLine | Siehe dateilesende Schleife. |
A_LoopField | Siehe parsende Schleife. |
Var := ""
).