Вывести список сетевых подключений - C (СИ)
Формулировка задачи:
Делаю курсач в Dev-C++ (4.9.9.2)
столкнулся с такой вот проблемой, вот код проги, она по идее должна выводить сетевые подключения компа, но увы не выводит(
не знаю где прокол...
пожалуйста помогите разобраться, сроки горят, а додумать один не могу никак(
при запуске экзешника выводит сообщения:
Network drives:
input char >
все... при нажатии любой клавиши окончание программы..
#include <windows.h> #include <stdio.h> #include <Winnetwk.h> #include <cstdio> int main() { char c1; 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 0; } 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); printf( "input char >" ); scanf( "%c", &c1 ); printf( " %c\n", c1 ); return 0; }
Решение задачи: «Вывести список сетевых подключений»
textual
Листинг программы
#include <windows.h> #include <stdio.h> int main(void) { DWORD dwResult; HANDLE hEnum; DWORD cbBuffer = 16384; DWORD cEntries = 0xFFFFFFFF; LPNETRESOURCE lpnrDrv; DWORD i; int c; dwResult = WNetOpenEnum( RESOURCE_CONNECTED, RESOURCETYPE_ANY, 0, NULL, &hEnum ); if (dwResult != NO_ERROR) { printf( "\nCannot enumerate network drives.\n" ); return 1; } printf( "\nNetwork drives:\n\n" ); do { lpnrDrv = (LPNETRESOURCE) GlobalAlloc(GPTR, cbBuffer); dwResult = WNetEnumResource( hEnum, &cEntries, lpnrDrv, &cbBuffer ); printf("%d" "\n", cEntries); 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\n"); GlobalFree((HGLOBAL) lpnrDrv); break; } GlobalFree((HGLOBAL) lpnrDrv); } while(dwResult != ERROR_NO_MORE_ITEMS); WNetCloseEnum(hEnum); printf("input char >"); fflush(stdout); c = getchar(); printf(" %c\n", c); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д