Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Schon wieder Windowsnutzer auslesen (https://www.delphipraxis.net/66338-schon-wieder-windowsnutzer-auslesen.html)

Luckie 10. Mär 2009 09:28

Re: Schon wieder Windowsnutzer auslesen
 
Dann guck doch mal, was GetUsernameEx dir noch alles zurück gibt. GetUsername liefert dir nur den Anmeldenamen des Benutzers.

p80286 10. Mär 2009 14:42

Re: Schon wieder Windowsnutzer auslesen
 
Hallo zusammen

ich hab an dem geposteten Code ein wenig gebastelt
GetUserNameEx

Wobei bei fFormat=0 ein Fehler kommt (war abzusehen)
und bei 9, 10 und 11 das gleiche Ergebnis .

Hier meine Bastelei:
Delphi-Quellcode:
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
  //              11
  DNSDomainName = 12; // DNS domain name, plus the user name

function GetUserNameEx(NameFormat: DWORD;
  lpNameBuffer: LPSTR; var nSize: DWORD):Boolean; stdcall;
  external 'secur32.dll' Name 'GetUserNameExA';

function GetLoggedOnUserNameEx(fFormat: DWORD; var Username: String): boolean;
var
  Size   : DWORD;
  Buffer : array [0..1024] of Char;
begin
  Result:=false;
  size:=sizeof(buffer)-1;
  if GetUserNameEx(fFormat, Buffer, Size) then begin
    SetString(Username, Buffer, Size);
    result:=true;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Username: String;
  err: boolean;
  i : integer;
begin
  for i:=0 to 12 do begin
    //err := GetLoggedOnUserNameEx(3, Username);
    err := GetLoggedOnUserNameEx(i, Username);
    form1.Memo1.Lines.add(inttostr(i)+' '+username);
    if err then
      ShowMessage(Username)
    else
      ShowMessage('UserName nicht feststellbar');
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz