Как перечислить сетевые подключения
Из командной строки MS-DOS, для просмотра сетевых
ресурсов (дисков), к которым подключён компьютер,
используется следующая команда:
net use
Прогрммно, для того, чтобы начать перечисление
подключённых сетевых ресурсов необходимо
вызвать функцию WNetOpenEnum() и WNetEnumResources() для
продолжения перечисления.
Следующий пример перечисляет сетевые
соединения.
ЗАМЕЧАНИЕ: Необходимо включить в проект
библиотеку mpr.lib, в которой хранятся функции WNet*.
Пример кода
#include <windows.h>
#include <stdio.h>
void main()
{
DWORD dwResult;
HANDLE hEnum;
DWORD cbBuffer = 16384;
DWORD cEntries = 0xFFFFFFFF;
LPNETRESOURCE lpnrDrv;
DWORD i;
dwResult = WNetOpenEnum( RESOURCE_CONNECTED,
RESOURCETYPE_ANY,
0,
NULL,
&hEnum );
if (dwResult != NO_ERROR)
{
printf( "\nCannot enumerate network drives.\n" );
return;
}
printf( "\nNetwork drives:\n\n" );
do
{
lpnrDrv = (LPNETRESOURCE) GlobalAlloc( GPTR, cbBuffer );
dwResult = WNetEnumResource( hEnum, &cEntries, lpnrDrv, &cbBuffer
);
if (dwResult == NO_ERROR)
{
for( i = 0; i < cEntries; i++ )
{
if( lpnrDrv[i].lpLocalName != NULL )
{
printf( "%s\t%s\n", lpnrDrv[i].lpLocalName,
lpnrDrv[i].lpRemoteName );
}
}
}
else if( dwResult != ERROR_NO_MORE_ITEMS )
{
printf( "Cannot complete network drive enumeration" );
GlobalFree( (HGLOBAL) lpnrDrv );
break;
}
GlobalFree( (HGLOBAL) lpnrDrv );
}
while( dwResult != ERROR_NO_MORE_ITEMS );
WNetCloseEnum(hEnum);
}
|