Hier nochmal der richtige Code zum Auslesen des Profilverzeichnisses:
Delphi-Quellcode:
interface
function GetProfilesDirectoryA(lpProfilesDir: LPSTR; var lpcchSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetProfilesDirectoryA}
function GetProfilesDirectoryW(lpProfilesDir: LPWSTR; var lpcchSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetProfilesDirectoryW}
function GetProfilesDirectory(lpProfilesDir: LPTSTR; var lpcchSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetProfilesDirectory}
implementation
const
userenvlib = 'userenv.dll';
function GetProfilesDirectoryA; external userenvlib name 'GetProfilesDirectoryA';
function GetProfilesDirectoryW; external userenvlib name 'GetProfilesDirectoryW';
function GetProfilesDirectory; external userenvlib name 'GetProfilesDirectoryA';
function LeseBenutzerProfilVerzeichnis:string;
var
len : DWORD;
begin
len := 264;
SetLength(result, len);
if not GetProfilesDirectoryA(PChar(Result), len) then
RaiseLastWin32Error;
SetLength(Result, len);
end;
Über die
JEDI API Library (
http://jedi-apilib.sourceforge.net/ ) erhält man Zugriff auf alle
Funktionen der
DLL userenv.dll.
Reinschauen lohnt sich.