来源:远方网络 | 2005-12-29 14:37:05 | (有5374人读过)
{ Getting the Windows Directory }
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;
// ****************************
// Example Calls:
procedure TForm1.Button1Click(Sender: TObject); begin label1.Caption := GetWinDir; label2.Caption := GetSysDir; label3.Caption := GetTempDir; end;
学有测试,不过先放这,有空再试!很有用的哟。
|