Rede - listando computadores (por grupo) |
Top Previous Next |
Listando todos os computadores de um grupo: -------------------------------------------
procedure FindAllComputers(Grupo: string; var Lista:TStringList); var WorkgroupRS : TNetResource; Buf : array[1..500] of TNetResource; R : Integer; EnumHandle, BufSize, Entries: Cardinal; begin Grupo := Grupo + #0; FillChar(WorkgroupRS, SizeOf(WorkgroupRS) , 0); With WorkgroupRS do begin dwScope := 2; dwType := 3; dwDisplayType := 1; dwUsage := 2; lpRemoteName := @Grupo[1]; end;
WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @WorkgroupRS, EnumHandle );
repeat Entries := 1; BufSize := SizeOf(Buf); R := WNetEnumResource( EnumHandle, Entries, @Buf, BufSize ); if (R = NO_ERROR) and (Entries = 1) then Lista.Add(StrPas(Buf[1].lpRemoteName)); until (Entries <> 1) or (R <> NO_ERROR); WNetCloseEnum( EnumHandle ); end;
|