Umgebungsvariablen

Jeder Prozess verfügt über einen Umgebungsblock, der eine Reihe von Umgebungsvariablen und deren Werte enthält. Es gibt zwei Arten von Umgebungsvariablen: Benutzerumgebungsvariablen (für jeden Benutzer festgelegt) und Systemumgebungsvariablen (für alle festgelegt).

Standardmäßig erbt ein untergeordneter Prozess die Umgebungsvariablen des übergeordneten Prozesses. Programme, die vom Befehlsprozessor gestartet werden, erben die Umgebungsvariablen des Befehlsprozessors. Um eine andere Umgebung für einen untergeordneten Prozess anzugeben, erstellen Sie einen neuen Umgebungsblock, und übergeben Sie einen Zeiger als Parameter an die CreateProcess-Funktion .

Der Befehlsprozessor stellt den Befehl set bereit, um seinen Umgebungsblock anzuzeigen oder neue Umgebungsvariablen zu erstellen. Sie können die Umgebungsvariablen auch anzeigen oder ändern, indem Sie im SystemsteuerungSystem auswählen, Erweiterte Systemeinstellungen auswählen und auf Umgebungsvariablen klicken.

Jeder Umgebungsblock enthält die Umgebungsvariablen im folgenden Format:

Var1=Wert1\0
Var2=Wert2\0
Var3=Wert3\0
...
VarN=ValueN\0\0

Der Name einer Umgebungsvariable darf kein Gleichheitszeichen (=) enthalten.

Die GetEnvironmentStrings-Funktion gibt einen Zeiger auf den Umgebungsblock des aufrufenden Prozesses zurück. Dies sollte als schreibgeschützter Block behandelt werden. ändern Sie sie nicht direkt. Verwenden Sie stattdessen die Funktion SetEnvironmentVariable , um eine Umgebungsvariable zu ändern. Wenn Sie mit dem Von GetEnvironmentStrings abgerufenen Umgebungsblock fertig sind, rufen Sie die FreeEnvironmentStrings-Funktion auf, um den Block zu befreien.

Das Aufrufen von SetEnvironmentVariable hat keine Auswirkungen auf die Systemumgebungsvariablen. Um Systemumgebungsvariablen programmgesteuert hinzuzufügen oder zu ändern, fügen Sie sie dem HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment Registrierungsschlüssel hinzu, und senden Sie dann eine WM_SETTINGCHANGE Nachricht, bei der lParam auf die Zeichenfolge "Environment" festgelegt ist. Dadurch können Anwendungen, z. B. die Shell, Ihre Updates abrufen.

Die maximale Größe einer benutzerdefinierten Umgebungsvariable beträgt 32.767 Zeichen. Es gibt keine technischen Einschränkungen für die Größe des Umgebungsblocks. Es gibt jedoch praktische Grenzen, abhängig vom Mechanismus, der für den Zugriff auf den Block verwendet wird. Beispielsweise kann eine Batchdatei keine Variable festlegen, die länger als die maximale Befehlszeilenlänge ist.

Windows Server 2003 und Windows XP: Die maximale Größe des Umgebungsblocks für den Prozess beträgt 32.767 Zeichen. Ab Windows Vista und Windows Server 2008 gibt es keine technischen Einschränkungen für die Größe des Umgebungsblocks.

Die GetEnvironmentVariable-Funktion bestimmt, ob eine angegebene Variable in der Umgebung des aufrufenden Prozesses definiert ist, und wenn ja, welchen Wert sie hat.

Verwenden Sie die Funktion CreateEnvironmentBlock , um eine Kopie des Umgebungsblocks für einen bestimmten Benutzer abzurufen.

Verwenden Sie zum Erweitern von Umgebungsvariablenzeichenfolgen die Funktion ExpandEnvironmentStrings .

Ändern von Umgebungsvariablen

Benutzerumgebungsvariablen