Вариант 1:
Для этого используется API функция GetEnvironmentVariable.
GetEnvironmentVariable возвращает значения:
- В случае удачного выполнения функции, возвращаемое значение содержит количество символов, хранящихся в буфере, не включая последнего нулевого.
- Если указанная переменная окружения для текущего процесса не найдена, то возвращаемое значение равно нулю.
- Если буфер не достаточного размера, то возвращаемое значение равно требуемому размеру для хранения строки значения и завершающего нулевого символа.
Code: |
function GetDOSEnvVar(const VarName: string): string; var i: integer; begin Result := ''; try i := GetEnvironmentVariable(PChar(VarName), nil, 0);
if i > 0 then begin SetLength(Result, i); GetEnvironmentVariable(Pchar(VarName), PChar(Result), i); end; except Result := ''; end; end; |
Вариант 2:
Code: |
procedure TMainFrm.AddVarsToMemo(Sender: TObject); var p : pChar; begin Memo1.Lines.Clear; Memo1.WordWrap := false; p := GetEnvironmentStrings; while p^ <> #0 do begin Memo1.Lines.Add(StrPas(p)); inc(p, lStrLen(p) + 1); end; FreeEnvironmentStrings(p); end; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!