Delphi-Help

Главная Статьи Сеть Как получить список компьютеров в рабочей группе?

Как получить список компьютеров в рабочей группе?

Оцените материал
(0 голосов)


Как получить список компьютеров в рабочей группе?

procedure TForm1.FindAllComputers(Workgroup: String);
var
  Computer: array[1..500] of string[25];
  ComputerCount: integer;
  EnumHandle: THandle;
  WorkgroupRS: TNetResource;
  Buf: array[1..500] of TNetResource;
  BufSize: cardinal;
  Entries: cardinal;
  Result: integer;
  i: 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 );
   for i := 1 to ComputerCount do
      ListBox1.Items.Add( Computer[i] );
end;
Прочитано 5432 раз

Авторизация



Счетчики