#NoEnv [v1.0.43.08+]

Verhindert die Überprüfung von leeren Variablen, um festzustellen, ob es sich um Umgebungsvariablen handelt (für alle neuen Skripte empfohlen).

#NoEnv

Geben Sie diese Direktive irgendwo im Skript an, um AutoHotkey daran zu hindern, leere Variablen als potenzielle Umgebungsvariablen zu interpretieren. Zum Beispiel:

#NoEnv
MsgBox %WinDir%

Das obige Beispiel würde die WinDir-Umgebungsvariable nicht abrufen (was aber mit WinDir := A_WinDir am Anfang des Skripts umgangen werden könnte).

Diese Direktive wird aus folgenden Gründen für neue Skripte empfohlen:

  1. Sie erhöht deutlich die Performanz, wann immer leere Variablen in einem Ausdruck oder Befehl verwendet werden. Sie erhöht auch die Performanz der DllCall-Funktion, wenn anführungszeichenlose Parametertypen verwendet werden (z.B. Int statt "Int").
  2. Sie verhindert Skriptbugs, die durch Umgebungsvariablen verursacht werden, deren Namen unerwartet mit den vom Skript verwendeten Variablen übereinstimmen.
  3. AutoHotkey v2 wird dieses Verhalten zum Standard machen.

Um den Übergang zu #NoEnv zu erleichtern, wurden die internen Variablen ComSpec und ProgramFiles hinzugefügt. Sie enthalten die gleichen Zeichenketten wie die entsprechenden Umgebungsvariablen.

Wenn #NoEnv aktiv ist, können Umgebungsvariablen via EnvGet abgerufen oder interne Variablen wie A_WinDir verwendet werden.

#NoEnv kann wie alle anderen Direktiven nicht bedingt ausgeführt werden.

EnvGet, ComSpec, ProgramFiles, A_WinDir