#Include / #IncludeAgain

Veranlasst das Skript, sich so zu verhalten, als wäre der Inhalt der angegebenen Datei an genau dieser Stelle vorhanden.

#Include DateiOderVerzName
#Include <BiblName>
#IncludeAgain DateiOderVerzName

Parameter

DateiOderVerzName

Der Pfad einer Datei oder eines Verzeichnisses, wie unten beschrieben. Dieser Parameter darf keine Anführungszeichen, Platzhalter oder Variablenverweise außer %A_ScriptDir%, %A_AppData%, %A_AppDataCommon% und (in v1.1.11+) %A_LineFile% enthalten. Escapesequenzen außer Semikolon (`;) dürfen weder verwendet werden, noch sind sie notwendig, weil Zeichen wie z. B. Prozentzeichen als direkt geschriebener Text behandelt werden.

Datei: Name der Datei, die eingebunden werden soll, und im Start- oder Arbeitsverzeichnis vermutet wird, wenn kein absoluter Pfad angegeben ist (außer bei ahk2exe, dort wird die Datei im eigenen Verzeichnis des Skripts vermutet). Hinweis: SetWorkingDir hat keine Auswirkung auf #Include, weil die Direktive verarbeitet wird, bevor das Skript ausgeführt wird.

Verzeichnis: Geben Sie ein Verzeichnis anstelle einer Datei an, um das Arbeitsverzeichnis für alle nachfolgenden Vorkommnisse von #Include und FileInstall zu ändern. Hinweis: Diese Änderung hat keinen Einfluss auf das anfänglich gesetzte Arbeitsverzeichnis des Skripts (A_WorkingDir). Um das zu ändern, verwendet man SetWorkingDir im obersten Bereich des Skripts.

BiblName

[AHK_L 57+]: Der Name einer Bibliotheksdatei oder -funktion. Zum Beispiel würden sowohl #Include <Bibl> als auch #Include <Bibl_Funktion> Bibl.ahk aus einem der Funktionsbibliotheksordner einbinden.

Bemerkungen

Ein Skript behandelt die #Include-Direktive, als wäre der Inhalt der Datei, die eingebunden werden soll, an genau dieser Stelle vorhanden (als wäre der Inhalt der Datei sozusagen vorher kopiert und dann dort eingefügt wurden). Diese Direktive ist daher nicht in der Lage, zwei einzelne Skripte zu einem funktionierenden Skript zusammenzufügen (um das zu erreichen, siehe www.autohotkey.com/forum/topic18545.html).

#Include stellt sicher, dass Dateiname nur einmal eingebunden wird, falls es mehrmals im Skript zum Inkludieren angegeben ist. #IncludeAgain hingegen ermöglicht es, eine Datei mehrmals zu einzubinden, ansonsten ist sie in allen anderen Aspekten identisch zu #Include.

Vor dem Dateiname-Parameter kann optional *i und ein einzelnes Leerzeichen gesetzt werden, um alle Fehler zu ignorieren, die beim Lesen der einzubindenden Datei auftreten könnten. Zum Beispiel: #Include *i Spezialoptionen.ahk. Diese Option sollte nur verwenden werden, wenn der Inhalt der einzubindenden Datei nicht für die Ausführung des Hauptskripts relevant ist.

Zeilen, die im Hauptfenster via ListLines oder Menüpunkt View->Lines angezeigt werden, sind immer in der Reihenfolge nummeriert, wie sie aktuell in der Datei angeordnet sind. Mit anderen Worten: Wenn eine neue Datei eingebunden wird, erhöht sich die Zeilennummerierung des Hauptskripts nur um eine Zeile (das ist die #Include-Zeile selbst). Dies gilt nicht für kompilierte Skripte, weil dort die einzubindenden Dateien zu einem großen Skript zusammengefügt wurden.

#Include wird oft verwendet, um Funktionen zu laden, die in einer externen Datei definiert sind. Im Gegensatz zu Subroutinen-Labels können Funktionen ganz oben im Skript eingebunden werden, ohne dass der automatische Ausführungsbereich beeinträchtigt wird.

#Include kann wie alle anderen Direktiven nicht bedingt ausgeführt werden. Das folgende Beispiel würde also nicht funktionieren:

if x = 1
    #Include BeliebigeDatei.ahk  ; Diese Zeile wird ohne Beachtung des X-Wertes ausgeführt.
    y = 2  ; Und diese Zeile würde sich auf das obere IF beziehen, weil Direktiven nicht mit IFs verbunden werden können.

Sie können Dateien automatisch einbinden lassen (ohne #Include verwenden zu müssen), indem Sie eine Bibliotheksfunktion via Name aufrufen.

[v1.1.11+]: Geben Sie %A_LineFile%\.. an, um das Verzeichnis der aktuellen Datei zu nutzen, selbst wenn sie nicht die Hauptskriptdatei ist. Zum Beispiel #Include %A_LineFile%\..\script.ahk.

Siehe auch

Funktionsbibliotheken, Funktionen, FileInstall

Beispiel

#Include C:\Meine Dokumente\Skripte\Hilfsprogramm-Subroutinen.ahk
#Include %A_ScriptDir%  ; Ändert das Arbeitsverzeichnis für nachfolgende #Includes und FileInstalls.
#Include C:\Meine Skripte  ; Das gleiche wie oben, aber für ein explizit benanntes Verzeichnis.