Título: Desactivar un adaptador de red desde C++ Publicado por: el_doctor en 17 Septiembre 2013, 19:06 pm Hola, existe alguna manera de desactivar las tarjetas de red desde una aplicación hecha en C++ he estado leyendo la documentación msdn y está la clase Win32_NetworkAdapter la he usado desde C# pero no me funciona no se si puedo usar esta clase en C++ y hacer que funcione o hay alguna otra forma de hacerlo desde C++.
Gracias por su ayuda Título: Re: Desactivar un adaptador de red desde C++ Publicado por: Eternal Idol en 17 Septiembre 2013, 19:56 pm Si, por supuesto que se puede, busca informacion y ejemplos sobre WMI. Casi con toda seguridad todas esas clases terminan llamando a la API de Windows para implementar su funcionalidad ...
Título: Re: Desactivar un adaptador de red desde C++ Publicado por: ecfisa en 17 Septiembre 2013, 19:59 pm Hola.
Fijate si te sirve alguna de las opciónes de este enlace: Enabling and disabling interface/adapter (http://www.gershnik.com/faq/manage.asp#enable). Saludos. :) Título: Re: Desactivar un adaptador de red desde C++ Publicado por: el_doctor en 17 Septiembre 2013, 20:33 pm Gracias ecfisa lo voy a revisar.
Eternal no me dará problemas usar la clase Win32_NetworkAdapter en Windows8 ya que quiero que la aplicación funcione tanto en windows xq como windows 8 Título: Re: Desactivar un adaptador de red desde C++ Publicado por: Eternal Idol en 17 Septiembre 2013, 20:43 pm No tengo ni la mas minima idea sinceramente, fijate que dice su documentacion y de no servir en Windows 8 seguramente te dara la alternativa para ese S.O..
Título: Re: Desactivar un adaptador de red desde C++ Publicado por: el_doctor en 17 Septiembre 2013, 22:12 pm Hola Eternal estoy intentando usar la api Win32_NetworkAdapter y según estaba leyendo para usar las api hay que inicializar los servicios COM pero tengo ratos de estar rompiendome la cabeza para validar si se ejecuta bien la función CoInitializeEx según la documentación si todo sale bien devuelve S_OK y hago algo así:
Código
y al depurar siempre me da error de sintaxis en el if no se si es lo estresado que estoy pero no veo el error Título: Re: Desactivar un adaptador de red desde C++ Publicado por: Eternal Idol en 17 Septiembre 2013, 22:36 pm Ese codigo compila, no se que estaras haciendo, asegurate que guardaste los cambios y de ultima recompila ... ni se que IDE usas asi que es dificil adivinar.
Título: Re: Desactivar un adaptador de red desde C++ Publicado por: el_doctor en 17 Septiembre 2013, 22:56 pm Ya encontré el error era cosa del compilador gracias
Hola Eternal he revisado la documentación del enlace que puso el amigo ecfisa y según lo que ahí describen no es posible desconectar la tarjeta de red de forma real usando la api de windows y sugieren un método usando la interfaz de red shell copie el código e hice la implementación pero no me desconecta la tarjeta de red estoy usando windows 8 voy a poner el código, si me puedes ayudar te lo agradezco o no se si es verídica la información de ese enlace que explican que no es posible desconectar la tarjeta de red usando la api de windows. Código
Título: Re: Desactivar un adaptador de red desde C++ Publicado por: Eternal Idol en 18 Septiembre 2013, 09:11 am Sinceramente no se de donde sacas eso, se hace como dice ahi con la Device Installation API. Por logica ningun objeto COM va a poder hacer magia si el S.O. no le provee la funcionalidad ...
Título: Re: Desactivar un adaptador de red desde C++ Publicado por: el_doctor en 18 Septiembre 2013, 16:49 pm Hola Eternal pues he vuelto con lo de usar la Win API y pues según revisando la documentación de MSDN pues he implementado un código pero he quedado bloqueado para poder ejecutar el método Disable de la WIN32_NetworkAdapter que se supone es para desconectar la tarjeta de red, no se si una vez inicializado el COM y obtener los permisos debo recorrer la clase o como te agradecería si me ayudas te dejo el código que he escrito hasta ahora:
Código
Título: Re: Desactivar un adaptador de red desde C++ Publicado por: Eternal Idol en 18 Septiembre 2013, 17:04 pm Ese es un objeto COM y no la API de Windows; depura tu programa.
Título: Re: Desactivar un adaptador de red desde C++ Publicado por: el_doctor en 18 Septiembre 2013, 17:26 pm Lo que estoy intentando hacer es llamar el método disable de la wmi networkAdapter desde un objeto COM
Es que según un ejemplo de la documentación MSDN hacen una llamada al método Create de Win32_Process y lo hacen usando un objeto COM y quería implentar esto mismo pero no lo tengo muy claro como es que lo podría usar para llamar el método Disable para Win32_NetworkAdapter el ejemplo que ponen es casi igual al que puse de iniciar el objeto com y obtener los permisos y la llamada al método la hacen así: Código
Sabes si es viable lo que intento hacer Eternal y cómo podría hacerlo? Título: Re: Desactivar un adaptador de red desde C++ Publicado por: Eternal Idol en 18 Septiembre 2013, 19:27 pm No lo se, supongo que si pero yo te estoy diciendo que uses la API de Windows. Igual no me voy a poner a revisar mas el codigo que estas copiando y pegando, tenes que hacerlo por tu cuenta, tenes que entenderlo y ser capaz de depurarlo para solucionar problemas.
|