servidor para habilitar habilitado fija esta configurar conexion como c++ windows winapi network-programming wmi

c++ - para - habilitar dhcp windows xp



Al habilitar el adaptador de red, se configura la configuración automática de la dirección IP (2)

Estoy desarrollando una aplicación para Windows Vista y 7 en Visual Studio C ++, en la que tengo que asignar una dirección IP estática a una tarjeta de red y establecer una conexión. Para esto, estoy ingresando los valores de Ip en el registro junto con establecer el valor Habilitar DHCP en 0. Luego necesito deshabilitar y luego habilitar la tarjeta de red para que estos valores entren en vigencia. Para esto, estoy usando "INetConnectionManager" en el siguiente código:

CoInitialize(0); typedef void (__stdcall * PNcFreeNetconProperties)(NETCON_PROPERTIES* pProps); HMODULE hmod = LoadLibrary(L"netshell.dll"); if (!hmod) return false; LPNcFreeNetconProperties NcFreeNetconProperties = (LPNcFreeNetconProperties)GetProcAddress(hmod, "NcFreeNetconProperties"); if (!NcFreeNetconProperties ) return false; INetConnectionManager * pMan = 0; HRESULT hres = CoCreateInstance(CLSID_ConnectionManager, 0, CLSCTX_ALL, __uuidof(INetConnectionManager), (void**)&pMan); if (SUCCEEDED(hres)) { IEnumNetConnection * pEnum = 0; hres = pMan->EnumConnections(NCME_DEFAULT, &pEnum); if (SUCCEEDED(hres)) { INetConnection * pCon = 0; ULONG count; bool done = false; while (pEnum->Next(1, &pCon, &count) == S_OK && !done) { NETCON_PROPERTIES * pProps = 0; hres = pCon->GetProperties(&pProps); if (SUCCEEDED(hres)) { if (wcscmp(pProps-pszwDeviceName, AdapterName) == 0) { if (bEnable) result = (pCon->Connect() == S_OK); else result = (pCon->Disconnect() == S_OK); done = true; } NcFreeNetconProperties(pProps); } pCon->Release(); } pEnum->Release(); } pMan->Release(); } FreeLibrary(hmod); CoUninitialize();

Deshabilita y habilita muy bien la tarjeta de red, PERO los valores de autoconfiguración IPv4 se establecen en lugar de los valores estáticos en el registro. Esto extrañamente funciona correctamente para conexión DHCP pero no para conexión estática.

NOTA: incluso probé SetIfEntry para ello, pero no puede deshabilitar o habilitar la tarjeta de red.

Por favor, sugiera dónde estoy haciendo mal o algo que me falta.

Gracias y saludos,

Vinayak



¿Admite INetConnectionManager en Windows VISTA y Win7? He implementado el mismo código de lo que ha escrito aquí, pero obtengo acceso denegado para pCon-> Connect cuando la aplicación se ejecuta con un inicio de sesión que no es de administrador. Por lo tanto, parece que tenemos que elevar el objeto com utilizando COM Moniker.

Saludos IP_Telephony