Eine weitere Möglichkeit ist
Delphi-Quellcode:
function GetUserName:
string;
var
lpBuffer : LPTSTR;
lpnSize : DWORD;
lSuccess : Boolean;
lLastError: Cardinal;
begin
lpBuffer :=
nil;
lpnSize := 0;
repeat
lSuccess :=
Winapi.Windows.GetUserName( lpBuffer, lpnSize );
if not lSuccess
then
begin
lLastError := GetLastError( );
case lLastError
of
ERROR_INSUFFICIENT_BUFFER:
begin
SetLength( Result, lpnSize );
lpBuffer := LPTSTR( Result );
end;
else
RaiseLastOSError( lLastError, sLineBreak + '
GetUserName' );
end;
end
else
SetLength( Result, lpnSize - 1 );
until lSuccess;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)