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 jeden 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 zum Anzeigen des Umgebungsblocks oder zum Erstellen neuer Umgebungsvariablen fest. Sie können die Umgebungsvariablen auch anzeigen oder ändern, indem Sie System- in der Systemsteuerungauswählen, erweiterte Systemeinstellungenauswählen und auf Umgebungsvariablenklicken.
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; sie nicht direkt ändern. Verwenden Sie stattdessen die SetEnvironmentVariable-Funktion, um eine Umgebungsvariable zu ändern. Wenn Sie mit dem Umgebungsblock fertig sind, der von GetEnvironmentStringsabgerufen wurde, rufen Sie die FreeEnvironmentStrings--Funktion auf, um den Block freizuwerden.
Das Aufrufen SetEnvironmentVariable hat keine Auswirkungen auf die Systemumgebungsvariablen. Um Systemumgebungsvariablen programmgesteuert hinzuzufügen oder zu ändern, fügen Sie sie dem registrierungsschlüssel HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment hinzu, und übertragen Sie dann eine WM_SETTINGCHANGE Nachricht, wobei lParam auf die Zeichenfolge "Environment" festgelegt ist. Auf diese Weise 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 technische Einschränkung für die Größe des Umgebungsblocks. Es gibt jedoch praktische Beschränkungen, je nachdem, welche Mechanismen für den Zugriff auf den Block verwendet werden. 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 technische Einschränkung 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, was der Wert ist.
Um eine Kopie des Umgebungsblocks für einen bestimmten Benutzer abzurufen, verwenden Sie die CreateEnvironmentBlock--Funktion.
Verwenden Sie zum Erweitern von Umgebungsvariablenzeichenfolgen die ExpandEnvironmentStrings-Funktion.
Verwandte Themen