#NoEnv [v1.0.43.08+]


Vermeidet die Überprüfung leerer Variablen, um festzustellen, ob es Umgebungsvariablen sind (empfohlen für alle neuen Scripts).

#NoEnv

Eine Zeile mit #NoEnv irgendwo im Script schützt leere Variablen davor, für mögliche Umgebungsvariablen gehalten zu werden. Beispiel:

#NoEnv
MsgBox %WinDir%

Hier würde nicht die WinDir-Umgebungsvariable zurückgeliefert (dies ist jedoch mit WinDir := A_WinDir am Anfang des Scripts machbar).

Die Angabe von #NoEnv wird für alle neuen Scripts empfohlen, denn:

  1. Es verbessert die Leistung wesentlich, wenn leere Variablen in einem Ausdruck oder Befehl verwendet werden. Auch die Performance von DllCall bei der Verwendung von nicht "gequoteten" Parameter-Typen (z.B. int gegenüber "int") wird erhöht.
  2. Es schützt vor Script-Fehlern, die durch unerwartete Übereinstimmung der Namen von Umgebungsvariablen und Script-Variablen verursacht werden.
  3. Bei einer späteren AutoHotkey-Version könnte dieses Verhalten voreingestellt sein (allerdings wird eine solche Änderung nicht vor Juni 2008 erwartet).

Um den Übergang zu #NoEnv zu erleichtern, wurden die eingebauten Variablen Comspec und ProgramFiles hinzugefügt. Sie enthalten dieselben Strings wie die entsprechenden Umgebungsvariablen.

Wird #NoEnv verwendet, sollte sich das Script die Umgebungsvariablen mit EnvGet oder mit Hilfe eingebauter Variablen wie A_WinDir holen.

Siehe auch

EnvGet, Comspec, ProgramFiles, A_WinDir