Hallo!
Bin hier neu, deshalb verzeih mir wenn ich mit der FORM noch nicht so klar komme.
Habe vor längerer Zeit so etwas gemacht.
Folgender code findet die dir Rechner im LOKALEM Netzwerk und gibt sie in einer Liste retour.
Delphi-Quellcode:
procedure GetLANPCs(List: TStrings);
procedure EnumFunc(NetResource: PNetResource);
var
Enum: THandle;
Count, BufferSize: DWORD;
Buffer: array[0..16384 div SizeOf(TNetResource)] of TNetResource;
i: Integer;
begin
if WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, NetResource,
Enum) = NO_ERROR then
try
Count := $FFFFFFFF;
BufferSize := SizeOf(Buffer);
while WNetEnumResource(Enum, Count, @Buffer, BufferSize) = NO_ERROR do
for i := 0 to Count - 1 do
begin
if Buffer[i].dwDisplayType = RESOURCEDISPLAYTYPE_SERVER then
List.Add(Buffer[i].lpRemoteName);
if (Buffer[i].dwUsage and RESOURCEUSAGE_CONTAINER) > 0 then
EnumFunc(@Buffer[i])
end;
finally
WNetCloseEnum(Enum);
end;
end;
begin
EnumFunc(nil);
end;
Und so wird's aktiviert.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Clear;
Screen.Cursor := crHourGlass;
GetLANPCs(Form1.ListBox1.Items);
Screen.Cursor := crDefault;
Label1.Caption := IntToStr(ListBox1.Count)+' PC''s gefunden...';
end;
Viel Spass....