Как узнать имя пользователя |
Previous Top Next |
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;
|
©Drkb::01730
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; |
©Drkb::01731
DelphiWorld 6.0
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;
{*********************************************}
{ Windows NT/2000/XP:
The GetUserNameEx function retrieves the name of the user or other security principal associated with the calling thread. You can specify the format of the returned name. If the thread is impersonating a client, GetUserNameEx returns the name of the client. }
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;
|
©Drkb::01732
Взято с сайта: http://www.swissdelphicenter.ch