#NoEnv [v1.0.43.08+]

Vermeidet es, leere Variablen zu überprüfen, um zu sehen, ob es sich um Umgebungsvariablen handelt (für alle neuen Skripte empfohlen).

#NoEnv

Geben Sie #NoEnv 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 nicht die WinDir-Umgebungsvariable abrufen (aber könnte mit WinDir := A_WinDir am Anfang des Skripts umgangen werden).

Die #NoEnv-Direktive wird aus folgenden Gründen für neue Skripte empfohlen:

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

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.

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

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

EnvGet, ComSpec, ProgramFiles, A_WinDir