Thema: Delphi NetUserEnum die 2.

Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#30

AW: NetUserEnum die 2.

  Alt 21. Apr 2012, 01:15
Jja, das habe ich auch schon überlegt. Ich habe es jetzt so:
Delphi-Quellcode:
function EnumUsers(const Server: WideString; filter: DWORD; Callback: TEnumUers; Data: Pointer): DWORD;
var
  ui1 : PUserInfo1;
  pWork : Pointer;
  EntriesRead : DWORD;
  EntriesTotal : DWORD;
  NetError : DWORD;
  Loop : Integer;
begin
  ui1 := nil;
  pWork := nil;
  try
    NetError := NetUserEnum(PWideChar(Server), 1, filter, ui1, MAX_PREFERRED_LENGTH, EntriesRead, EntriesTotal, nil);
    if (NetError = NERR_SUCCESS) and (EntriesRead > 0) then
    begin
      pWork := ui1;
      if Assigned(Callback) then
      begin
        for Loop := 0 to EntriesRead - 1 do
        begin
          if not Callback(PUserInfo1(ui1)^.usri1_name, EntriesRead, Data) then
            break;
          //Inc(Integer(ui1), sizeof(PUserInfo1));
        end;
      end;
    end;
  finally
    NetApiBufferFree(pWork);
  end;
  Result := NetError;
end;
Aber dann bekomme ich fünf mal den Admin. Das ist das erste Konto von fünf bei mir. Kommentiere ich es nicht aus, bekomme ich nur den ersten Benutzer und die folgenden sind nil. Und dann haut es mir den Code um die Ohren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat