![]() |
Schon wieder Windowsnutzer auslesen
Hallo !
Ich habe folgendes Problem. Ich müßte den Benutzernamen von Windows XP (findet sich z.B. unter Start - "Benutzer xy" abmelden) auslesen. Alle Funktionen die ich gefunden habe, liefern nur den Nutzernamen im Netzwerk zurück ( siehe Beispiel). Welche API Funktion oder andere Möglichkeit gibt es? Vieleicht noch einmal anders.
So hier nun das Beispiel für alle Besserwisser, die meinen es ist doch ganz einfach. Noch einmal! So funktioniert es nicht!
Delphi-Quellcode:
// Funktion.....: User-Name (im Netzwerk)
function GetUserName:string; var buffer : array[0..MAX_PATH] of Char; Size: DWORD; begin Size := sizeof(buffer); Windows.GetUserName(buffer, Size); SetString(Result, buffer, lstrlen(buffer)); end; |
Re: Schon wieder Windowsnutzer auslesen
Guck dir mal meine Unit MpuNTUser.pas an, zu finden auf meiner Hompage. Damit geht es.
|
Re: Schon wieder Windowsnutzer auslesen
|
Re: Schon wieder Windowsnutzer auslesen
@toms
Danke für den Tipp, aber es hapert bei mir mit der Umsetzung von C# auf Delphi noch. @Luckie Danke für die schnelle Anwort. Hat funktioniert. |
Re: Schon wieder Windowsnutzer auslesen
Wo ist das C#? Btw:
![]() |
Re: Schon wieder Windowsnutzer auslesen
@Luckie
Toms Link führte zur MSDN Libary ( ![]() |
Re: Schon wieder Windowsnutzer auslesen
@DirkG: Die MSDN zeigt Dir aber widerum C++ und C# für diesen Fall an :mrgreen:
...:cat:... |
Re: Schon wieder Windowsnutzer auslesen
Zitat:
|
Re: Schon wieder Windowsnutzer auslesen
Du meinst den Benutzer, den den zugehörigen Prozess gestartet hat? Die findest du in der Unit nicht, weil die betreffende API-Funktion
![]() |
Re: Schon wieder Windowsnutzer auslesen
Zitat:
|
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.
|
Re: Schon wieder Windowsnutzer auslesen
Hallo zusammen
ich hab an dem geposteten Code ein wenig gebastelt ![]() 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 14:35 Uhr. |
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