Einzelnen Beitrag anzeigen

FritzAT
(Gast)

n/a Beiträge
 
#2

Re: Alle Computer listen die mit dem eigenen verbunden sind

  Alt 30. Sep 2004, 23:46
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....
  Mit Zitat antworten Zitat