Extraido de www.q3.com
necesitas un TListView y un TButton, en el evento on click del TButton...
procedure TForm1.Button1Click(Sender: TObject);
procedure Enumera(Cual:PnetResource);
var
Mango :THandle;
NumeroEntradas :DWord;
Buffer :Array [1..100] of TNetResource;
LongBuffer :DWord;
n :Integer;
ListItem :TListItem;
begin
LongBuffer:=SizeOf(Buffer);
if WNetOpenEnum( RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
0,
Cual,
Mango
)<> No_ERROR then ShowMessage('Error');
{100 entradas (máximo) por cada servidor}
{100 enties (max) per server}
NumeroEntradas:=100;
WNetEnumResource( Mango,
NumeroEntradas,
@Buffer[1],
LongBuffer
);
for n:=1 to NumeroEntradas do
begin
ListItem:=ListView1.Items.Add;
with ListItem do
begin
Caption:=String(Buffer[n].lpRemoteName);
if Caption='' then Caption:='Inicio de red';
SubItems.Add(String(Buffer[n].lpComment));
end;
if (Buffer[n].dwUsage and RESOURCEUSAGE_CONTAINER)=
RESOURCEUSAGE_CONTAINER then
begin
ListItem.SubItems.Add('Servidor');
Enumera(@Buffer[n]);
end
else
begin
if (Buffer[n].dwType and RESOURCETYPE_DISK)=
RESOURCETYPE_DISK
then ListItem.SubItems.Add('Disco') else
if (Buffer[n].dwType and RESOURCETYPE_PRINT)=
RESOURCETYPE_PRINT
then ListItem.SubItems.Add('Impresora');
end;
end;
end;
begin
{Inicializamos nuestro ListView}
{Initialice our ListView}
with ListView1 do
begin
ViewStyle:=vsReport;
with Columns.Add do
begin
{Remote Name}
Caption:='Nombre Remoto';
Width:=150;
end;
with Columns.Add do
begin
{Comment}
Caption:='Comentario';
Width:=150;
end;
with Columns.Add do
begin
{Type}
Caption:='Tipo';
Width:=100;
end;
end;
{Rellenamos el ListView}
{Fill the ListView}
Enumera(nil);
end;