Dieses Dokument beschreibt Features, die zum AutoHotkey_L-Entwicklungszweig von AutoHotkey, jetzt bekannt als "AutoHotkey 1.1", hinzugefügt wurden.
Achtung: Dieses Dokument wurde in den letzten Jahren vernachlässigt. Es ist daher möglich, dass einige der neueren Änderungen nicht enthalten sind.
Feature | Beschreibung |
---|---|
Break LoopLabel | Unterbricht von einer inneren Schleife heraus eine äußere Schleife. |
Continue LoopLabel | Überspringt von einer inneren Schleife heraus den aktuellen Durchlauf der äußeren Schleife. |
For x,y in z | Durchläuft den Inhalt eines Objekts. |
Loop Until | Wiederholt Anweisungen, bis eine Bedingung wahr ist. Anwendbar auf jede Schleifenvariante. |
Try...Catch...Finally | Ermöglicht eine strukturierte Ausnahmebehandlung. |
Throw | Löst eine Ausnahme aus. |
Feature | Beschreibung |
---|---|
FileEncoding | Bestimmt die Standardkodierung für FileRead, FileReadLine, Loop Read, FileAppend und FileOpen(). Siehe auch: Textkodierungen |
Gui | Siehe GUI-Erweiterungen weiter unten. |
IniRead/Write/Delete | Liest, schreibt oder löscht ganze Sektionen, oder ruft eine Liste aller Sektionsnamen ab. |
Menu, Icon | Setzt oder entfernt das Symbol eines Menüpunkts. |
Run | Verbesserungen hinsichtlich dessen, wie Parameter geparst werden. |
SendInput {U+nnnn} | Sendet ein Unicode-Zeichen. Unicode-Zeichen können direkt in Unicode-Builds verwendet werden. |
SendLevel | Bestimmt, welche künstlichen Tastatur- oder Mausereignisse von Hotkeys und Hotstrings ignoriert werden. |
SetFormat, IntegerFast, h|H | Bestimmt, ob das Hexadezimalformat klein- oder großgeschrieben wird. |
SetRegView, RegAnsicht | Ermöglicht Registry-Befehlen in einem 32-Bit-Skript den Zugriff auf die 64-Bit-Registry-Ansicht und umgekehrt. |
Transform, HTML | Führt Codepage- oder HTML-Umwandlungen durch. |
WinGet, ..., ProcessPath | Ruft den kompletten Pfad und Namen des Prozesses eines Fensters ab. |
Feature | Beschreibung |
---|---|
#If Ausdruck | Vergleichbar mit #IfWinActive, aber für beliebige Ausdrücke. |
#IfTimeout | Bestimmt die maximale Zeit, die zur Auswertung eines einzelnen #If-Ausdrucks aufgebracht wird. |
#MenuMaskKey | Ändert die Taste, mit der Win- oder Alt-Taste-Oben-Ereignisse maskiert werden. |
#Include <Bibl> | Bindet eine Skriptdatei aus einem Funktionsbibliotheksordner ein. |
#InputLevel | Bestimmt, welche künstlichen Tastatur- oder Mausereignisse von Hotkeys und Hotstrings ignoriert werden. |
#Warn | Aktiviert oder deaktiviert bestimmte Warnungen, die auf mögliche Fehler vonseiten des Programmierers hinweisen. |
Feature | Beschreibung |
---|---|
ComObjActive | Ruft ein registriertes COM-Objekt ab. |
ComObjArray | Erstellt ein SafeArray, das für COM verwendet werden kann. |
ComObjConnect | Verbindet die Ereignisquellen eines COM-Objekts mit Funktionen, die ein bestimmtes Präfix haben. |
ComObjCreate | Erstellt ein COM-Objekt. |
ComObject | Wrappt einen Wert und Typ zur Übergabe als Parameter oder Rückgabewert. |
ComObjEnwrap/Unwrap | Wrappt/entwrappt ein COM-Objekt. |
ComObjError | Aktiviert oder deaktiviert COM-spezifische Fehlermeldungen. |
ComObjFlags | Ermittelt oder ändert Flags, die das Verhalten eines COM-Wrapper-Objekts kontrollieren. |
ComObjGet | Gibt eine Referenz zu einem Objekt zurück, das von einer COM-Komponente bereitgestellt wird. |
ComObjMissing | Erstellt ein Objekt für "fehlende Parameter" zur Übergabe an eine COM-Methode. |
ComObjParameter | Wrappt einen Wert und Typ zur Übergabe als Parameter. |
ComObjQuery | Fragt ein COM-Objekt nach einem Interface oder Service ab. |
ComObjType | Ruft Typinformationen eines COM-Objekts ab. |
ComObjValue | Ruft den Wert oder Pointer ab, der in einem COM-Wrapper-Objekt hinterlegt ist. |
Exception | Erstellt ein Exception-Objekt für Throw (und ermöglicht eingeschränkten Zugriff auf die Aufrufliste). |
FileOpen | Ermöglicht eine objektorientierte Datei-Ein-/Ausgabe. |
Func | Ruft eine Funktionsreferenz ab. |
GetKeyName/VK/SC | Ruft den Namen/Text, virtuellen Tastencode oder Scancode einer Taste ab. |
InStr | Sucht nach einem bestimmten Vorkommen einer Zeichenkette, beginnend von links oder rechts. |
IsByRef | Ermittelt, ob für einen bestimmten ByRef-Parameter eine Variable bereitgestellt wurde. |
IsObject | Ermittelt, ob ein Wert ein Objekt ist. |
StrPut / StrGet | Kopiert eine Zeichenkette auf eine oder von einer Speicheradresse (optional mit Codepage-Umwandlung). |
Trim | Entfernt bestimmte Zeichen vom Anfang und/oder Ende einer Zeichenkette. |
RegEx (?CNum:Func) | Ruft bei der Auswertung eines RegEx-Suchmusters eine Funktion auf. |
Funktionsbibliotheken | Neue "lokale Bibliothek" und #Include <BiblName> . |
Variadische Funktionen | Funktionen können mithilfe eines Arrays eine beliebige Anzahl von Parametern akzeptieren. |
Statische Initialisierer | Statische Variablen können nun mit einem beliebigen Ausdruck initialisiert werden. |
Feature | Beschreibung |
---|---|
Allgemein | Eine allgemeine Abhandlung über das Verhalten und die Nutzung von Objekten. |
Objekt | Assoziative Arrays, die mit anderen Funktionalitäten erweiterbar sind. |
Enumerator | Ermöglicht das Enumerieren einer Sammlung von Elementen. |
File | Ermöglicht eine Schnittstelle für den Zugriff auf eine Datei. FileOpen() gibt ein Objekt dieses Typs zurück. |
Func | Repräsentiert eine benutzerdefinierte oder interne Funktion, die vom Skript aufgerufen werden kann. |
ComObject | Siehe ComObj-Funktionen oben. |
Feature | Beschreibung |
---|---|
A_Is64bitOS | Enthält 1 (true), wenn das System 64-Bit ist, oder 0 (false), wenn es 32-Bit ist. |
A_IsUnicode | In Unicode-Builds enthält diese Variable eine 1 (True). In ANSI-Builds wird sie nicht gesetzt, was faktisch False bedeutet. |
A_FileEncoding | Enthält die Standardkodierung für verschiedene Befehle; siehe FileEncoding. |
A_OSVersion | Unterstützt Windows 7 und Windows 8; siehe A_OSVersion. |
A_PriorKey | Der Name der Taste, die vor dem Drücken oder Loslassen der letzten Taste gedrückt wurde ... (Mehr) |
A_PtrSize | Enthält die Größe eines Pointers in Bytes. Entweder 4 (32-Bit) oder 8 (64-Bit). |
A_RegView | Die aktuell gesetzte Registry-Ansicht von SetRegView. |
A_ScriptHwnd | Die HWND-Nummer (eindeutige ID) des versteckten Hauptfensters des Skripts. |
Feature | Beschreibung |
---|---|
Ptr | Äquivalent zu Int in 32-Bit-Builds und Int64 in 64-Bit-Builds. Wird unterstützt von DllCall(), NumPut() und NumGet(). |
AStr, WStr | Wird nur von DllCall() unterstützt; siehe Skriptkompatibilität. |
Feature | Beschreibung |
---|---|
Kompatibilität | Wie man mit Unicode in DllCall() usw. umgeht. |
Skriptdateien | Die Nutzung von Unicode in Skriptdateien. |
SendInput | Die Nutzung von Unicode in Verbindung mit SendInput. |
Feature | Beschreibung |
---|---|
ahk_exe | Fenster können über den Namen oder Pfad des übergeordneten Prozesses (EXE-Datei) identifiziert werden. |
Debugging | Interaktive Debugging-Features (zeilenweise Ausführung usw.). |
Fehlerbehandlung | Try/Catch/Throw und erhöhter Nutzwert für A_LastError. |
GUI-Verbesserungen | Zahlreiche Verbesserungen am Gui-Befehl und ähnlichem. |
Symbolunterstützung | Ressourcenidentifikatoren und verbesserte Unterstützung für verschiedene Symbolgrößen. |
Sonstige Änderungen | Änderungen bzgl. der Skriptkompatibilität. |
Versionsverlauf | Verlauf der AutoHotkey_L-Revisionen. |
Viele Befehle unterstützen Try/Catch statt ErrorLevel für die Fehlerbehandlung. Zum Beispiel:
try { FileCopy, Datei1.txt, C:\Ordner FileDelete, C:\Ordner\Alt.txt } catch MsgBox Es ist ein Fehler aufgetreten!
Darüber hinaus setzen die folgenden Befehle nun A_LastError, um das Debuggen zu unterstützen: FileAppend, FileRead, FileReadLine, FileDelete, FileCopy, FileMove, FileGetAttrib/Time/Size/Version, FileSetAttrib/Time, FileCreateDir, RegRead, RegWrite, RegDelete.
Neben der Benutzerbibliothek in %A_MyDocuments%\AutoHotkey\Lib
und der Standardbibliothek im AutoHotkey-Verzeichnis können nun Funktionen auch aus der "lokalen Bibliothek" %A_ScriptDir%\Lib
automatisch inkludiert werden. Weitere Informationen finden Sie unter Funktionsbibliotheken.
#Include <BiblName> Inkludiert explizit eine Bibliotheksdatei, die sich in einer der Funktionsbibliotheken befinden kann.
Folgende Verbesserungen wurden am Gui-Befehl und ähnlichem vorgenommen:
Statische Variablen können nun mit einem beliebigen Ausdruck initialisiert werden. Zum Beispiel:
Sleep 500 MsgBox % "Seit dem Start des Skripts sind " Time() "ms vergangen." Time() { static Tick := A_TickCount return A_TickCount - Tick }
FileRead, FileReadLine, Loop Read und FileAppend unterstützen den Großteil der von Windows unterstützten Textkodierungen, nicht nur die Standard-ANSI-Codepage des Systems. FileEncoding kann verwendet werden, um die Standardkodierung zu bestimmen. FileRead und FileAppend können diese Standardkodierung wie folgt überschreiben:
FileRead, AusgabeVar, *Pnnn DateiName FileAppend , Text, DateiName, Kodierung
Während nnn ein numerischer Codepageidentifikator sein muss, folgt Kodierung dem gleichen Format wie FileEncoding.
Siehe auch: Skriptkompatibilität
Variadische Funktionen können mithilfe eines Arrays eine variable Anzahl von Parametern akzeptieren, während variadische Funktionsaufrufe verwendet werden können, um eine variable Anzahl von Parametern an einer Funktion zu übergeben.
Es können beliebig große Symbolressourcen, die vom Betriebssystem unterstützt werden, aus einer EXE-Datei extrahiert werden. Wenn mehrere Symbolressourcen mit unterschiedlichen Größen in einer Symbolgruppe vorhanden sind, wird automatisch die am besten geeignete Größe verwendet. Vor Revision 17 wurde eine beliebige Symbolressource vom System ausgewählt, die zunächst auf die systeminterne Standardgröße eines großen Symbols skaliert und anschließend wieder auf die gewünschte Größe skaliert wurde.
Negative Symbolnummern können verwendet werden, um eine Gruppensymbolressource innerhalb einer EXE-Datei zu identifizieren. Das folgende Beispiel zeigt, wie das Tray-Symbol mit dem Symbol ersetzt werden kann, das standardmäßig für die .ahk-Dateien verwendet wird:
Menu, Tray, Icon, %A_AhkPath%, -160