var
  Computer: Array[1..500] of String[25];
  ComputerCount: Integer;
procedure FindAllComputers(Workgroup : String);
Var
  EnumHandle: THandle;
  WorkgroupRS: TNetResource;
  Buf: Array[1..500] of TNetResource;
  BufSize: Integer;
  Entries: Integer;
  Result: Integer;begin
  ComputerCount := 0;
  Workgroup := Workgroup + #0;
  FillChar(WorkgroupRS, SizeOf(WorkgroupRS) , 0);
  With WorkgroupRS do begin
    dwScope := 2;
    dwType := 3;
    dwDisplayType := 1;
    dwUsage := 2;
    lpRemoteName := @Workgroup[1];
  end;
  WNetOpenEnum( RESOURCE_GLOBALNET,
                RESOURCETYPE_ANY,
                0,
                @WorkgroupRS,
                EnumHandle );
  Repeat
    Entries := 1;
    BufSize := SizeOf(Buf);
    Result :=
     WNetEnumResource( EnumHandle,
                       Entries,
                       @Buf,
                       BufSize );
   If (Result = NO_ERROR) and (Entries = 1) then begin
      Inc( ComputerCount );
      Computer[ ComputerCount ] := StrPas(Buf[1].lpRemoteName);
    end;
  Until (Entries <> 1) or (Result <> NO_ERROR);
  WNetCloseEnum( EnumHandle );
end; {找到所有的计算机}