Как получить переменные окружения типа PATH и PROMPT?
Материал из DRKB
Как получить переменные окружения типа PATH и PROMPT?[править | править код]
Вариант 1[править | править код]
Для этого используется API функция GetEnvironmentVariable.
GetEnvironmentVariable возвращает значения:
- В случае удачного выполнения функции, возвращаемое значение содержит количество символов, хранящихся в буфере, не включая последнего нулевого.
- Если указанная переменная окружения для текущего процесса не найдена, то возвращаемое значение равно нулю.
- Если буфер не достаточного размера, то возвращаемое значение равно требуемому размеру для хранения строки значения и завершающего нулевого символа.
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;
ID: 02207
Вариант 2[править | править код]
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;
Source: Взято из http://forum.sources.ru
ID: 02208