// 1. Einzelne Variable abfragen
function GetEnvVar(nam: string): string;
var
p: PChar;
dw: DWord;
begin
dw := 1024;
getmem(p, dw);
GetEnvironmentVariable(PChar(nam), p, dw);
result := p;
freemem(p);
end;
// Beispielaufruf
procedure TForm1.Button3Click(Sender: TObject);
var s: string;
begin
s := GetEnvVar('PATH');
// Zeilenumbruch (nur für Anzeige) aufbereiten
// (nicht zur Weiterverwendung geeignet).
s := stringreplace(s, #32, #160, [rfReplaceall]);
s := stringreplace(s, ';', '; ', [rfReplaceall]);
showmessage(s);
end;
// -----------------------------------------
// 2. Alle Variablen auflisten
procedure GetEnvStrs(ts: TStrings);
var p, s: PChar;
begin
p := GetEnvironmentStrings;
s := p;
ts.clear;
repeat
ts.add(s);
s := s + succ(StrLen(s));
until s^ = #0;
FreeEnvironmentStrings(p);
end;
// Beispielaufruf
procedure TForm1.Button4Click(Sender: TObject);
begin
Memo1.Scrollbars := ssBoth;
Memo1.Lines.beginupdate;
GetEnvStrs(Memo1.Lines);
Memo1.setfocus;
Memo1.selstart := 0;
postmessage(Memo1.handle, em_scrollcaret, 0, 0);
Memo1.lines.endupdate;
end;