Содержание материала

 

Code:

function GetUserFromWindows: string;

var

UserName : string;

UserNameLen : Dword;

begin

UserNameLen := 255;

SetLength(userName, UserNameLen);

if GetUserName(PChar(UserName), UserNameLen) then

   Result := Copy(UserName,1,UserNameLen - 1)

else

   Result := '';

end;

 

 

Code:

function GetCurrentUserName: string;

const

  cnMaxUserNameLen = 254;

var

  sUserName: string;

  dwUserNameLen: DWORD;

begin

  dwUserNameLen := cnMaxUserNameLen - 1;

  SetLength(sUserName, cnMaxUserNameLen);

  GetUserName(PChar(sUserName), dwUserNameLen);

  SetLength(sUserName, dwUserNameLen);

  Result := sUserName;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  ShowMessage(GetCurrentUserName);

end;

 


 

Code:

function GetCurrentUserName(var CurrentUserName: string): Boolean;

var

  BufferSize: DWORD;

  pUser: PChar;

begin

  BufferSize := 0;

  GetUserName(nil, BufferSize);

  pUser := StrAlloc(BufferSize);

  try

    Result := GetUserName(pUser, BufferSize);

    CurrentUserName := StrPas(pUser);

  finally

    StrDispose(pUser);

  end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

  CurrentUserName: string;

begin

  GetCurrentUserName(CurrentUserName);

  Label1.Caption :=  CurrentUserName;

end;

 

{*********************************************}

 

{

 Функция GetUserNameEx возвращает имя пользователя или другого пользователя

основные безопасности, связанных с вызывающим потоком.

Можно указать формат возвращаемого имени.

Если поток выдает себя за клиента, метода getusernameex

возвращает имя клиента.

}

 

const

  NameUnknown = 0; // Unknown name type.

NameFullyQualifiedDN = 1// Fully qualified distinguished name

NameSamCompatible = 2; // Windows NT® 4.0 account name

NameDisplay = 3// A "friendly" display name

NameUniqueId = 6; // GUID string that the IIDFromString function returns

NameCanonical = 7// Complete canonical name

NameUserPrincipal = 8; // User principal name

NameCanonicalEx = 9;

  NameServicePrincipal = 10// Generalized service principal name

DNSDomainName = 11// DNS domain name, plus the user name

 

 

procedure GetUserNameEx(NameFormat: DWORD;

  lpNameBuffer: LPSTR; nSize: PULONG); stdcall;

  external 'secur32.dll' Name 'GetUserNameExA';

 

 

function LoggedOnUserNameEx(fFormat: DWORD): string;

var

  UserName: array[0..250] of char;

  Size: DWORD;

begin

  Size := 250;

  GetUserNameEx(fFormat, @UserName, @Size);

  Result := UserName;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  Edit1.Text := LoggedOnUserNameEx(NameSamCompatible);

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить