Miljövariabler
Varje process har ett miljöblock som innehåller en uppsättning miljövariabler och deras värden. Det finns två typer av miljövariabler: användarmiljövariabler (inställda för varje användare) och systemmiljövariabler (inställda för alla).
Som standard ärver en underordnad process miljövariablerna i den överordnade processen. Program som startas av kommandoprocessorn ärver kommandoprocessorns miljövariabler. Om du vill ange en annan miljö för en underordnad process skapar du ett nytt miljöblock och skickar en pekare till den som en parameter till funktionen CreateProcess.
Kommandoprocessorn tillhandahåller kommandot ange för att visa dess miljöblock eller skapa nya miljövariabler. Du kan också visa eller ändra miljövariablerna genom att välja System från Kontrollpanelen, välja Avancerade systeminställningaroch klicka på Miljövariabler.
Varje miljöblock innehåller miljövariablerna i följande format:
-
Var1=Value1\0
Var2=Value2\0
Var3=Value3\0
...
VarN=ValueN\0\0
Namnet på en miljövariabel får inte innehålla ett likhetstecken (=).
Funktionen GetEnvironmentStrings returnerar en pekare till miljöblocket i anropsprocessen. Detta bör behandlas som ett skrivskyddat block. ändra den inte direkt. Använd i stället funktionen SetEnvironmentVariable för att ändra en miljövariabel. När du är klar med miljöblocket som hämtats från GetEnvironmentStringsanropar du funktionen FreeEnvironmentStrings för att frigöra blocket.
Att anropa SetEnvironmentVariable har ingen effekt på systemmiljövariablerna. Om du vill lägga till eller ändra systemmiljövariabler programmatiskt lägger du till dem i HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment registernyckeln och sänder sedan ett WM_SETTINGCHANGE meddelande med lParam inställt på strängen "Miljö". På så sätt kan program, till exempel gränssnittet, hämta dina uppdateringar.
Den maximala storleken för en användardefinierad miljövariabel är 32 767 tecken. Det finns ingen teknisk begränsning av miljöblockets storlek. Det finns dock praktiska begränsningar beroende på vilken mekanism som används för att komma åt blocket. En batchfil kan till exempel inte ange en variabel som är längre än den maximala kommandoradslängden.
Windows Server 2003 och Windows XP: Den maximala storleken på miljöblocket för processen är 32 767 tecken. Från och med Windows Vista och Windows Server 2008 finns det ingen teknisk begränsning av storleken på miljöblocket.
Funktionen GetEnvironmentVariable avgör om en angiven variabel definieras i anropsprocessens miljö och i så fall vad dess värde är.
Om du vill hämta en kopia av miljöblocket för en viss användare använder du funktionen CreateEnvironmentBlock.
Om du vill expandera miljövariabelsträngar använder du funktionen ExpandEnvironmentStrings.
Relaterade ämnen