Вариант 1:

 

Для этого используется API функция GetEnvironmentVariable.

GetEnvironmentVariable возвращает значения:

- В случае удачного выполнения функции, возвращаемое значение содержит количество символов, хранящихся в буфере, не включая последнего нулевого.

- Если указанная переменная окружения для текущего процесса не найдена, то возвращаемое значение равно нулю.

 

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

Code:

ExpandEnvironmentStrings( LPCTSTR lpSrc, LPTSTR lpDst, DWORD nSize );

 

Автор: Nomadic

 

Code:

procedure GetEnvironmentStrings(ss: TStrings);

{Переменные среды}

var

ptr: PChar;

s: string;

Done: boolean;

begin

ss.Clear;

s := '';

Done := FALSE;

ptr := windows.GetEnvironmentStrings;

while Done = false do begin

   if ptr^ = #0 then begin

     inc(ptr);

     if ptr^ = #0 then Done := TRUE

     else ss.Add(s);

     s := ptr^;

   end else s := s + ptr^;

   inc(ptr);

end;

end;