Из командной строки 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); } |