![]() |
Liste aller Windows-Benutzer
Hallo DPler,
ich möchte gang gern mein Programm dazu bewegen mir eine Liste aller Windows-Benutzer anzuzeigen. Es geht hierbei um Win XP Home. Da ich ja ein ordentliches Mitglied bin, hab ich auch schon die Suche benutzt, aber das hat leider alles nicht funktioniert. Wie würdet ihr es denn machen? Bitte helft mir. Danke im Vorraus! |
Re: Liste aller Windows-Benutzer
Hast du dir mal Luckies XP-UserManager gesehn?
![]() Ich vermute also mal, daß sich eventuell etwas auf seiner Seite finden läßt :gruebel: |
Re: Liste aller Windows-Benutzer
Hi,
guck mal nach [cl="NetUserEnum"]NetUserEnum[/cl]. Chris |
Re: Liste aller Windows-Benutzer
Die entsprechende Unit habe ich erstmal von meinem Webspace genommen, da ich sie zur Zeit umstrukturiere.
|
Re: Liste aller Windows-Benutzer
Genau diese NetUserEnum-Variante hab ich ausprobiert. Hat aber irgendwie nicht geklappt.
Und das Luckie die Datei vom Server genommen musste ich leider auch schon feststellen. :roll: |
Re: Liste aller Windows-Benutzer
Damit sollte es geht:
Delphi-Quellcode:
MfG Jonas
var
EntiesRead: DWORD; TotalEntries: DWORD; UserInfo: lpUSER_INFO_1; lpBuffer: Pointer; ResumeHandle: DWORD; Counter: Integer; NetApiStatus: LongWord; repeat NetApiStatus := NetUserEnum(nil, 1, 0, lpBuffer, 0, EntiesRead, TotalEntries, ResumeHandle); UserInfo := lpBuffer; for Counter := 0 to EntiesRead - 1 do begin listbox1.Items.Add(WideCharToString(UserInfo^.usri1_name)); Inc(UserInfo); end; NetApiBufferFree(lpBuffer); until (NetApiStatus <> ERROR_MORE_DATA); |
Re: Liste aller Windows-Benutzer
Ich habe den Source gerade vor mir:
Delphi-Quellcode:
function NetUserEnum(servername: LPCWSTR; level: DWORD; filter: DWORD; var
buf: Pointer; prefmaxlen: DWORD; var entriesred: DWORD; var totalentries: DWORD; resumehandle: PDWORD): NET_API_STATUS; stdcall; //... implementation const netapi32lib = 'netapi32.dll'; function NetUserEnum; external netapi32lib name 'NetUserEnum';
Delphi-Quellcode:
type
NET_API_STATUS = DWORD; TStringArray = array of WideString; const NERR_Success = 0;
Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
// Procedure : EnumUsers // Comment : Enumerates all users on the local machine function EnumUsers(const Server: WideString; filter: DWORD): TStringArray; var ui1, pWork : Pointer; EntriesRead, EntriesTotal: DWORD; NetError : DWORD; Loop : Integer; begin ui1 := nil; pWork := nil; if Server <> '' then begin try NetError := NetUserEnum(PWideChar(Server), 0, filter, ui1, MAX_PREFERRED_LENGTH, EntriesRead, EntriesTotal, nil); if (NetError = NERR_SUCCESS) and (EntriesRead > 0) then begin pWork := ui1; SetLength(Result, EntriesRead); for Loop := 0 to EntriesRead - 1 do begin Result[Loop] := PUserInfo1(ui1)^.usri1_name; Inc(Integer(ui1), sizeof(Pointer)); end; end; finally NetApiBufferFree(pWork); end; end; end; |
Re: Liste aller Windows-Benutzer
@MisterNiceGuy
[Fehler] Message.pas(30): E2003 Undefinierter Bezeichner: 'lpUSER_INFO_1' [Fehler] Message.pas(37): E2003 Undefinierter Bezeichner: 'NetUserEnum' :? :? |
Re: Liste aller Windows-Benutzer
Hab's jetzt hinbekommen!
Vielen Dank! :dp: |
Re: Liste aller Windows-Benutzer
Nur der Vollständigkeit halber:
Du musst Folgendes noch definieren:
Delphi-Quellcode:
Hatte ich vergessen :lol:
type
NET_API_STATUS = Integer; function NetUserChangePassword(domainname, username, oldpassword, newpassword: LPCWSTR): NET_API_STATUS; stdcall; external 'netapi32.dll'; type USER_INFO_1 = record usri1_name: LPWSTR; usri1_password: LPWSTR; usri1_password_age: DWORD; usri1_priv: DWORD; usri1_home_dir: LPWSTR; usri1_comment: LPWSTR; usri1_flags: DWORD; usri1_script_path: LPWSTR; end; lpUSER_INFO_1 = ^USER_INFO_1; function NetUserEnum(ServerName: PWideChar; Level, Filter: DWORD; var Buffer: Pointer; PrefMaxLen: DWORD; var EntriesRead, TotalEntries, ResumeHandle: DWORD): Longword; stdcall; external 'netapi32.dll'; function NetApiBufferFree(pBuffer: PByte): Longint; stdcall; external 'netapi32.dll'; MfG Jonas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 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