Как получить переменные окружения типа PATH и PROMPT? |
Previous Top Next |
Вариант 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; |
©Drkb::02207
Вариант 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; |
©Drkb::02208
Взято из http://forum.sources.ru