Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Alle lokalen User auflisten

  Alt 26. Jan 2003, 18:35
Der folgende Tipp soll zeigen, wie man alle User auf einem Rechner in eine ListBox schreiben kann. Benötigt werden die Delphi-Headers der Win32API von den JEDIs.

Dann muss noch folgendes geändert werden(muss nicht, ist aber sinnvoll):
Delphi-Quellcode:
{JwaLM}
type
  PUSER_INFO_0 = ^_USER_INFO_0; {<- hinzufügen}
  PUSER_INFO_1 = ^_USER_INFO_1; {<- hinzufügen}
  {usw. bis 11 und dann noch 20 und 23}
Wichtig ist, dass diese Deklaration unter der von _USER_INFO_x ist!

Und schon kann es zum eigentlichen Teil übergehen: 1 Form mit einem Button und einer ListBox.

Doppelklick auf den Button und folgendes rein:
Delphi-Quellcode:
uses {...}, JwaLM;
{...}
procedure TMainFrm.Button1Click(Sender: TObject);
var
  aUserBuffer: PUSER_INFO_0;
  aWorkBuffer: PUSER_INFO_0;
  dwEntriesRead: Cardinal;
  i: integer;
begin
  case NetUserEnum(nil, 1, FILTER_NORMAL_ACCOUNT, @aUserBuffer, MAX_PREFERRED_LENGTH, dwEntriesRead, dwEntriesRead, nil) of
    NERR_SUCCESS:
      begin
        aWorkBuffer := aUserBuffer
        for i:=1 to dwEntriesRead do begin
          ListBox1.Add(aWorkBuffer.usri0_name);
          inc(aWorkBuffer);
        end;
      end;
    ERROR_ACCESS_DENIED:
      begin
        ShowMessage('Fehlende Berechtigung');
      end;
  end;
  NetAPIBufferFree(aUserBuffer);
end;
Weitere Informationen, so wie andere Level (Anzahl Informatioen) und Rückgabewerte gibts im PSDK bei Microsoft.
Das einzige Problem was sich stellt: Funktioniert nur unter Windows NT, 2000 und XP!!!

[edit=Chakotay1308]MfG, Chakotay1308[/edit]
  Mit Zitat antworten Zitat