Zmienne środowiskowe
Każdy proces ma blok środowiskowy zawierający zestaw zmiennych środowiskowych i ich wartości. Istnieją dwa typy zmiennych środowiskowych: zmienne środowiskowe użytkownika (ustawione dla każdego użytkownika) i systemowe zmienne środowiskowe (ustawione dla wszystkich).
Domyślnie proces podrzędny dziedziczy zmienne środowiskowe procesu nadrzędnego. Programy uruchamiane przez procesor poleceń dziedziczą zmienne środowiskowe procesora poleceń. Aby określić inne środowisko dla procesu podrzędnego, utwórz nowy blok środowiska i przekaż do niego wskaźnik jako parametr funkcji CreateProcess.
Procesor poleceń udostępnia ustawić polecenie, aby wyświetlić blok środowiska lub utworzyć nowe zmienne środowiskowe. Możesz również wyświetlić lub zmodyfikować zmienne środowiskowe, wybierając pozycję System w panelu sterowania, wybierając pozycję Zaawansowane ustawienia systemui klikając zmienne środowiskowe.
Każdy blok środowiska zawiera zmienne środowiskowe w następującym formacie:
-
var1=Value1\0
var2=value2\0
var3=Value3\0
...
= ValueN\0\0
Nazwa zmiennej środowiskowej nie może zawierać znaku równości (=).
Funkcja GetEnvironmentStrings zwraca wskaźnik do bloku środowiskowego procesu wywołującego. Powinno to być traktowane jako blok tylko do odczytu; nie należy modyfikować go bezpośrednio. Zamiast tego użyj funkcji SetEnvironmentVariable, aby zmienić zmienną środowiskową. Po zakończeniu pracy z blokiem środowiska uzyskanym z GetEnvironmentStringswywołaj funkcję FreeEnvironmentStrings, aby zwolnić blok.
Wywoływanie SetEnvironmentVariable nie ma wpływu na zmienne środowiskowe systemu. Aby programowo dodać lub zmodyfikować zmienne środowiskowe systemu, dodaj je do klucza rejestru HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment, a następnie rozgłaszaj komunikat WM_SETTINGCHANGE z lParam ustawiony na ciąg "Środowisko". Umożliwia to aplikacjom, takim jak powłoka, pobieranie aktualizacji.
Maksymalny rozmiar zmiennej środowiskowej zdefiniowanej przez użytkownika wynosi 32 767 znaków. Nie ma żadnych ograniczeń technicznych dotyczących rozmiaru bloku środowiska. Istnieją jednak praktyczne ograniczenia w zależności od mechanizmu używanego do uzyskiwania dostępu do bloku. Na przykład plik wsadowy nie może ustawić zmiennej dłuższej niż maksymalna długość wiersza polecenia.
Windows Server 2003 i Windows XP: Maksymalny rozmiar bloku środowiska dla procesu wynosi 32 767 znaków. Począwszy od systemów Windows Vista i Windows Server 2008, nie ma żadnych ograniczeń technicznych dotyczących rozmiaru bloku środowiska.
Funkcja GetEnvironmentVariable określa, czy określona zmienna jest zdefiniowana w środowisku procesu wywołującego, a jeśli tak, jaka jest jego wartość.
Aby pobrać kopię bloku środowiska dla danego użytkownika, użyj funkcji CreateEnvironmentBlock.
Aby rozwinąć ciągi zmiennych środowiskowych, użyj funkcji ExpandEnvironmentStrings.
Tematy pokrewne