Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
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
;