Also ich vermute einfach mal dass es an der function GetEnvVarValue Funktion liegt. Ich bin mir nicht sicher, ob dies so richtig funktioniert. Mach die Funktion mal so, das ist auch sicherer.
Delphi-Quellcode:
function GetEnvVarValue(const VarName: string): string;
var
BufSize: Integer; // buffer size required for value
Buffer : PChar;
begin
//BuffSize ist nur die Textlänge, ohne nullterminiert.
BufSize := GetEnvironmentVariable(PChar(VarName), nil, 0);
if BufSize > 0 then
begin
//Speicher setzen
GetMem(Buffer, (BufSize + 1)*SizeOf(Char)); //BufSize ist ohne nullterminierte, deshalb BufSize +1;
GetEnvironmentVariable(PChar(VarName),
Buffer, BufSize);
Result := Buffer;
FreeMem(Buffer);
end
else
// No such environment variable
Result := '';
end;