С любым процессом связан блок переменных окружения — область памяти, выделенная в адресном пространстве процесса. Каждый блок содержит группу строк такого вида:
VarName1=VarValue1\0 VarName2=VarValue2\0 VarName3=VarValue3\0
...
VarNameX=VarValueX\0
\0
Первая часть каждой строки — имя переменной окружения. Зa ним следует знак равенства и значение, присваиваемое переменной. Строки в блоке переменных окружения должны быть отсортированы в алфавитном порядке по именам переменных.
Знак равенства разделяет имя переменной и ее значение, так что его нельзя использовать как символ в имени переменной. Важную роль играют и пробелы. Например, объявив две переменные.
XYZ= Windows (обратите внимание на пробел за знаком равенства) ABC=Windows
и сравнив значения переменных ХУZ и АВС, нетрудно заметить, что система их различает, — она учитывает любой пробел, поставленный перед знаком равенства или после него.
Вот что будет, если записать, скажем, так
XYZ =Home (обратите внимание на пробел перед знаком равенства) XYZ=Work
Первую переменная будет с именем "XYZ", содержать строку "Home", а вторая переменная "XYZ ", содержать строку "Work".
|
|
Конец блока переменных окружения помечается дополнительным нулевым сим волом
Замечание:
Чтобы создать исходный набор переменных окружения для Windows 98, надо модифицировать файл Autoexec bat, поместив в него группу строк SET в виде
SET VarName=VarValue
При перезагрузке система учтет новое содержимое файла Autoexec.bat, и тогда любые заданные Вами переменные окружения станут доступны всем процессам, инициируемым в сеансе работы с Windows 98.
При регистрации пользователя на входе в Windows 2000 система создает процесс-оболочку, связывая с ним группу строк — переменных окружения. Система получает начальные значения этих строк, анализируя два раздела в реестре. В первом:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Environment содержится список переменных окружения, относящихся к системе, а во втором: HKEY_CURRENT_USER\Environment находится список переменных окружения, относящихся к пользователю, который в настоящее время зарегистрирован в системе.
Пользователь может добавлять, удалять или изменять любые переменные через апплет System из Control Panel. B этом апплете надо открыть вкладку Advanced и щелкнуть кнопку Environment Variables — тогда на экране появится следующее диалоговое окно.
Рис. 6.1 Диалоговое окно переменных окружения
Модифицировать переменные из списка System Variables разрешается только пользователю с правами администратора.
Переменные окружения обычно применяются для тонкой настройки приложения. Пользователь создает и инициализирует переменную окружения, затем запускает приложение, и оно, обнаружив эту переменную, проверяет ее значение и соответствующим образом настраивается.