Como puedo obtener una lista de todos los equipos(nombres de equipos) de una instranet
1 Respuesta
Respuesta de antipauli
1
1
antipauli, Analista/Programador de Sistemas Oracle
Prueba esto: procedure EnumNetResources(List: TStrings); procedure EnumFunc(NetResource: PNetResource); var Enum: THandle; Count, BufferSize: DWORD; Buffer: array[0..16384 div SizeOf(TNetResource)] of TNetResource; i: Integer; CommaText: String; Name: String; begin if WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, NetResource,Enum) = NO_ERROR then try Count := $FFFFFFFF; BufferSize := SizeOf(Buffer); CommaText := ''; while WNetEnumResource(Enum, Count, @Buffer, BufferSize) = NO_ERROR do begin for i := 0 to Count - 1 do begin if Buffer.dwDisplayType = RESOURCEDISPLAYTYPE_SERVER then begin Name := UpperCase(Buffer.lpRemoteName); Delete(Name,1,2); List.Add(Name); end; if (Buffer.dwUsage and RESOURCEUSAGE_CONTAINER) > 0 then EnumFunc(@Buffer) end; if(CommaText <> '')then end; List.CommaText := List.CommaText+','+CommaText; finally WNetCloseEnum(Enum); end; end; begin EnumFunc(nil); end;
gracias de antemano una consulta con que parametros mando al procedimiento y que componentes utilizo, trate de probarlo pero al encontrar el primer equipo sale un error saludos joranto
Lo mejor es usar los componentes ICS. ICS son freeware e incluyen el código fuente. Bájate ICS.ZIP de http://overbyte.delphicenter.com/frame_index.html Mira la aplicación de ejemplo DnsLook y la función LocalIPList.