Schlüsselwortreferenz


#include

Beschreibung anzeigen in

Bindet eine Datei in das aktuelle Skript ein.

#include "[path\]filename"
#include

Parameter

filename Der Dateiname des Skriptes, das eingebunden werden soll. Der Pfad ist optional. Er muss einen String sein - er darf keine Variable sein.
Wenn "..." verwendet wird, wird der Dateiname als relativ zum aktuellen Skript aufgefasst.
Wenn <...> verwendet wird, wird der Dateiname als relativ zum Include-Verzeichnis aufgefasst (normalerweise C:\Programme\AutoIt3\Include). Das Include-Verzeichnis beinhaltet bereits viele vor-produzierte Funktionen, die eingebunden und dann verwendet werden können.

Bemerkungen

Andere Skripte können in ein AutoIt-Script mittels des #include-Kommandos eingebunden werden. Dies kann entweder im .au3 oder .a3x Format sein.
Der Inhalt der eingebundenen Datei wird an der Stelle des #include-Befehls eingefügt. Meistens ist dies der Anfang des Skripts, so dass jede Variable oder Konstante die in der eingebunden Text deklariert ist für den Rest des Skripts zur Verfügung steht.

Wenn man eine Datei mehrfach einbindet und damit eine benutzerdefinierte Funktion mehrfach existieren würde, wird man folgenden Fehler erhalten: "Duplicate function". Wenn man eine Include-Datei schreibt, die das verursachen könnte, muss man sicherstellen, dass die erste Zeile #include-once beinhaltet, sodass die Datei nicht mehrfach eingebunden werden kann.

Es gibt einen besonderen Registrywert, namens "Include" welche in "HKEY_CURRENT_USER\Software\AutoIt v3\AutoIt" erstellt wurde. Es sollte ein REG_SZ (String) Wert sein. Die Inhalte dieses Wertes sind durch ein Semikolon getrennte Verzeichnisse, welche zusätzlich zu den Standardordnern durchsucht werden sollten, wenn #include's im Skript angegeben wird.

Die von AutoIt verwendete Suchreihenfolge hängt davon ab, welche Form von #include verwendet wird. Die Tabellen unten zeigen für beide Formen die Reihenfolge, in der die Verzeichnisse durchsucht werden.

Verwendung von #include <>

Standard library Der Pfad des aktuell laufenden Interpreter mit dem Anhang "\Include" wird durchsucht.
User-defined libraries Der oben erwähnte Registrywert wird gelesen und jedes Verzeichnis wird in der Reihenfolge durchsucht in der sie erscheinen.
Script directory Das Verzeichnis des momentan ausgeführten Skripts.

Verwendung von #include "" (Dies ist die Umkehrung von #include <>).
Script directory Das Verzeichnis des momentan ausgeführten Skripts.
User-defined libraries Der oben erwähnte Registrywert wird gelesen und jedes Verzeichnis wird in der Reihenfolge durchsucht in der sie erscheinen.
Standard Library Der Pfad des aktuell laufenden Interpreter mit dem Anhang "\Include" wird durchsucht.

Folgendes ist bei der Verwendung der /AutoIt3ExecuteScript Option zu beachten. Seit die Standard-Library im aktuellen Interpreter's Verzeichnis durchsucht wird, wird die Standard-Library-Funktion nicht mehr gefunden; Diese Library wird nur noch gefunden, wenn AutoIt3.exe durchlaufen wird. Es ist empfehlenswert, ein Skript in das .a3x Format zu kompilieren, bevor man versucht es mit /AutoIt3ExecuteScript laufen zu lassen.

Aut2Exe verwendet den selben Algorithmus wie AutoIt3.exe, mit dem einzigen Unterschied, dass es nach dem Sub-Include-Ordner auch in einem Schwesternordner zu sich selbst schaut (..\Include).

Mit Opt("TrayIconDebug",1) können nur 64 include Dateinamen im Tray-ToolTip dargestellt werden. Bei den anderen wird kein Dateiname angezeigt.

Folgende Erleichterungen funktionieren, wenn man SciTE4AutoIt3 installiert hat.
Steht der Cursor in der Zeile eines Funktionsaufrufes (z. B. "_ArraySort($array)" und man drückt die Tastenkombination "STRG+j", springt man automatisch zu der Funktion.
Dort ist dann ersichtlich, in welchem include diese Funktion steht und wie die Funktion programmiert wurde.
Dabei ist es egal ob die Funktion in einer separaten UDF-Datei steht oder im Skript selbst.
Steht der Cursor in der Zeile eines Includes (z. B. "#include") und man drückt die Tastenkombination "ALT+i", springt man automatisch in die Datei mit dieser Funktion.

Verwandte Funktionen

#include-once

Beispiel

#include "include-TIME.au3"

MsgBox($MB_SYSTEMMODAL, "", "Beispiel")
#include <MsgBoxConstants.au3>
Exit

; Das starten von script.au3 zeigt zwei Nachrichtenfenster an:
; eines mit 'Beispiel', gefolgt mit einem mit der Zeit.