Delphi - база знаний

Как установить переменные окружения?


Как установить переменные окружения?



Следующая простая подпрограмма создаёт новые значения в переменных окружения. Если переменной окружения не существует, то она создаётся. Если переменной окружения установить значение пустой строки, то переменная удаляется. Функция возвращает 0, если значение переменной установлено или переменная создана успешно, либо возвратит значение ошибки Windows вслучае неудачи. Обратите внимание, что размер пространства доступного для переменных окружения ограничен.

function SetEnvVarValue(const VarName, 
  VarValue: string): Integer; 
begin 
  // Просто вызываем API функцию
  if Windows.SetEnvironmentVariable(PChar(VarName), 


    PChar(VarValue)) then 
    Result := 0 
  else 
    Result := GetLastError; 
end

ЗАМЕЧАНИЕ: данный способ позволяет делать изменения в переменных окружения только для текущего процесса либо для дочерних процессов, порождённых текущим.

Для того, чтобы передать какую-либо переменную окружения в дочерний процесс просто:

1) Создайте новую переменную окружения при помощи SetDOSEnvVar.
2) Запустите новую программу.

А вот как выглядит пример передачи текущих переменных окружения + переменной FOO=Bar в дочерний процесс:

{ snip ... } 
var 
  ErrCode: Integer; 
begin 
  ErrCode := SetEnvVarValue('FOO', 'Bar'); 
  if ErrCode = 0 then 
    WinExec('MyChildProg.exe', SW_SHOWNORMAL); 
  else 
    ShowMessage(SysErrorMessage(ErrCode)); 
end
{ ... end snip } 

Взято с Исходников.ru



Содержание раздела