Показать сообщение отдельно
  #2  
Старый 08.08.2014, 19:31
Аватар для @Rafa3L
@Rafa3L @Rafa3L вне форума
Начинающий
 
Регистрация: 09.11.2011
Адрес: Москва
Сообщения: 144
Версия Delphi: XE2
Репутация: 11216
По умолчанию

Код:
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, Entries, 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;
__________________
Помогаю платно.
Помогаю иногда бесплатно.
Ответить с цитированием