Zitat von
Luckie:
Ich habe deinen Fehler gefunden. Guck dir mal Zeile 59 an:
lgi02 := lgi02;
Du iterierst über einen leeren Speicherbereich.
Ok, das habe ich jetzt so korrigiert :
Delphi-Quellcode:
procedure TForm7.Button2Click(Sender: TObject);
var
dwEntriesRead, dwEntriesTotal: DWORD;
lgi01, lgi02 : PByte;
i : Integer;
NetAPIResult: Cardinal;
begin
lgi02 := nil;
lgi01 := nil;
Form7.Cursor := crHourGlass;
Listbox1.Clear;
NetAPIResult := NetUserGetLocalGroups(PWideChar(Edit1.Text), PWideChar(Edit2.Text), 0, 0, lgi01, MAX_PREFERRED_LENGTH, dwEntriesRead, dwEntriesTotal);
if NetAPIResult = NERR_SUCCESS then
begin
lgi02 := lgi01;
for i := 0 to dwEntriesRead - 1 do
begin
Listbox1.Items.Add(PLOCALGROUP_USERS_INFO_0(lgi01)^.lgrui0_name);
Inc(Integer(lgi01), SizeOf(Pointer));
end;
end
else
ListBox1.Items.Add('Fehler !! --> ' + IntToStr(NetAPIResult));
NetAPIBufferFree(lgi02);
Form7.Cursor := crDefault;
end;
Ich bekomme jetzt immer bei NetAPIResult den Fehlercode 1722. Was ist denn jetzt noch an der Funktion falsch ? Ich verzweifel noch, ich möchte doch nur die lokalen Gruppen und die Domaingruppen auslesen.
Edit:
Es ist egal ob ich \\Computername oder Punkt oder \\<
IP-Adresse> eingebe, ich bekomme immer den Fehler 1722.