function GetWinDir: string; var dir: array [0..MAX_PATH] of Char; begin GetWindowsDirectory(dir, MAX_PATH);
Result := StrPas(dir); end;
// or:
function WindowsDirectory: string; var WinDir: PChar; begin WinDir := StrAlloc(MAX_PATH);
GetWindowsDirectory(WinDir, MAX_PATH);
Result := string(WinDir); if Result[Length(Result)] <> '\' then Result := Result + '\';
StrDispose(WinDir); end;
// or:
function GetWindowsDirectory(var S: String): Boolean; var Len: Integer; begin Len := Windows.GetWindowsDirectory(nil, 0); if Len > 0 then
begin SetLength(S, Len);
Len := Windows.GetWindowsDirectory(PChar(S), Len);
SetLength(S, Len);
Result := Len > 0; end else Result := False; end;
{ Getting the System Directory }
function SystemDir: string; var dir: array [0..MAX_PATH] of Char; begin GetSystemDirectory(dir, MAX_PATH);
Result := StrPas(dir); end;
// or:
function SystemDirectory: string; var SysDir: PChar; begin SysDir := StrAlloc(MAX_PATH);
GetSystemDirectory(SysDir, MAX_PATH);
Result := string(SysDir); if Result[Length(Result)] <> '\' then Result := Result + '\';
StrDispose(SysDir); end;
// or:
function GetSystemDirectory(var S: String): Boolean; var Len: Integer; begin Len := Windows.GetSystemDirectory(nil, 0); if Len > 0 then
begin SetLength(S, Len);
Len := Windows.GetSystemDirectory(PChar(S), Len);
SetLength(S, Len);
Result := Len > 0; end else Result := False; end;
{ Getting the Temporary Directory }
function GetTempDir: string; var Buffer: array[0..MAX_PATH] of Char; begin GetTempPath(SizeOf(Buffer) - 1, Buffer);
Result := StrPas(Buffer); end;
// or:
function GetTempPath: string; var TmpDir: PChar; begin TmpDir := StrAlloc(MAX_PATH);
GetTempPath(TmpDir, MAX_PATH);
Result := string(TmpDir); if Result[Length(Result)] <> '\' then Result := Result + '\';
StrDispose(TmpDir); end;
// or:
function GetTempPath(var S: String): Boolean; var Len: Integer; begin Len := Windows.GetTempPath(0, nil); if Len > 0 then
begin SetLength(S, Len);
Len := Windows.GetTempPath(Len, PChar(S));
SetLength(S, Len);
Result := Len > 0; end else Result := False; end;