He intentado implementar este código pertenecienta a Trucomania
Código Delphi
[-]
procedure TFrmPrincipal.ActRecursosRedExecute(Sender: TObject);
procedure Enumera(Cual:PnetResource);
var
Mango :THandle;
NumeroEntradas Word;
Buffer :Array [1..100] of TNetResource;
LongBuffer Word;
n :Integer;
ListItem :TListItem;
begin
Application.ProcessMessages;
LongBuffer:=SizeOf(Buffer);
If WNetOpenEnum( RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
0,
Cual,
Mango
)<> No_ERROR then
ShowMessage('Error');
NumeroEntradas:=100;
WNetEnumResource( Mango,
NumeroEntradas,
@Buffer[1],
LongBuffer
);
for n:=1 to NumeroEntradas do
begin
ListItem:=FrmRecursosRed.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
FrmRecursosRed.ListView1.Clear;
FrmrecursosRed.ListView1.Columns.Clear;
with FrmRecursosRed.ListView1 do
begin
ViewStyle:=vsReport;
with Columns.Add do
begin
Caption:='Nombre Remoto';
Width:=150;
end;
with Columns.Add do
begin
Caption:='Comentario';
Width:=150;
end;
with Columns.Add do
begin
Caption:='Tipo';
Width:=100;
end;
end;
Enumera(nil);
FrmRecursosRed.ShowModal;
end;
Aparentemente funciona pero siempre me sale el mensaje de Error del ShowMessage. A que puede ser debido