type EXTENDED_NAME_FORMAT=(NameUnknown,NameFullyQualifiedDN,NameSamCompatible,NameDisplay);
声明API方法
function GetUserNameEx(NameFormat:EXTENDED_NAME_FORMAT;lpNameBuffer:String; var lpnSize:integer) : integer; external 'GetUserNameExA@secur32.dll stdcall';
实现方法
function GetUserName():string; var Ret:integer; begin lpNameBuffer:='0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'; lpNameBuffer:=lpNameBuffer+lpNameBuffer; ret:=Length(lpNameBuffer); NameFormat:= NameSamCompatible; If GetUserNameEx(NameFormat, lpNameBuffer, Ret)<>0 Then begin if lpNameBuffer[Ret]=#0 then begin Ret:=Ret-1; end result:=Copy(lpNameBuffer,1,Ret); end else begin result:='-1'; end end;