Получение IP адресов всех компьютеров в рабочей группе

Previous  Top  Next

    
 

 

 

Code:

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; { Find All Computers }

 

 

 

 

©Drkb::03314

Автор: Song

Взято из http://forum.sources.ru