From 38a5c0aa1d2226de2d67901342ddefa7327d8c70 Mon Sep 17 00:00:00 2001 From: Ragnar-F <1332321+Ragnar-F@users.noreply.github.com> Date: Mon, 31 Oct 2022 12:41:54 +0100 Subject: [PATCH] v1.1.35.00 --- AHKL_ChangeLog.htm | 33 ++++ AHKL_DBGPClients.htm | 4 +- AHKL_Features.htm | 2 +- AutoHotkey.htm | 2 +- ChangeLogHelp.htm | 4 +- Concepts.htm | 1 + Functions.htm | 18 +- Hotkeys.htm | 4 +- Hotstrings.htm | 4 +- Objects.htm | 6 +- Program.htm | 2 +- Scripts.htm | 4 +- Variables.htm | 27 ++- commands/Critical.htm | 3 +- commands/DllCall.htm | 2 +- commands/Drive.htm | 23 ++- commands/DriveGet.htm | 74 +++++--- commands/DriveSpaceFree.htm | 13 +- commands/Edit.htm | 2 +- commands/FileCreateDir.htm | 5 +- commands/FileEncoding.htm | 4 +- commands/FileRead.htm | 2 +- commands/For.htm | 2 +- commands/GroupActivate.htm | 4 +- commands/GroupClose.htm | 2 + commands/Hotstring.htm | 4 +- commands/IsSet.htm | 54 ++++++ commands/Math.htm | 28 +-- commands/Menu.htm | 15 +- commands/SetDefaultMouseSpeed.htm | 3 +- commands/SetRegView.htm | 6 +- commands/SplitPath.htm | 3 +- commands/Transform.htm | 36 ++-- commands/_ErrorStdOut.htm | 2 +- commands/_IfWinActive.htm | 2 +- commands/_Warn.htm | 2 +- commands/index.htm | 34 ++-- misc/Ahk2ExeDirectives.htm | 55 +++--- misc/Clipboard.htm | 1 + misc/RegEx-QuickRef.htm | 4 +- objects/Enumerator.htm | 2 +- objects/File.htm | 12 +- objects/Object.htm | 4 +- search.htm | 2 +- static/content.js | 45 +++-- static/dark.css | 84 ++++----- static/source/data_index.js | 294 +++++++++++++++++++++++++----- static/source/data_toc.js | 1 + static/source/data_translate.js | 2 + 49 files changed, 671 insertions(+), 271 deletions(-) create mode 100644 commands/IsSet.htm diff --git a/AHKL_ChangeLog.htm b/AHKL_ChangeLog.htm index ae5d8999..aa08c700 100644 --- a/AHKL_ChangeLog.htm +++ b/AHKL_ChangeLog.htm @@ -17,6 +17,39 @@
Ältere Änderungen können in Archivierte Änderungen gefunden werden.
+Geändert: GroupActivate und GroupClose verhalten sich nun intuitiver:
+Beiträge von jeeswg (PRs #186, #235, #240, #249, #273, #274):
+Behoben: Rechtschreibfehler in der "#Warn Unreachable"-Meldung.
+Behoben: FileCreateDir's Behandlung von Pfaden, die ".." oder "/" enthalten.
+Behoben: Einige Probleme mit dem Parameter RootVerz\DateiName von FileSelectFile:
+Behoben: FileSetTime setzt nun A_LastError, wenn es keine Dateien findet.
+Behoben: EnvAdd/+= verlor beim Addieren von 115.292.150.461+ Sekunden an Genauigkeit.
+Behoben: Der Tastatur-Hook fügte eine unterdrückte tote Taste wieder ein, wenn die Eingabetaste gedrückt wird, z. B. in der Sequenz `o{Enter}
, wenn Folgendes zutrifft:
:?*:ò::
unterdrückt.Behoben: Die Selected-Option von ControlGet List wiederholte unter x64 die Ausgabe, wenn das Ziel 32-Bit ist.
+Behoben: Stack-Corruption bei den Count-Optionen von ControlGet List.
+Behoben: Callback-Funktionen wurden nicht in den Aufrufstapel des Debuggers aufgenommen.
Behoben: MsgBox-Zeitlimit wurde als "OK" gemeldet, wenn es innerhalb von 100 ms nach dem Start angezeigt wurde.
diff --git a/AHKL_DBGPClients.htm b/AHKL_DBGPClients.htm index eedd6ed7..ad10055e 100644 --- a/AHKL_DBGPClients.htm +++ b/AHKL_DBGPClients.htm @@ -24,7 +24,7 @@SciTE4AutoHotkey ist ein kostenloser Texteditor für AutoHotkey-Skripte, der auf SciTE basiert. Dieser Texteditor unterstützt neben DBGp auch Syntaxhervorhebung, Calltips/Parameterinformation, Autovervollständigung und weitere nützliche Bearbeitungsfunktionen und Scripting-Tools.
+SciTE4AutoHotkey ist ein kostenloser Texteditor für AutoHotkey-Skripte, der auf SciTE basiert. Dieser Texteditor unterstützt neben DBGp auch Syntaxhervorhebung, Calltips/Parameterinformation, Autovervollständigung und weitere nützliche Bearbeitungsfunktionen und Scripting-Tools.
Folgende Debugging-Features sind enthalten:
http://fincs.ahk4.net/scite4ahk/
+https://www.autohotkey.com/scite4ahk/
XDebugClient ist ein einfacher Open-Source-Frontend-DBGp-Client auf Basis von .NET Framework 2.0. XDebugClient wurde ursprünglich für PHP in Verbindung mit Xdebug entwickelt. Allerdings finden Sie weiter unten eine abgeänderte Version, die kompatibel mit AutoHotkey ist.
diff --git a/AHKL_Features.htm b/AHKL_Features.htm index f3d625b8..d9762cc2 100644 --- a/AHKL_Features.htm +++ b/AHKL_Features.htm @@ -206,7 +206,7 @@Während nnn ein numerischer Zeichensatzidentifikator sein muss, folgt Codierung dem gleichen Format wie FileEncoding.
+Während nnn ein numerischer Zeichensatzidentifikator sein muss, folgt Codierung dem gleichen Format wie FileEncoding.
Siehe auch: Skript-Kompatibilität
Eine deutsche Übersetzung von https://autohotkey.com/docs/ (siehe hier für mehr Details).
©2003-2014 Chris Mallett, und zum Teil ©AutoIt-Team und die AHK-Community
Software-Lizenz: GNU General Public License
diff --git a/ChangeLogHelp.htm b/ChangeLogHelp.htm index 08583d6f..ddd23b60 100644 --- a/ChangeLogHelp.htm +++ b/ChangeLogHelp.htm @@ -146,7 +146,7 @@Behoben: Bestimmte ternäre Ausdrücke können nun an ByRef-Parameter übergeben werden. [Danke an Titan]
Behoben: GuiControlGet, AusgabeVar, Pos
macht AusgabeVar nicht mehr leer. [Danke an PhiLho]
Behoben: Fortsetzungsbereiche wurden geändert, so dass die Kommentar-Option die LTrim-Option nicht mehr in Kraft setzen muss. [Danke an Titan]
-Geändert: Terminal-Server-Awareness-Flag wurde bei AutoHotkey.exe und kompilierten Skripten wieder "deaktiviert". Diese Änderung verbessert die Flexibilität und Abwärtskompatibilität (siehe Diskussion im Forum).
+Geändert: Terminal-Server-Awareness-Flag wurde bei AutoHotkey.exe und kompilierten Skripten wieder "deaktiviert". Diese Änderung verbessert die Flexibilität und Abwärtskompatibilität (siehe Diskussion im Forum).
Behoben: ComSpec und Umgebungsvariablen sind in Windows 9x nun zuverlässiger (fehlerhaft seit v1.0.46.07). [Danke an Loriss]
Geändert: Wenn AutoHotkey.exe gestartet wird, ohne dass ein Skript angegeben wurde, wird nun die Datei AutoHotkey.ahk im Ordner Eigene Dokumente ausgeführt (oder bei Nachfrage erstellt). Die einzige Ausnahme ist, wenn AutoHotkey.ini im Arbeitsverzeichnis vorhanden ist, dann wird zum Ausführen dieser Datei das alte Verhalten verwendet.
@@ -160,7 +160,7 @@Aktualisiert: PCRE von 6.7 auf 7.0, das kleine Fehlerbehebungen und Verbesserungen für reguläre Ausdrücke beinhaltet. Eine der wichtigsten Verbesserungen ist die "`a"-Option, mit der alle Zeilenumbruchsvarianten erkannt werden können (nämlich `r, `n oder `r`n). Entsprechend bedeutet die \R-Escapesequenz "ein einzelnes Zeilenumbruchszeichen beliebiger Art". Siehe auch: Ausführliches PCRE-Changelog
Behoben: Alle Steuerelement-Befehle und StatusBarWait wurden geändert, um SetTitleMatchMode RegEx wie dokumentiert zu berücksichtigen.
Geändert: RegExReplace() gibt bei Misserfolg nun die originale/unveränderte Zeichenkette zurück, anstatt "".
-Geändert: Terminal-Server-Awareness-Flag bei AutoHotkey.exe und kompilierten Skripten aktiviert.
+Geändert: Terminal-Server-Awareness-Flag bei AutoHotkey.exe und kompilierten Skripten aktiviert.
Verbessert: Mehr Leistung beim Zuweisen von langen Zeichenketten, die von benutzerdefinierten Funktionen zurückgegeben wurden. [Danke an Laszlo]
Behoben: Beim Input-Befehl funktionieren nun benannte Endungstasten wie {F9}, selbst wenn die UMSCHALT-Taste gedrückt gehalten wird (fehlerhaft seit v1.0.45). [Danke an Halweg]
diff --git a/Concepts.htm b/Concepts.htm index 1a3e82f1..1cbae0ee 100644 --- a/Concepts.htm +++ b/Concepts.htm @@ -148,6 +148,7 @@Eine Variable zu initialisieren bedeutet, ihr einen Startwert zuzuweisen. Obwohl das Programm automatisch alle Variablen initialisiert (standardmäßig mit einer leeren Zeichenkette), ist es empfehlenswert, dass ein Skript seine Variablen immer initialisiert, bevor sie eingesetzt werden. Auf diese Weise kann jeder, der das Skript liest, sehen, welche Variablen das Skript verwenden wird und welche Startwerte sie erwartungsgemäß haben werden.
Normalerweise ist es notwendig, dass das Skript jede Variable initialisiert, die eine Zahl enthalten soll. x := x + 1
beispielsweise wird nicht funktionieren, wenn x noch nie einen Wert zugewiesen bekam, da die leere Zeichenkette als nicht-numerisch angesehen wird. Das Skript sollte ihr einen Startwert zuweisen, wie z. B. x := 0
. Es gibt einige Fälle, wo leere Werte als 0 behandelt werden, aber es ist besser, sich nicht darauf zu verlassen.
IsSet kann genutzt werden, um zu prüfen, ob eine Variable initialisiert wurde, z. B. um eine globale oder statische Variable bei der ersten Verwendung zu initialisieren.
Skript-Autoren können die #Warn-Direktive nutzen, um Instanzen zu finden, wo das Skript eine Variable noch nicht initialisiert hat.
Die Direktiven #IfWinActive/Exist und #If können benutzt werden, um Hotkeys je nach Bedingung unterschiedliche (oder überhaupt keine) Aktionen durchführen zu lassen. Zum Beispiel:
-#IfWinActive, ahk_class Notepad +#IfWinActive ahk_class Notepad ^a::MsgBox Sie haben STRG+A gedrückt`, während der Texteditor aktiv ist. Drückt man STRG+A in irgendeinem anderen Fenster, wird die Tastenkombination selbst gesendet. #c::MsgBox Sie haben WIN+C gedrückt`, während der Texteditor aktiv ist. @@ -158,7 +158,7 @@Kontextabhängige Hotkeys
Benutzerdefinierte Kombinationen
-Normalerweise bestehen die Kombinationen von Tastaturkurzbefehlen aus optionalen Präfix-/Modifikatortasten (Strg, Alt, Umschalt und LWin/RWin) und einer einzelnen Suffixtaste. Da die regulären Modifikatortasten standardmäßig nur für diesen Zweck vorgesehen sind, haben sie keinen unmittelbaren Effekt, wenn sie gedrückt werden.
+Normalerweise bestehen die Kombinationen von Tastaturkurzbefehlen aus optionalen Präfix-/Modifikatortasten (Strg, Alt, Umschalt und LWin/RWin) und einer einzelnen Suffixtaste. Da die regulären Modifikatortasten standardmäßig nur für diesen Zweck vorgesehen sind, haben sie keinen unmittelbaren Effekt, wenn sie gedrückt werden.
Um eine benutzerdefinierte Kombination von zwei Tasten (einschließlich der Maustasten, aber nicht der Joystick-Tasten) zu definieren, fügen Sie " & " zwischen den Tasten ein. Da sie für die Nutzung mit Präfixtasten gedacht sind, die normalerweise nicht als solche verwendet werden, weisen benutzerdefinierte Kombinationen das folgende Sonderverhalten auf:
array[A_Index]
einen Funktionsnamen anstelle einer Funktionsreferenz enthält. Wenn aber array[A_Index]
von array.base[A_Index]
geerbt wurde, wird das array als Parameter übergeben.
Vom Skript erstellte Objekte müssen nicht zwingend eine vordefinierte Struktur haben. Stattdessen kann jedes Objekt Eigenschaften und Methoden von seinem Basisobjekt (base
), auch bekannt als "Prototyp" oder "Klasse", erben. Einem Objekt können jederzeit Eigenschaften und Methoden hinzugefügt (oder entfernt) werden; solche Änderungen haben auf alle abgeleiteten Objekte eine Auswirkung. Für komplexere oder speziellere Situationen kann ein Basisobjekt mithilfe von Metafunktionen das Standardverhalten von jedem abgeleiteten Objekt überschreiben.
Vom Skript erstellte Objekte müssen nicht zwingend eine vordefinierte Struktur haben. Stattdessen kann jedes Objekt Eigenschaften und Methoden von seinem Basisobjekt, auch bekannt als "Prototyp" oder "Klasse", erben. Einem Objekt können jederzeit Eigenschaften und Methoden hinzugefügt (oder entfernt) werden; solche Änderungen haben auf alle abgeleiteten Objekte eine Auswirkung. Für komplexere oder speziellere Situationen kann ein Basisobjekt mithilfe von Metafunktionen das Standardverhalten von jedem abgeleiteten Objekt überschreiben.
Basisobjekte sind ganz normale Objekte, die wie folgt erstellt werden können:
class Basisobjekt { static foo := "bar" @@ -228,10 +228,10 @@-Benutzerdefinierte Objekte
obj2 := {base: Basisobjekt} obj3 := new Basisobjekt MsgBox % obj1.foo " " obj2.foo " " obj3.foo
Es ist jederzeit möglich, einem Objekt ein neues base
zuzuweisen, um alle Eigenschaften und Methoden, die das Objekt geerbt hat, nachhaltig zu ersetzen.
Es ist jederzeit möglich, einem Objekt eine neue Basis zuzuweisen, um alle Eigenschaften und Methoden, die das Objekt geerbt hat, nachhaltig zu ersetzen.
Prototypen oder Basisobjekte (base
) können wie jedes andere Objekt konstruiert und manipuliert werden. Das folgende Beispiel zeigt, wie ein gewöhnliches Objekt mit einer Eigenschaft und einer Methode konstruiert werden kann:
Prototypen oder Basisobjekte können wie jedes andere Objekt konstruiert und manipuliert werden. Das folgende Beispiel zeigt, wie ein gewöhnliches Objekt mit einer Eigenschaft und einer Methode konstruiert werden kann:
; Erstellt ein Objekt. obj := {} ; Speichert einen Wert. diff --git a/Program.htm b/Program.htm index ded15de6..16413505 100644 --- a/Program.htm +++ b/Program.htm @@ -129,7 +129,7 @@Titel des Hauptfensters
Um Skripte in eine Standard-AutoHotkey-EXE-Datei einzubetten, fügen Sie mithilfe des Ahk2Exe-Compilers die Skripte als Win32-Ressourcen (RCDATA) hinzu. Mit der AddResource-Compiler-Direktive können Sie weitere Skripte hinzufügen.
+Um Skripte in eine Standard-AutoHotkey-EXE-Datei einzubetten, fügen Sie mithilfe des Ahk2Exe-Compilers die Skripte als Win32-Ressourcen (RCDATA) hinzu. Mit der AddResource-Compiler-Direktive können Sie weitere Skripte hinzufügen.
Ein eingebettetes Skript kann in der Befehlszeile angegeben werden, oder mit #Include durch Angabe eines Sternchens (*) gefolgt vom Ressourcennamen. Handelt es sich um eine Integer-ID, muss der Ressourcenname ein Rautezeichen (#) gefolgt von einer Dezimalzahl sein.
Das Programm kann automatisch Skriptcode aus den folgenden Ressourcen laden, wenn diese in der Datei vorhanden sind:
<< - >> |
- Bitweise Verschiebung nach links (<<) und nach rechts (>>). Anwendungsbeispiel: Wert1 << Wert2 . Jeder Floating-Point-Eingabewert wird vor der Berechnung auf einen Integer gekürzt. Die bitweise Verschiebung nach links (<<) wäre das gleiche wie, als würde man Wert1 mit "2, potenziert um Wert2" multiplizieren. Die bitweise Verschiebung nach rechts (>>) wäre das gleiche wie, als würde man Wert1 mit "2, potenziert um Wert2" dividieren und dann das Ergebnis auf den am nächsten links befindlichen Integer runden; zum Beispiel wäre -3>>1 gleich -2. |
+ >>
+ Bitweise Verschiebung nach links (<<). Anwendungsbeispiel: Arithmetische bitweise Verschiebung nach rechts (>>). Anwendungsbeispiel: Logische bitweise Verschiebung nach rechts (>>>) [v1.1.35+]. Anwendungsbeispiel: Bei allen drei Operatoren werden Floating-Point-Eingabewerte vor der Berechnung auf einen Integer gekürzt. Die Ergebnisse sind undefiniert, wenn Wert2 kleiner als 0 oder größer als 63 ist. + |
||||||||||||||
& @@ -176,9 +182,11 @@ Ausdrucksoperatoren (in absteigender Priorität) | ||||||||||||||||
= == - <> != |
+ <> !=
Gleich (=), Groß-/Kleinschreibung-sensitiv gleich (==) und ungleich (<> oder !=). Wenn beide Eingabewerte Zahlen oder numerische Zeichenketten sind, werden sie numerisch verglichen; ansonsten werden sie alphabetisch verglichen. Die Operatoren != und <> sind funktional identisch. Die Operatoren == und = verhalten sich gleich, wenn beide Eingabewerte numerisch sind, es sei denn, einer der Eingabewerte ist nicht numerisch, dann ist == immer Groß-/Kleinschreibung-sensitiv und = immer nicht-Groß-/Kleinschreibung-sensitiv (die Methode der Nichtsensitivität ist abhängig von StringCaseSense). Die Operatoren <> und != berücksichtigen hingegen StringCaseSense. +Groß-/Kleinschreibung-sensitiv ungleich (!==) [v1.1.35+]. Verhält sich identisch zu ==, außer dass das Ergebnis invertiert wird. Hinweis: In AutoHotkey v1 wird eine in Anführungszeichen gesetzte Zeichenkette (oder das Ergebnis vom Verketten mit einer in Anführungszeichen gesetzte Zeichenkette) nie als numerisch gewertet, wenn sie direkt in einem Ausdruck verwendet wird. Veraltet: Der Operator <> ist nicht für neue Skripte empfohlen. Verwenden Sie stattdessen den Operator !=. |
@@ -213,12 +221,14 @@ Zuweisung. Führt eine Operation auf den Inhalt einer Variable aus und speichert das Ergebnis wieder in die gleiche Variable (früher vor v1.0.46 konnten sie nur als Operator ganz links auf einer Zeile verwendet werden, außerdem wurden nur die ersten fünf Operatoren unterstützt). Der einfachste Zuweisungsoperator ist der Doppelpunkt-Gleich-Operator (:=), der das Ergebnis eines Ausdrucks in eine Variable speichert. Eine Beschreibung dessen, was die anderen Operatoren tun, finden Sie in den entsprechenden Einträgen dieser Tabelle. Im Gegensatz zu den meisten anderen Operatoren werden Zuweisungen von rechts nach links ausgewertet. Eine Zeile wie Verwendet man eine Zuweisung im Eingabewert eines anderen Operators, wird die Variable selbst als Eingabewert genommen. Der Ausdruck Die Priorität der Zuweisungsoperatoren erhöht sich automatisch, wenn dadurch ein Syntaxfehler verhindert oder ein besseres Verhalten bereitgestellt werden kann. Zum Beispiel: >>>= benötigt [v1.1.35+]. Bekannte Einschränkungen durch Abwärtskompatibilität (die eventuell in einer zukünftigen Version behoben werden): 1) Wenn /= der Operator ganz links in einem Ausdruck ist und nicht zu einer Mehrfachanweisung gehört, führt dieser Operator eine Floor-Division durch, es sei denn, einer der Eingabewerte ist eine Floating-Point-Zahl (in allen anderen Fällen führt /= eine echte Division durch); 2) Datum/Zeit-Berechnung mit += und -= ist nur möglich, wenn dieser Operator der Operator ganz links auf der Zeile ist; 3) Die Operatoren +=, -= und *= behandeln leere Variablen als 0, aber nur, wenn sie einzeln auf einer Zeile stehen; |
||||||||||||||
(Ausdruck) | -Ein beliebiger in Klammern gesetzter Teilausdruck. |
+
+ Ein beliebiger in Klammern gesetzter Teilausdruck. Bei einer Mehrfachanweisung wird das Ergebnis der ersten Anweisung zurückgegeben. |
||||||||||||||
mod() | ||||||||||||||||
A_InitialWorkingDir [v1.1.35+] |
+ Das anfängliche Arbeitsverzeichnis des Skripts, das abhängig davon ist, wie das Skript gestartet wurde. Wurde es beispielsweise über eine Verknüpfung gestartet (z. B. im Startmenü), richtet sich dessen anfängliche Arbeitsverzeichnis nach dem Feld "Ausführen in", das im Eigenschaftsfenster der Verknüpfung zu finden ist. | +|||||||||||||||
A_ScriptDir | Der vollständige Pfadname des Verzeichnisses, wo sich das aktuelle Skript befindet. Der letzte umgekehrte Schrägstrich wird weggelassen (auch bei Stammverzeichnissen). | diff --git a/commands/Critical.htm b/commands/Critical.htm index bc68eb29..860c44d5 100644 --- a/commands/Critical.htm +++ b/commands/Critical.htm @@ -45,7 +45,8 @@
Status | +Hinweise | +
---|---|
Unknown | +Könnte auf ein unformatiertes/RAW-Dateisystem hinweisen. | +
Ready | +Kommt am häufigsten vor. | +
NotReady | +Typisch für Wechseldatenträger, die kein Medium enthalten. | +
Invalid | +Pfad existiert nicht oder ist ein Netzwerklaufwerk, auf das momentan nicht zugegriffen werden kann, usw. | +
Ermittelt den Medienstatus eines CD- oder DVD-Laufwerks.
@@ -72,8 +95,8 @@Laufwerk ist der Laufwerksbuchstabe, gefolgt von einem Doppelpunkt. Lässt man Laufwerk weg, wird das Standard-CD/DVD-Laufwerk verwendet. AusgabeVar wird leer gemacht, wenn der Status nicht abgerufen werden kann. Ansonsten wird es auf eine der folgenden Zeichenketten gesetzt:
Zkette | -Beschreibung | +Status | +Bedeutung |
---|---|---|---|
not ready | @@ -102,7 +125,7 @@
Dieser Unterbefehl wird eventuell nicht funktionieren, wenn das angegebene Laufwerk ein Netzwerk- oder Nicht-CD/DVD-Laufwerk ist; wenn dieser Befehl in solchen Fällen oder aus einem anderen Grund fehlschlägt, wird AusgabeVar leer gemacht und ErrorLevel auf 1 gesetzt.
Wenn das Laufwerk vor Kurzem geschlossen wurde, kann es zu einer Verzögerung kommen, bevor der Unterbefehl zu Ende ist.
-Mit dem Drive-Befehl kann ein Laufwerk ein- oder ausgefahren werden.
+Mit dem Eject-Unterbefehl von Drive kann ein Laufwerk ein- oder ausgefahren werden.
[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.
@@ -110,6 +133,7 @@Einige dieser Unterbefehle akzeptieren als Pfad oder Laufwerk auch Netzwerkfreigabenamen wie \\MeinServer\MeinFreigabe\
.
In der Regel kann Pfad ein beliebiger Pfad sein. Da NTFS bereitgestellte Volumes (mounted volumes) und Verzeichnisverbindungen (directory junctions) unterstützt, können verschiedene Pfade mit demselben Laufwerksbuchstaben unterschiedliche Mengen an freiem Speicherplatz erzeugen.
Ruft den freien Speicherplatz eines Laufwerks in Megabyte ab.
+Ermittelt den freien Speicherplatz eines Laufwerks, das den angegebenen Pfad enthält (in Megabyte).
DriveSpaceFree, AusgabeVar, Pfad
Die Variable, in der das Ergebnis gespeichert werden soll, abgerundet auf die nächste ganze Zahl.
Pfad des Laufwerks, dessen Information abgerufen werden soll. Da NTFS bereitgestellte Volumes (mounted volumes) und Verzeichnisverbindungen (directory junctions) unterstützt, kann es in manchen Fällen vorkommen, dass in verschiedenen Ordnern desselben "Laufwerks" unterschiedliche Mengen an freiem Speicherplatz zur Verfügung stehen.
Ein beliebiger Pfad, der im Laufwerk enthalten ist (kann auch mit UNC-Pfaden und zugeordneten Laufwerken funktionieren).
In AusgabeVar wird der freie Speicherplatz in Megabytes gespeichert (abgerundet auf den nächsten Megabyte).
+In der Regel kann Pfad ein beliebiger Pfad sein. Da NTFS bereitgestellte Volumes (mounted volumes) und Verzeichnisverbindungen (directory junctions) unterstützt, können verschiedene Pfade mit demselben Laufwerksbuchstaben unterschiedliche Mengen an freiem Speicherplatz erzeugen.
+Ruft den freien Speicherplatz des C-Laufwerks in Megabyte ab und speichert ihn in FreierSpeicher.
DriveSpaceFree, FreierSpeicher, C:\+
Ermittelt und meldet den freien Speicherplatz eines Laufwerks, das A_MyDocuments enthält.
+DriveSpaceFree, FreierSpeicher, % A_MyDocuments +MsgBox % FreierSpeicher " MB"+
SciTE4AutoHotkey kann hier gefunden werden: http://fincs.ahk4.net/scite4ahk/
+SciTE4AutoHotkey kann hier gefunden werden: https://www.autohotkey.com/scite4ahk/
AHK Studio ist ein Editor für AutoHotkey-Skripte, der mit AutoHotkey erstellt wurde. Im folgenden Forum-Thread finden Sie genaue Details, Video-Anleitungen und eine ständig wachsende Liste von Features: AHK Studio
AutoGUI ist eine integrierte Entwicklungsumgebung für AutoHotkey, die einen GUI-Designer mit einem Skripteditor verknüpft. Sie finden es hier: AutoGUI - GUI Designer and Script Editor
Weitere Editoren, für die die Syntaxhervorhebung für AutoHotkey aktiviert werden kann:
diff --git a/commands/FileCreateDir.htm b/commands/FileCreateDir.htm index af788b45..038862d0 100644 --- a/commands/FileCreateDir.htm +++ b/commands/FileCreateDir.htm @@ -21,7 +21,10 @@Name des Verzeichnisses, das erstellt werden soll. Wenn kein absoluter Pfad angegeben ist, wird das Verzeichnis im A_WorkingDir-Verzeichnis erstellt.
Name des Verzeichnisses, das erstellt werden soll. Wenn kein absoluter Pfad angegeben ist, wird das Verzeichnis im A_WorkingDir-Verzeichnis erstellt.
+Beachten Sie, dass dieser Befehl einen Pfad mit umgekehrten Schrägstrichen (\) erwartet. Schrägstriche (/) werden nicht unterstützt.
+UTF-8-RAW: Wie oben, aber ohne Hinzufügen einer BOM (Byte-Order-Markierung) beim Erstellen einer neuen Datei.
UTF-16: Unicode UTF-16 mit Little-Endian-Byte-Order, entspricht CP1200.
UTF-16-RAW: Wie oben, aber ohne Hinzufügen einer BOM (Byte-Order-Markierung) beim Erstellen einer neuen Datei.
-CPnnn: Ein Zeichensatz mit dem numerischen Identifikator nnn. Siehe Zeichensatzidentifikatoren.
+CPnnn: Ein Zeichensatz mit dem numerischen Identifikator nnn. Siehe Zeichensatzidentifikatoren.
A_FileEncoding
enthält die aktuelle Einstellung.
Die interne Variable A_FileEncoding enthält die aktuelle Einstellung.
Jeder neu gestartete Thread (z. B. ein Hotkey, ein benutzerdefinierter Menüpunkt oder eine zeitgesteuerte Subroutine) verwendet vorerst die Standardeinstellung des Befehls. Um diese zu ändern, muss der Befehl im automatischen Ausführungsbereich (ganz oben im Skript) angegeben werden.
Die Standardcodierung wird nicht verwendet, wenn eine UTF-8- oder UTF-16-Byte-Order-Markierung in der Datei vorhanden ist, es sei denn, die Datei wird nur mit Schreibzugriff geöffnet (also wenn der vorherige Inhalt der Datei quasi verworfen wird).
diff --git a/commands/FileRead.htm b/commands/FileRead.htm index 2f1c1d37..efe58765 100644 --- a/commands/FileRead.htm +++ b/commands/FileRead.htm @@ -29,7 +29,7 @@*m1024: Lässt man diese Option weg, wird die komplette Datei geladen, es sei denn, es mangelt an Speicherkapazität, dann wird eine Fehlermeldung angezeigt und der Thread beendet (kann aber mit Try umgangen werden). Ansonsten können Sie 1024 mit einer dezimalen oder hexadezimalen Anzahl von Bytes ersetzen. Wenn die Datei die angegebene Größe überschreitet, wird nur ihr beginnender Teil geladen.
Hinweis: Dies kann dazu führen, dass die letzte Zeile nur mit einem einzelnen CR-Zeichen (`r) endet, statt mit dem CR-LF-Paar (`r`n).
*t: Ersetzt alle CR-LF-Paare (`r`n) mit einem LF-Zeichen (`n). Diese Übersetzung reduziert jedoch die Leistung und ist in der Regel nicht notwendig. Zum Beispiel wäre ein Text, der `r`n enthält, bereits im richtigen Format, um in ein Gui-Edit-Steuerelement eingefügt werden zu können. Ebenso stellt FileAppend automatisch fest, ob ein CR-LF-Paar (`r`n) vorhanden ist, wenn eine neue Datei geöffnet wird; der Befehl weiß, jedes `r`n so zu lassen wie es ist, anstatt es in `r`r`n zu übersetzen. Die folgende parsende Schleife wird korrekt funktionieren, egal ob eine Zeile mit `r`n oder nur mit `n endet: Loop, Parse, MeineDateiInhalt, `n, `r
.
*Pnnn: [AHK_L 42+]: Überschreibt die via FileEncoding gesetzte Standardcodierung, wobei nnn ein Zeichensatzidentifikator sein muss.
+*Pnnn: [AHK_L 42+]: Überschreibt die via FileEncoding gesetzte Standardcodierung, wobei nnn ein Zeichensatzidentifikator sein muss.
diff --git a/commands/For.htm b/commands/For.htm index 94f64285..b83fe05b 100644 --- a/commands/For.htm +++ b/commands/For.htm @@ -49,7 +49,7 @@[v1.0.96.00+]: Beim Enumerieren eines SafeArrays enthält Schlüssel das aktuelle Element und Wert seinen Variantentyp.
Enumerator-Objekt, Objekt.NewEnum(), While-Schleife, Loop, Until, Break, Continue, Blöcke
+Enumerator-Objekt, Objekt._NewEnum(), While-Schleife, Loop, Until, Break, Continue, Blöcke
ErrorLevel wird auf 1 gesetzt, wenn kein Fenster zum Aktivieren gefunden werden konnte, ansonsten auf 0.
Dieser Befehl bewirkt, dass das erste Fenster, das mit den Spezifikationen der Fenstergruppe übereinstimmt, aktiviert wird. Verwendet man GroupActivate danach nochmals, wird das nächste Fenster in der Reihe aktiviert und so weiter. Normalerweise weist man GroupActivate einem Hotkey zu, um dieses Fensterdurchschaltverhalten durch Drücken dieser Taste zu automatisieren.
+Dieser Befehl bewirkt, dass das erste Fenster, das mit einer der Fensterspezifikationen der Gruppe übereinstimmt, aktiviert wird. Verwendet man GroupActivate danach nochmals, wird das nächste Fenster in der Reihe aktiviert und so weiter. Normalerweise weist man GroupActivate einem Hotkey zu, um dieses Fensterdurchschaltverhalten durch Drücken dieser Taste zu automatisieren.
+In v1.1.34 und älter wird jede Fensterspezifikation einzeln evaluiert, entsprechend der Reihenfolge, in der sie von GroupAdd zur Gruppe hinzugefügt wurden. Modus beeinflusst die Reihenfolge der Aktivierung nur innerhalb jeder Fensterspezifikation, nicht innerhalb der gesamten Gruppe.
+[v1.1.35+]: Jedes Fenster wird anhand der Fenstergruppe als Ganzes evaluiert, ohne zwischen den Fensterspezifikationen zu unterscheiden. Modus beeinflusst die Reihenfolge der Aktivierung innerhalb der gesamten Gruppe.
Wenn ein Fenster unmittelbar nach Aktivieren eines anderen Fensters aktiviert wird, kann es je nach Betriebssystem und Einstellungen vorkommen, dass die Taskleistenschaltflächen anfangen zu blinken. Mit #WinActivateForce kann das verhindert werden.
Weitere Informationen zum Thema Fenstergruppen finden Sie unter GroupAdd.
diff --git a/commands/GroupClose.htm b/commands/GroupClose.htm index 8d7ce1b0..3c7e2b2c 100644 --- a/commands/GroupClose.htm +++ b/commands/GroupClose.htm @@ -33,7 +33,9 @@Wenn der Modus-Parameter nicht der Buchstabe A ist, wird das Verhalten dieses Befehls dadurch bestimmt, ob die vorherige Aktion auf GruppeName GroupActivate oder GroupDeactivate war. Wenn es GroupDeactivate war, wird dieser Befehl das aktive Fenster nur schließen, wenn das Fenster kein Mitglied der Gruppe ist (ansonsten passiert nichts). Wenn es GroupActivate oder nichts war, wird dieser Befehl das aktive Fenster nur schließen, wenn das Fenster ein Mitglied der Gruppe ist (ansonsten passiert nichts). Dieses Verhalten erlaubt es, GroupClose einem Hotkey zuzuweisen, als Ergänzung zum GroupActivate- oder GroupDeactivate-Hotkey von GruppeName.
+Beim Schließen des aktiven Fensters wird in der Regel das nächste, zuletzt aktive Fenster aktiviert. Wenn das neue aktive Fenster mit der Fensterspezifikation des gerade geschlossenen Fensters übereinstimmt, bleibt es aktiv, auch dann, wenn der reguläre Modus normalerweise vorschreiben würde, dass das älteste Fenster als nächstes aktiviert werden sollte. [v1.1.35+]: Wenn das neue aktive Fenster mit einer beliebigen Fensterspezifikation der Gruppe übereinstimmt, bleibt es aktiv.
Weitere Informationen zum Thema Fenstergruppen finden Sie unter GroupAdd.
+GroupAdd, GroupActivate, GroupDeactivate
Gibt eine Nummer ungleich 0 zurück, wenn eine bestimmte Variable einen Wert zugewiesen bekommen hat.
+ +VarIstGesetzt := IsSet(Var)
+Eine direkte oder dynamische Variablenreferenz. Zum Beispiel: IsSet(MeineVar)
oder IsSet(%VarMitName%)
.
Der Rückgabewert ist 1 (true), wenn Var einen Wert zugewiesen bekommen hat, ansonsten 0 (false).
+ +Eine Variable ohne zugewiesenen Wert wird auch als nicht initialisierte Variable bezeichnet.
+Diese Funktion ist von folgenden technischen Einschränkungen seitens AutoHotkey v1.1 betroffen:
+Zeigt verschiedene Verwendungen von IsSet.
++Loop 2 + if !IsSet(MeineVar) ; Ist dies die erste "Nutzung" von MeineVar? + MeineVar := A_Index ; Bei "Erstnutzung" initialisieren. +MsgBox % "MeineVar ist " (IsSet(MeineVar) ? "gesetzt und hat den Wert """ MeineVar """" : "ungesetzt") ++
Gibt den absoluten Wert von Zahl zurück.
+Gibt den absoluten Wert einer bestimmten Zahl zurück.
Wert := Abs(Zahl)
Der Rückgabewert hat den gleichen Typ wie Zahl (Integer oder Floating-Point-Zahl).
MsgBox, % Abs(-1.2) ; Gibt 1.2 zurück
Gibt Zahl zurück, welche auf den nächsten Integer aufgerundet ist (ohne .00-Suffix).
+Gibt eine bestimmte Zahl zurück, aufgerundet auf den nächsten Integer (ohne .00-Suffix).
Wert := Ceil(Zahl)
MsgBox, % Ceil(1.2) ; Gibt 2 zurück MsgBox, % Ceil(-1.2) ; Gibt -1 zurück@@ -65,19 +65,19 @@
MsgBox, % Exp(1.2) ; Gibt 3.320117 zurück
Gibt Zahl zurück, welche auf den nächsten Integer abgerundet ist (ohne .00-Suffix).
+Gibt eine bestimmte Zahl zurück, abgerundet auf den nächsten Integer (ohne .00-Suffix).
Wert := Floor(Zahl)
MsgBox, % Floor(1.2) ; Gibt 1 zurück MsgBox, % Floor(-1.2) ; Gibt -2 zurück
Gibt den Logarithmus (Basis 10) von Zahl zurück.
+Gibt den Logarithmus (Basis 10) einer bestimmten Zahl zurück.
Wert := Log(Zahl)
Das Ergebnis ist eine Floating-Point-Zahl. Wenn Zahl negativ ist, wird eine leere Zeichenkette zurückgegeben.
MsgBox, % Log(1.2) ; Gibt 0.079181 zurück
Gibt den Logarithmus (Basis e) von Zahl zurück.
+Gibt den Logarithmus (Basis e) einer bestimmten Zahl zurück.
Wert := Ln(Zahl)
Das Ergebnis ist eine Floating-Point-Zahl. Wenn Zahl negativ ist, wird eine leere Zeichenkette zurückgegeben.
MsgBox, % Ln(1.2) ; Gibt 0.182322 zurück@@ -102,13 +102,13 @@
Modulo. Gibt den Rest zurück, wenn Dividend durch Divisor geteilt wird.
+Modulo. Gibt den Rest aus einer Division zweier Zahlen zurück.
Wert := Mod(Dividend, Divisor)
Das Vorzeichen des Ergebnisses entspricht dem Vorzeichen des ersten Parameters. Wenn einer der beiden Parameter eine Floating-Point-Zahl ist, wird das Ergebnis ebenfalls eine Floating-Point-Zahl sein. Ist der zweite Parameter eine 0, gibt die Funktion ein leeres Ergebnis (leere Zeichenkette) zurück.
MsgBox, % Mod(7.5, 2) ; Gibt 1.5 zurück (2 x 3 + 1.5)
Gibt Zahl zurück, welche auf N Dezimalstellen gerundet ist.
+Gibt eine bestimmte Zahl zurück, gerundet auf N Dezimalstellen.
Wert := Round(Zahl , N)
Wenn N weggelassen wird oder 0 ist, wird Zahl auf den nächsten Integer gerundet:
MsgBox, % Round(3.14) ; Gibt 3 zurück@@ -120,7 +120,7 @@
Im Gegensatz zu Transform Round hat das Ergebnis kein .000-Suffix, wenn N weggelassen wird oder kleiner als 1 ist. [v1.0.44.01+]: Ein Wert in N, der größer als 0 ist, zeigt genau N Dezimalstellen an, anstatt SetFormat zu berücksichtigen. Um das zu verhindern, führen Sie eine weitere mathematische Operation am Rückgabewert von Round() durch; zum Beispiel: Round(3.333, 1)+0
.
Gibt die Quadratwurzel von Zahl zurück.
+Gibt die Quadratwurzel einer bestimmten Zahl zurück.
Wert := Sqrt(Zahl)
Das Ergebnis ist eine Floating-Point-Zahl. Wenn Zahl negativ ist, gibt die Funktion ein leeres Ergebnis (leere Zeichenkette) zurück.
MsgBox, % Sqrt(16) ; Gibt 4 zurück@@ -129,37 +129,37 @@
Hinweis: Um einen Bogenmaßwert in Grad umzurechnen, multiplizieren Sie ihn mit 180/pi (ungefähr 57.29578). Um einen Gradwert in Bogenmaß umzurechnen, multiplizieren Sie ihn mit pi/180 (ungefähr 0.01745329252). Der Wert von pi (ungefähr 3.141592653589793) ist das 4-fache von Arkustangens 1.
Gibt den trigonometrischen Sinus von Zahl zurück.
+Gibt den trigonometrischen Sinus einer bestimmten Zahl zurück.
Wert := Sin(Zahl)
Zahl muss als Bogenmaß angegeben werden.
MsgBox, % Sin(1.2) ; Gibt 0.932039 zurück
Gibt den trigonometrischen Kosinus von Zahl zurück.
+Gibt den trigonometrischen Kosinus einer bestimmten Zahl zurück.
Wert := Cos(Zahl)
Zahl muss als Bogenmaß angegeben werden.
MsgBox, % Cos(1.2) ; Gibt 0.362358 zurück
Gibt den trigonometrischen Tangens von Zahl zurück.
+Gibt den trigonometrischen Tangens einer bestimmten Zahl zurück.
Wert := Tan(Zahl)
Zahl muss als Bogenmaß angegeben werden.
MsgBox, % Tan(1.2) ; Gibt 2.572152 zurück
Gibt den Arkussinus (die Zahl, deren Sinus Zahl ist) als Bogenmaß zurück.
+Gibt den Arkussinus (die Zahl, deren Sinus die angegebene Zahl ist) als Bogenmaß zurück.
Wert := ASin(Zahl)
Wenn Zahl kleiner als -1 oder größer als 1 ist, gibt die Funktion ein leeres Ergebnis (leere Zeichenkette) zurück.
MsgBox, % ASin(0.2) ; Gibt 0.201358 zurück
Gibt den Arkuskosinus (die Zahl, deren Kosinus Zahl ist) als Bogenmaß zurück.
+Gibt den Arkuskosinus (die Zahl, deren Kosinus die angegebene Zahl ist) als Bogenmaß zurück.
Wert := ACos(Zahl)
Wenn Zahl kleiner als -1 oder größer als 1 ist, gibt die Funktion ein leeres Ergebnis (leere Zeichenkette) zurück.
MsgBox, % ACos(0.2) ; Gibt 1.369438 zurück
Gibt den Arkustangens (die Zahl, deren Tangens Zahl ist) als Bogenmaß zurück.
+Gibt den Arkustangens (die Zahl, deren Tangens die angegebene Zahl ist) als Bogenmaß zurück.
Wert := ATan(Zahl)
MsgBox, % ATan(1.2) ; Gibt 0.876058 zurückdiff --git a/commands/Menu.htm b/commands/Menu.htm index a82fcc06..e47754bf 100644 --- a/commands/Menu.htm +++ b/commands/Menu.htm @@ -107,7 +107,8 @@
Entfernt einen bestimmten Menüpunkt aus dem Menü.
Menu, MenüName, Delete , MenüpunktName-
MenüpunktName ist der Name oder die Position eines Menüpunkts (siehe MenüpunktName, um mehr zu erfahren). Voreingestellte Menüpunkte wie "Exit" (siehe unten) können nicht einzeln gelöscht werden. Den Standard-Menüpunkt mit diesem Unterbefehl zu entfernen hat denselben Effekt wie, als hätte man den NoDefault-Unterbefehl verwendet. Lässt man MenüpunktName weg, wird das gesamte MenüName-Menü gelöscht, sowie alle Menüpunkte in anderen Menüs, die MenüName als Untermenü verwenden. Das Löschen eines Menüs bewirkt zudem, dass das aktuelle Win32-Menü von seinen übergeordneten Menüs und Untermenüs zerstört wird, um später bei Bedarf neu erstellt werden zu können.
+MenüpunktName ist der Name oder die Position eines Menüpunkts (siehe MenüpunktName, um mehr zu erfahren). Voreingestellte Menüpunkte wie "Exit" (siehe unten) können nicht einzeln gelöscht werden. Den Standard-Menüpunkt mit diesem Unterbefehl zu entfernen hat denselben Effekt wie, als hätte man den NoDefault-Unterbefehl verwendet.
+Lässt man MenüpunktName weg, wird das gesamte MenüName-Menü gelöscht, sowie alle Menüpunkte in anderen Menüs, die MenüName als Untermenü verwenden. Das Löschen eines Menüs bewirkt zudem, dass das aktuelle Win32-Menü all seiner Untermenüs zerstört wird, um später bei Bedarf neu erstellt werden zu können. Andere Menüs, die solche Untermenüs enthalten, könnten ebenfalls davon betroffen sein. Um das zu vermeiden, löschen Sie die Menüpunkte mit DeleteAll, bevor Sie das Menü selbst löschen.
Entfernt alle benutzerdefinierten Menüpunkte aus dem Menü.
@@ -216,7 +217,7 @@Zeigt MenüName an.
Menu, MenüName, Show , X, Y-
Der Benutzer kann ein Menüpunkt mit Pfeiltasten, Tastaturkurzbefehlen (unterstrichene Buchstaben) oder mit dem Mauszeiger auswählen. Mit Ausnahme der GUI-Menüleiste kann jedes Menü, einschließlich des Tray-Menüs, angezeigt werden. Lässt man sowohl X als auch Y weg, wird das Menü bei der aktuellen Position des Mauszeigers angezeigt. Lässt man nur eine dieser Koordinaten weg, wird stattdessen die Position des Mauszeigers verwendet. Die Koordinaten sind relativ zum aktiven Fenster. Verwenden Sie davor "CoordMode, Menu", um sie relativ zum ganzen Bildschirm zu machen.
+Der Benutzer kann ein Menüpunkt mit Pfeiltasten, Tastaturkurzbefehlen (unterstrichene Buchstaben) oder mit dem Mauszeiger auswählen. Mit Ausnahme der GUI-Menüleiste kann jedes Menü, einschließlich des Tray-Menüs, angezeigt werden. Lässt man sowohl X als auch Y weg, wird das Menü bei der aktuellen Position des Mauszeigers angezeigt. Lässt man nur eine dieser Koordinaten weg, wird stattdessen die Position des Mauszeigers verwendet. Die Koordinaten sind relativ zum aktiven Fenster. Verwenden Sie davor CoordMode, Menu
, um sie relativ zum ganzen Bildschirm zu machen.
Setzt die Hintergrundfarbe des Menüs auf den angegebenen FarbeWert.
@@ -251,18 +252,20 @@Name oder Position eines Menüpunkts. Es gelten einige allgemeine Regeln für diesen Parameter, der bei vielen Unterbefehlen zu finden ist:
Save && Exit
&Open
1&
der erste Menüpunkt.Save && Exit
&Open
1&
der erste Menüpunkt.Beim Einfügen oder Modifizieren von Menüpunkten werden ihre Namen und Eigenschaften vom Menu-Befehl aufgezeichnet, allerdings wird das eigentliche Win32-Menü nicht sofort konstruiert. Dies geschieht immer dann, wenn das Menü oder sein übergeordnetes Menü mit einem GUI verbunden wird oder wenn es angezeigt wird, entweder zum ersten Mal oder wenn das Menü seit seiner letzten Anzeige "zerstört" wurde. Folgende Punkte können dieses Win32-Menü zerstören, einschließlich seiner übergeordneten Menüs und Untermenüs:
+Beim Einfügen oder Modifizieren von Menüpunkten werden ihre Namen und Eigenschaften vom Menu-Befehl aufgezeichnet, allerdings wird das eigentliche Win32-Menü nicht sofort konstruiert. Dies geschieht immer dann, wenn das Menü oder sein übergeordnetes Menü mit einem GUI verbunden wird oder wenn es angezeigt wird, entweder zum ersten Mal oder wenn das Menü seit seiner letzten Anzeige "zerstört" wurde. Folgende Dinge können dazu führen, dass dieses Win32-Menü zerstört wird:
Beim Zerstören des Win32-Menüs wird eventuell auch das Win32-Menü aller Untermenüs und des übergeordneten Menüs zerstört.
+Wenn das Win32-Menü eines Menüs, das die voreingestellten Menüpunkte enthält, neu erstellt wird, werden die voreingestellten Menüpunkte am Anfang des Menüs platziert.
Jegliche Modifikationen am Menü, die direkt mittels Win32-API-Aufrufen durchgeführt werden, gelten nur für die aktuelle "Instanz" des Menüs, und gehen verloren, wenn das Menü zerstört wird.
Jeder Menüpunkt bekommt eine ID zugewiesen, wenn er das erste Mal zum Menü hinzugefügt wird. Skripte können sich nicht auf einen Menüpunkt mit einer bestimmten ID verlassen, aber sie können die ID eines Menüpunktes via GetMenuItemID abrufen, wie im MenuGetHandle-Beispiel gezeigt. Diese ID kann nicht in Verbindung mit dem Menu-Befehl verwendet werden, sondern nur in Verbindung mit den Win32-Funktionen.
diff --git a/commands/SetDefaultMouseSpeed.htm b/commands/SetDefaultMouseSpeed.htm index 933aaedc..4f653505 100644 --- a/commands/SetDefaultMouseSpeed.htm +++ b/commands/SetDefaultMouseSpeed.htm @@ -27,7 +27,8 @@SetDefaultMouseSpeed wird bei den Modi SendInput und SendPlay ignoriert; sie bewegen den Mauszeiger sofort (außer wenn SendInput auf SendEvent zurückwechselt; beachten Sie, dass SetMouseDelay einen Modus für SendPlay hat). Um den Mauszeiger visuell langsamer zu bewegen (z. B. um einem Publikum etwas vorzuführen), verwenden Sie SendEvent {Click 100 200}
oder SendMode Event
(optional in Verbindung mit BlockInput).
Wenn dieser Befehl nicht im Skript angegeben ist, wird standardmäßig eine Mausgeschwindigkeit von 2 verwendet. Die interne Variable A_DefaultMouseSpeed enthält die aktuelle Einstellung.
+Wenn dieser Befehl nicht im Skript angegeben ist, wird standardmäßig eine Mausgeschwindigkeit von 2 verwendet.
+Die interne Variable A_DefaultMouseSpeed enthält die aktuelle Einstellung.
Die Befehle MouseClick, MouseMove und MouseClickDrag haben einen Parameter, mit dem die Standardgeschwindigkeit des Mauszeigers überschrieben werden kann.
Wenn Geschw größer als 0 ist, wird die Geschwindigkeit auch von SetMouseDelay beeinflusst, indem nach jeder inkrementellen Bewegung des Mauszeigers in Richtung seines Ziels eine Verzögerung erzeugt wird.
Jeder neu gestartete Thread (z. B. ein Hotkey, ein benutzerdefinierter Menüpunkt oder eine zeitgesteuerte Subroutine) verwendet vorerst die Standardeinstellung des Befehls. Um diese zu ändern, muss der Befehl im automatischen Ausführungsbereich (ganz oben im Skript) angegeben werden.
diff --git a/commands/SetRegView.htm b/commands/SetRegView.htm index d15f8494..5ffd3a3e 100644 --- a/commands/SetRegView.htm +++ b/commands/SetRegView.htm @@ -26,11 +26,11 @@Dieser Befehl ist nur in der 64-Bit-Version von Windows nützlich. In der 32-Bit-Version von Windows hat SetRegView keine Wirkung.
In einem 64-Bit-Betriebssystem werden 32-Bit-Anwendungen über das Untersystem von Windows namens WOW64 ausgeführt. Standardmäßig leitet das System bestimmte Registry-Schlüssel weiter, um Konflikte zu vermeiden. Zum Beispiel wird in einem 32-Bit-Skript HKLM\SOFTWARE\AutoHotkey
nach HKLM\SOFTWARE\Wow6432Node\AutoHotkey
weitergeleitet. SetRegView bewirkt, dass Registry-Befehle in einem 32-Bit-Skript auf die 64-Bit-Registry-Ansicht zugreifen können und umgekehrt.
Die interne Variable A_RegView enthält die aktuelle Einstellung. Jeder neu gestartete Thread (z. B. ein Hotkey, ein benutzerdefinierter Menüpunkt oder eine zeitgesteuerte Subroutine) verwendet vorerst die Standardeinstellung des Befehls. Um diese zu ändern, muss der Befehl im automatischen Ausführungsbereich (ganz oben im Skript) angegeben werden.
+Die interne Variable A_RegView enthält die aktuelle Einstellung.
+Jeder neu gestartete Thread (z. B. ein Hotkey, ein benutzerdefinierter Menüpunkt oder eine zeitgesteuerte Subroutine) verwendet vorerst die Standardeinstellung des Befehls. Um diese zu ändern, muss der Befehl im automatischen Ausführungsbereich (ganz oben im Skript) angegeben werden.
RegRead, RegWrite, RegDelete, Registry-Schleife
diff --git a/commands/SplitPath.htm b/commands/SplitPath.htm index 296a6e93..94fbf5c5 100644 --- a/commands/SplitPath.htm +++ b/commands/SplitPath.htm @@ -21,7 +21,8 @@Name der Variable, die den Dateinamen zur Analyse enthält.
+Name der Variable, die den Dateinamen oder die URL zur Analyse enthält.
+Beachten Sie, dass dieser Befehl davon ausgeht, dass Dateinamenpfade nur umgekehrte Schrägstriche (\) und URLs nur Schrägstriche (/) enthalten.
[v1.1.21+]: Dieser Parameter kann ein % Ausdruck
sein, allerdings muss das Prozent-Leerzeichen-Präfix verwendet werden.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Chr().
-Ermittelt ein einzelnes Zeichen, das zum angegebenen Zeichencode in Zahl gehört.
+Ermittelt ein einzelnes Zeichen, dessen Zeichencode mit der angegebenen Zahl übereinstimmt.
Transform, AusgabeVar, Chr, Zahl
Wenn Zahl nicht zwischen 1 und 255 (oder bei Unicode zwischen 1 und 65535) liegt, wird AusgabeVar leer gemacht, um das Problem zu kennzeichnen. Zum Beispiel: Transform, AusgabeVar, Chr, 130
. Im Gegensatz zu Chr() unterstützt dieser Unterbefehl keine Unicode-Ergänzungszeichen (Zeichencodes von 0x10000 bis 0x10FFFF).
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Mod().
-Ermittelt den Rest von Dividend, geteilt durch Divisor.
+Modulo. Ermittelt den Rest aus einer Division zweier Zahlen.
Transform, AusgabeVar, Mod, Dividend, Divisor
Wenn Divisor eine 0 ist, wird AusgabeVar leer gemacht. Sowohl Dividend als auch Divisor können einen Dezimalpunkt enthalten. Falls Divisor negativ ist, wird er für die Berechnung als positiv angesehen. Im folgenden Beispiel ist das Ergebnis eine 2: Transform, AusgabeVar, Mod, 5, 3
.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Sqrt().
-Ermittelt die Quadratwurzel von Zahl.
+Ermittelt die Quadratwurzel einer bestimmten Zahl.
Transform, AusgabeVar, Sqrt, Zahl
Wenn Zahl negativ ist, wird AusgabeVar leer gemacht.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Log().
-Ermittelt den Logarithmus (Basis 10) von Zahl.
+Ermittelt den Logarithmus (Basis 10) einer bestimmten Zahl.
Transform, AusgabeVar, Log, Zahl
Wenn Zahl negativ ist, wird AusgabeVar leer gemacht.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Ln().
-Ermittelt den Logarithmus (Basis e) von Zahl.
+Ermittelt den Logarithmus (Basis e) einer bestimmten Zahl.
Transform, AusgabeVar, Ln, Zahl
Wenn Zahl negativ ist, wird AusgabeVar leer gemacht.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Round().
-Ermittelt Zahl, gerundet auf N Dezimalstellen.
+Ermittelt eine bestimmte Zahl, gerundet auf N Dezimalstellen.
Transform, AusgabeVar, Round, Zahl , N
Lässt man N weg, wird AusgabeVar auf Zahl gesetzt, gerundet auf den nächsten Integer. Ist N eine positive Zahl, wird Zahl auf N Dezimalstellen gerundet. Ist N negativ, wird Zahl auf N Stellen nach links gerundet. Zum Beispiel rundet -1 auf Einerstelle, -2 auf Zehnerstelle und -3 auf Hunderterstelle. Hinweis: Der Round-Unterbefehl entfernt beim Runden von Dezimalstellen keine Nullen am Ende. Zum Beispiel wird 12.333 zu 12.300000 beim Runden auf eine Dezimalstelle. Dieses Verhalten kann geändert werden, indem so etwas wie SetFormat, Float, 0.1
vor der Operation verwendet wird (tatsächlich könnte SetFormat den Round-Unterbefehl an erster Stelle überflüssig machen).
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Ceil().
-Ermittelt Zahl, auf den nächst höheren Integer gerundet.
+Ermittelt eine bestimmte Zahl, aufgerundet auf den nächsten Integer.
Transform, AusgabeVar, Ceil, Zahl
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Floor().
-Ermittelt Zahl, auf den nächst niedrigeren Integer gerundet.
+Ermittelt eine bestimmte Zahl, abgerundet auf den nächsten Integer.
Transform, AusgabeVar, Floor, Zahl
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Abs().
-Ermittelt den absoluten Wert von Zahl.
+Ermittelt den absoluten Wert einer bestimmten Zahl.
Transform, AusgabeVar, Abs, Zahl
Entfernt das Minuszeichen (den Bindestrich) am Anfang von Zahl, sofern vorhanden.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Sin().
-Ermittelt den trigonometrischen Sinus von Zahl.
+Ermittelt den trigonometrischen Sinus einer bestimmten Zahl.
Transform, AusgabeVar, Sin, Zahl
Zahl muss als Bogenmaß angegeben werden.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Cos().
-Ermittelt den trigonometrischen Kosinus von Zahl.
+Ermittelt den trigonometrischen Kosinus einer bestimmten Zahl.
Transform, AusgabeVar, Cos, Zahl
Zahl muss als Bogenmaß angegeben werden.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Tan().
-Ermittelt den trigonometrischen Tangens von Zahl.
+Ermittelt den trigonometrischen Tangens einer bestimmten Zahl.
Transform, AusgabeVar, Tan, Zahl
Zahl muss als Bogenmaß angegeben werden.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen ASin().
-Ermittelt den Arkussinus (die Zahl, deren Sinus Zahl ist) als Bogenmaß.
+Ermittelt den Arkussinus (die Zahl, deren Sinus die angegebene Zahl ist) als Bogenmaß.
Transform, AusgabeVar, ASin, Zahl
Wenn Zahl kleiner als -1 oder größer als 1 ist, wird AusgabeVar leer gemacht.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen ACos().
-Ermittelt den Arkuskosinus (die Zahl, deren Kosinus Zahl ist) als Bogenmaß.
+Ermittelt den Arkuskosinus (die Zahl, deren Kosinus die angegebene Zahl ist) als Bogenmaß.
Transform, AusgabeVar, ACos, Zahl
Wenn Zahl kleiner als -1 oder größer als 1 ist, wird AusgabeVar leer gemacht.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen ATan().
-Ermittelt den Arkustangens (die Zahl, deren Tangens Zahl ist) als Bogenmaß.
+Ermittelt den Arkustangens (die Zahl, deren Tangens die angegebene Zahl ist) als Bogenmaß.
Transform, AusgabeVar, ATan, Zahl
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen den ~
-Operator.
Ermittelt die bit-invertierte Version von Zahl.
+Ermittelt die bit-invertierte Version einer bestimmten Zahl.
Transform, AusgabeVar, BitNot, Zahl
Floating-Point-Zahlen werden zu Integern gekürzt, bevor die Berechnung erfolgt. Wenn Zahl eine Zahl zwischen 0 und 4294967295 (0xffffffff) ist, wird sie als vorzeichenlosen 32-Bit-Wert behandelt. Ansonsten wird sie als vorzeichenfähigen 64-Bit-Wert behandelt. Im folgenden Beispiel ist das Ergebnis 0xfffff0f0 (4294963440): Transform, AusgabeVar, BitNot, 0xf0f
.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen den <<
-Operator.
Ermittelt das Ergebnis durch Verschieben von Zahl um N Bit-Stellen nach links.
+Ermittelt das Ergebnis durch Verschieben einer bestimmten Zahl um N Bit-Stellen nach links.
Transform, AusgabeVar, BitShiftLeft, Zahl, N
Entspricht dem Multiplizieren von Zahl mit "2 potenziert mit N". Floating-Point-Zahlen werden zu Integern gekürzt, bevor die Berechnung erfolgt. Im folgenden Beispiel ist das Ergebnis eine 8: Transform, AusgabeVar, BitShiftLeft, 1, 3
.
Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen den >>
-Operator.
Ermittelt das Ergebnis durch Verschieben von Zahl um N Bit-Stellen nach rechts.
+Ermittelt das Ergebnis durch Verschieben einer bestimmten Zahl um N Bit-Stellen nach rechts.
Transform, AusgabeVar, BitShiftRight, Zahl, N
Entspricht dem Dividieren von Zahl mit "2 potenziert mit N", bei dem der Rest gekürzt wird. Floating-Point-Zahlen werden zu Integern gekürzt, bevor die Berechnung erfolgt. Im folgenden Beispiel ist das Ergebnis eine 2: Transform, AusgabeVar, BitShiftRight, 17, 3
.
#ErrorStdOut UTF-8
beispielsweise kodiert Fehlermeldungen als UTF-8, bevor sie zur stderr gesendet werden. Das Programm, das die Ausgabe erfasst, muss UTF-8 unterstützen, und in einigen Fällen muss es erst konfiguriert werden, damit es diese überhaupt erfassen kann. Lässt man diesen Parameter weg, wird standardmäßig CP0
verwendet.#ErrorStdOut UTF-8
beispielsweise kodiert Fehlermeldungen als UTF-8, bevor sie zur stderr gesendet werden. Das Programm, das die Ausgabe erfasst, muss UTF-8 unterstützen, und in einigen Fällen muss es erst konfiguriert werden, damit es diese überhaupt erfassen kann. Lässt man diesen Parameter weg, wird standardmäßig CP0 verwendet.Die Art der Warnung, die aktiviert oder deaktiviert werden soll. Lässt man diesen Parameter weg, wird standardmäßig All verwendet.
-UseUnsetLocal oder UseUnsetGlobal: Warnt, wenn eine Variable gelesen wird, die vorher weder einen Wert zugewiesen bekommen hat noch via VarSetCapacity() initialisiert wurde. Wenn die Variable absichtlich leer sein soll, weisen Sie ihr eine leere Zeichenkette zu, um diese Warnung zu unterdrücken.
+UseUnsetLocal oder UseUnsetGlobal: Warnt, wenn eine Variable gelesen wird, die vorher weder einen Wert zugewiesen bekommen hat noch via VarSetCapacity() initialisiert wurde. Wenn die Variable absichtlich leer sein soll, weisen Sie ihr eine leere Zeichenkette zu, um diese Warnung zu unterdrücken. IsSet kann genutzt werden, um zu prüfen, ob das Lesen einer Variable diese Warnung auslösen würde.
Dieser Warnungstyp behandelt lokale und globale Variablen getrennt voneinander, da es eher unüblich ist, globale Variablen wegen ihrer persistenten und skriptweiten Art vorab zu initialisieren. Auf diese Weise wird die Möglichkeit bereitgestellt, diesen Warnungstyp für lokalen Variablen zu aktivieren und für globale Variablen zu deaktivieren.
#Warn ;y := "" ; Dies würde die Warnung unterdrücken. diff --git a/commands/index.htm b/commands/index.htm index 7ad6e3a9..c37710bb 100644 --- a/commands/index.htm +++ b/commands/index.htm @@ -37,7 +37,7 @@Alphabetischer Befehls- und Funktionsindex
Zusätzlich zu diesen Variablennamen gibt es noch die Spezialvariable A_WorkFileName, die den temporären Namen der gerade verwendeten EXE-Datei enthält. Diese kann genutzt werden, um den Dateinamen als Parameter an eine PostExec-Direktive zu übergeben, die auf die generierte EXE-Datei zugreifen muss.
+[v1.1.34.04b+] Außerdem enthält die Spezialvariable A_BasePath den vollständigen Pfad und Namen der ausgewählten Basisdatei.
+Des Weiteren gibt es die Spezialvariable A_PriorLine, die die Quellcodezeile enthält, die unmittelbar vor der aktuellen Compiler-Direktive steht. Dazwischenliegende leere Zeilen und Kommentaren werden ignoriert, ebenso wie alle Compiler-Direktiven-Zeilen. Diese Variable kann genutzt werden, um konstante Informationen aus dem Quelltext des Skripts "herauszupicken" und sie in späteren Compiler-Direktiven zu verwenden. Zum Beispiel könnten Sie damit auf die Versionsnummer des Skripts zugreifen, welche oft geändert wird. Diese Art des Zugriffs hat den Vorteil, dass die Versionsnummer nur einmal im Quellcode geändert werden muss - die Änderung wird dann zur entsprechenden Direktive weitergeleitet. (Weitere Informationen finden Sie im RegEx-Beispiel unten.)
Darüber hinaus können spezielle Benutzervariablen im Format U_Name
mit den unten genannten Let- und Obey-Direktiven erstellt werden.
Stellen Sie sich vor, es gäbe eine Quelltextzeile, gefolgt von zwei Compiler-Direktiven wie folgt:
CodeVersion := "1.2.3.4", Firma := "Meine Firma"-
;@Ahk2Exe-Let U_version = %A_PriorLine~U)^(.+"){1}(.+)".*$~$2%-
;@Ahk2Exe-Let U_company = %A_PriorLine~U)^(.+"){3}(.+)".*$~$2%+
;@Ahk2Exe-Let U_version = %A_PriorLine~U)^(.+"){1}(.+)".*$~$2%+
;@Ahk2Exe-Let U_company = %A_PriorLine~U)^(.+"){3}(.+)".*$~$2%
Diese Direktiven kopieren die Versionsnummer 1.2.3.4
in die Spezialvariable U_version
und den Firmennamen Meine Firma
in die Spezialvariable U_company
, um sie später in anderen Direktiven zu verwenden.
(Das {1}
in ersten RegEx-Zeichenkette wurde in der zweiten RegEx-Zeichenkette mit {3}
ersetzt, um den Firmennamen nach dem dritten "
zu extrahieren.)
.manifest
. Wenn der Name für die Ressource nicht angegeben ist, wird standardmäßig 1
verwendetBeispiel 1: Die Standardsymbole ersetzen (außer das Hauptsymbol):
-;@Ahk2Exe-AddResource Icon1.ico, 160 ; Ersetzt 'H auf Blau' +;@Ahk2Exe-AddResource Icon1.ico, 160 ; Ersetzt 'H auf Blau' ;@Ahk2Exe-AddResource Icon2.ico, 206 ; Ersetzt 'S auf Grün' ;@Ahk2Exe-AddResource Icon3.ico, 207 ; Ersetzt 'H auf Rot' -;@Ahk2Exe-AddResource Icon4.ico, 208 ; Ersetzt 'S auf Rot'+;@Ahk2Exe-AddResource Icon4.ico, 208 ; Ersetzt 'S auf Rot'
Beispiel 2: [v1.1.34+] Ein anderes Skript als separate RCDATA-Ressource einbinden (siehe Eingebettete Skripte):
-;@Ahk2Exe-AddResource MeinSkript1.ahk, #2 -;@Ahk2Exe-AddResource MeinSkript2.ahk, MEINERESSOURCE -
Beachten Sie, dass jedes Skript, das mit dieser Direktive hinzugefügt wird, vollständig und separat vom Compiler verarbeitet wird und weitere Direktiven enthalten kann. Wenn es konkurrierende Direktiven gibt, wird die zuletzt vom Compiler gefundene verwendet.
+;@Ahk2Exe-AddResource MeinSkript1.ahk, #2 +;@Ahk2Exe-AddResource MeinSkript2.ahk, MEINERESSOURCE+
Beachten Sie, dass jedes Skript, das mit dieser Direktive hinzugefügt wird, vollständig und separat vom Compiler verarbeitet wird und weitere Direktiven enthalten kann. Wenn es konkurrierende Direktiven gibt, wird die zuletzt vom Compiler gefundene verwendet.
Spezifiziert die Basisversion von AutoHotkey, die zum Generieren der EXE-Datei genutzt werden soll. Diese Direktive kann mit einem in der GUI oder CLI angegebenen Basisdateiparameter überschrieben werden. Diese Direktive kann bei Bedarf mehrfach angegeben werden, allerdings nur in einer Skriptdatei, die nicht via #Include eingebunden wird. Der Compiler wird mindestens einmal für jede gefundene Bin/Base-Direktive ausgeführt. (Wenn dieser Direktive aktuell ein Kommentar angehängt ist, muss dieser die ;
-Markierung verwenden. Um diese Direktive tatsächlich auszukommentieren, fügen Sie nach der ersten Kommentar-Markierung ein Leerzeichen ein.)
.exe
ersetzt. Wenn kein Pfad angegeben ist, wird die EXE-Datei im Ordner des Skripts erstellt. Wenn kein Name angegeben ist, bekommt die EXE-Datei den Standardnamen zugewiesen. (Dieser Parameter kann mit der ExeName-Direktive überschrieben werden.).exe
ersetzt. Wenn kein Pfad angegeben ist, wird die EXE-Datei im Ordner des Skripts erstellt. Wenn kein Name angegeben ist, bekommt die EXE-Datei den Standardnamen zugewiesen.;@Ahk2Exe-Obey U_bits, = %A_PtrSize% * 8 +;@Ahk2Exe-Obey U_bits, = %A_PtrSize% * 8 ;@Ahk2Exe-Obey U_type, = "%A_IsUnicode%" ? "Unicode" : "ANSI" -;@Ahk2Exe-ExeName %A_ScriptName~\.[^\.]+$%_%U_type%_%U_bits%+;@Ahk2Exe-ExeName %A_ScriptName~\.[^\.]+$%_%U_type%_%U_bits%
Erstellt (oder modifiziert) eine oder mehrere Benutzervariablen, auf die via %U_Name%
zugegriffen werden kann, ähnlich wie bei den internen Variablen (siehe oben).
Bewirkt nichts.
;@Ahk2Exe-Nop Text
Ver := A_AhkVersion "" ; Wenn angegebenes Literal nicht leer ist, tue 'SetVersion' +Ver := A_AhkVersion "" ; Wenn angegebenes Literal nicht leer ist, tue 'SetVersion' ;@Ahk2Exe-Obey U_V, = "%A_PriorLine~U)^(.+")(.*)".*$~$2%" ? "SetVersion" : "Nop" -;@Ahk2Exe-%U_V% %A_AhkVersion%%A_PriorLine~U)^(.+")(.*)".*$~$2%+;@Ahk2Exe-%U_V% %A_AhkVersion%%A_PriorLine~U)^(.+")(.*)".*$~$2%
Führt isolierte AutoHotkey-Befehle oder Ausdrücke aus, deren Ergebnisse in U_Name
gespeichert werden müssen.
Ein Befehl oder Ausdruck, der ausgeführt werden soll.
Bei Befehlen muss Name als Ausgabevariable angegeben werden (häufig der erste Parameter), z. B.
-;@Ahk2Exe-Obey U_date, FormatTime U_date`, R D2 T2+
;@Ahk2Exe-Obey U_date, FormatTime U_date`, R D2 T2
Bei Ausdrücken muss =
davorgesetzt werden, z. B.
;@Ahk2Exe-Obey U_type, = "%A_IsUnicode%" ? "Unicode" : "ANSI"+
;@Ahk2Exe-Obey U_type, = "%A_IsUnicode%" ? "Unicode" : "ANSI"
Ausdrücke können im Befehlsformat geschrieben werden, z. B.
-;@Ahk2Exe-Obey U_bits, U_bits := %A_PtrSize% * 8+
;@Ahk2Exe-Obey U_bits, U_bits := %A_PtrSize% * 8
Falls erforderlich, trennen Sie mehrere Befehle und Ausdrücke mit `n
.
Spezifiziert ein Programm, das nach einer erfolgreichen Kompilierung ausgeführt werden soll, bevor (oder nachdem) eine Komprimierung der EXE-Datei erfolgt.
+Spezifiziert ein Programm, das nach einer erfolgreichen Kompilierung ausgeführt werden soll, bevor (oder nachdem) eine Komprimierung der EXE-Datei erfolgt. Diese Direktive kann mehrmals vorkommen und wird in der vom Compiler gesehenen Reihenfolge ausgeführt, entsprechend der durch den When
-Parameter festgelegten Warteschlange.
;@Ahk2Exe-PostExec Programm [Parameter] , Bedingung, ArbeitVerz, Versteckt, FehlerIgnorieren
Beispiel 1: (Um diese Beispiele zu verwenden, laden Sie zunächst BinMod.ahk herunter und kompilieren Sie es gemäß den Anweisungen des heruntergeladenen Skripts.)
+Beispiel 1: (Um die ersten beiden Beispiele zu verwenden, laden Sie zunächst BinMod.ahk herunter und kompilieren Sie es gemäß den Anweisungen des heruntergeladenen Skripts.)
Dieses Beispiel kann verwendet werden, um jegliche Referenzen zu "AutoHotkey" aus der generierten EXE-Datei zu entfernen, um zu verschleiern, dass es sich um ein kompiliertes AutoHotkey-Skript handelt:
-;@Ahk2Exe-Obey U_au, = "%A_IsUnicode%" ? 2 : 1 ; Skript ANSI oder Unicode? +;@Ahk2Exe-Obey U_au, = "%A_IsUnicode%" ? 2 : 1 ; Skript ANSI oder Unicode? ;@Ahk2Exe-PostExec "BinMod.exe" "%A_WorkFileName%" -;@Ahk2Exe-Cont "%U_au%2.>AUTOHOTKEY SCRIPT<. DATA "+;@Ahk2Exe-Cont "%U_au%2.>AUTOHOTKEY SCRIPT<. DATA "
Beispiel 2: Dieses Beispiel ändert eine UPX-komprimierte EXE-Datei derart, dass sie nicht mehr mit UPX -d
dekomprimiert werden kann:
;@Ahk2Exe-PostExec "BinMod.exe" "%A_WorkFileName%" -;@Ahk2Exe-Cont "11.UPX." "1.UPX!.", 2-
Weitere Beispiele finden Sie im Skript BinMod.ahk selbst.
+;@Ahk2Exe-PostExec "BinMod.exe" "%A_WorkFileName%" +;@Ahk2Exe-Cont "11.UPX." "1.UPX!.", 2+
(Weitere Beispiele finden Sie im Skript BinMod.ahk selbst.)
+Beispiel 3: Dieses Beispiel spezifiziert die Komprimierung, die für ein kompiliertes Skript verwendet werden soll, wenn in der CLI oder GUI keine angegeben ist. Es werden die Standardparameter angezeigt, die der Compiler normalerweise verwendet.
Für MPRESS:
+;@Ahk2Exe-PostExec "MPRESS.exe" "%A_WorkFileName%" -q -x, 0,, 1+
Für UPX:
+;@Ahk2Exe-PostExec "UPX.exe" "%A_WorkFileName%" +;@Ahk2Exe-Cont -q --all-methods --compress-icons=0, 0,, 1
Weist eine untypische Ressourcen-ID zu, die für das Hauptskript bei Kompilierungen verwendet wird, die eine EXE-Basisdatei verwenden (siehe Eingebettete Skripte). Diese Direktive kann mit einer in der GUI oder CLI angegebenen Ressourcen-ID überschrieben werden. Diese Direktive wird ignoriert, wenn sie in einem Skript vorkommt, das über die AddResource-Direktive eingefügt wurde.
diff --git a/misc/Clipboard.htm b/misc/Clipboard.htm index 91deabfc..4df7ce7f 100644 --- a/misc/Clipboard.htm +++ b/misc/Clipboard.htm @@ -15,6 +15,7 @@Clipboard ist eine interne Variable, die den aktuellen Inhalt der Windows-Zwischenablage enthält, falls dieser in Textform ist. ClipboardAll hingegen enthält alles von der Zwischenablage, wie z. B. Bilder und Formatierung.
+[v1.1.35+]: A_Clipboard
ist ein Alias von Clipboard
.
Jede Textzeile in Clipboard endet normalerweise mit einem CR- und LF-Zeichen, die im Skript als `r`n
ausgedrückt werden können. Dateien (die beispielsweise mit Strg+C kopiert wurden) gelten als Text: Sie werden automatisch in ihren Dateinamen umgewandelt (mit vollständigem Pfad), sobald Clipboard im Skript verwendet wird. Das folgende Beispiel zeigt, wie die Dateien einzeln extrahiert werden können:
Loop, parse, clipboard, `n, `r { diff --git a/misc/RegEx-QuickRef.htm b/misc/RegEx-QuickRef.htm index c7f508d8..4bce06c8 100644 --- a/misc/RegEx-QuickRef.htm +++ b/misc/RegEx-QuickRef.htm @@ -45,7 +45,7 @@Optionen (Groß-/Kleinschreibung-sensitiv)
Schlüssel-Wert-Paare werden in einer von der Implementierung festgelegten Reihenfolge zurückgegeben. Das heißt, dass sie typischerweise nicht in derselben Reihenfolge zurückgegeben werden, wie sie vorher zugewiesen wurden. Vorhandene Schlüssel-Wert-Paare können während der Enumeration geändert werden, aber das Einfügen oder Entfernen von Schlüsseln kann dazu führen, dass einige Datensätze übersprungen oder mehrfach enumeriert werden.
-Siehe auch: For-Schleife, Object.NewEnum()
+Siehe auch: For-Schleife, Objekt._NewEnum()
Beispiele:
; Einige Beispieldaten erstellen. obj := Object("rot", 0xFF0000, "blau", 0x0000FF, "grün", 0x00FF00) diff --git a/objects/File.htm b/objects/File.htm index cffcb15c..ee96f84b 100644 --- a/objects/File.htm +++ b/objects/File.htm @@ -38,7 +38,8 @@Inhaltsverzeichnis
Ermittelt oder setzt die Textcodierung des File-Objekts.
ErmittelteCodierung := File.Encoding
File.Encoding := NeueCodierung-
ErmittelteCodierung und NeueCodierung ist ein numerischer Zeichensatzidentifikator (siehe MSDN) oder eine der folgenden Zeichenketten:
+ErmittelteCodierung und NeueCodierung ist ein numerischer Zeichensatzidentifikator (siehe MSDN) oder eine der folgenden Zeichenketten:
UTF-8
: Unicode UTF-8, äquivalent zu CP65001.UTF-16
: Unicode UTF-16 mit Little-Endian-Byte-Order, äquivalent zu CP1200.[v1.1.15.04+]: Das Setzen von NeueCodierung auf UTF-8-RAW
oder UTF-16-RAW
ist erlaubt, aber das Suffix -RAW
wird ignoriert. In älteren Versionen verhielten sich UTF-8-RAW
und UTF-16-RAW
wie eine ungültige 8-Bit-Codierung, was dazu führte, dass alle ASCII-fremden Zeichen verworfen wurden. Dies gilt nur für File.Encoding
, nicht für FileOpen().
Gibt ein System-Datei-Handle zurück, das für DllCall() verwendet werden kann. Siehe CreateFile.
File.__Handle
File-Objekte puffern intern Lese- und Schreibvorgänge. Daten, die in den internen Pufferspeicher des Objekts geschrieben wurden, werden auf die Festplatte übertragen, bevor das Handle zurückgegeben wird. Wenn der Pufferspeicher gelesene Daten aus einer Datei enthält, werden diese verworfen und der Dateizeiger auf die logische Position (widergespiegelt von File.Pos
) zurückgesetzt.
Gibt die aktuelle Adresse des Zeichenketten-Puffers eines Feldes zurück, wenn es einen hat.
Ptr := Objekt.GetAddress(Schlüssel)
Gibt einen neuen Enumerator zurück, um Schlüssel-Wert-Paare eines Objekts zu enumerieren.
-Enum := Objekt._NewEnum()
+Enum := Objekt._NewEnum()
Diese Methode wird in der Regel nicht direkt, sondern über die For-Schleife aufgerufen.