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;
|
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!