Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: TrashAmbishion en 22 Mayo 2013, 01:26 am



Título: Cual es la mejor manera para esto ?
Publicado por: TrashAmbishion en 22 Mayo 2013, 01:26 am
Tengo una función que trabaja con una serie de API's para verificar si hay alguien conectado al Xp via modem usando las Conexiones Entrantes, la cuestion es que esta verificacion la hago con un Timer cada 2 segundos, queria saber si hay alguna manera de no tener que llamar tanto a esas API's tantas veces, hacer algo para detectar cuando cambia el valor de si hay conexiones establecidas.

No se algo como que se ejecute esa funcion en memoria y espere por algun cambio, quizas sea una estupidez pero bueno ustedes me diran.

Salu2


Título: Re: Cual es la mejor manera para esto ?
Publicado por: Eleкtro en 22 Mayo 2013, 03:17 am
¿API's para comprobar el estado de red?, ya hay que tener ganas de hacer las cosas dificiles :P

Sin ver tu código ni saber reálmente lo que quieres... lo que se me ocurre que puedes hacer para comprobar si el modem está conectado (si existe una conexión de red activa en Windows disponible) es:

Código
  1. sub timer1_tick(bla bla bla) handles timer1.
  2.    if My.Computer.Network.IsAvailable then
  3.     ' el modem está conectado
  4.    else
  5.     ' El modem no está conectado
  6.    end if
  7. end sub

Si quieres comprobar el estado de la conexión usa un Ping, My.Computer.Network.Ping().

EDITO: Pienso que si existiese algo como lo que dices de esperar a un cambio de valor, ese procedimiento haría muchísimas más iteraciones de las que hace un simple Boolean en un simple timer cada 2 segundos, es mi punto de vista, que me corrijan si me equivoco, no lo sé seguro, pero... piénsalo bien, a mi me parece mejor hacerlo con el timer.

Saludos!


Título: Re: Cual es la mejor manera para esto ?
Publicado por: TrashAmbishion en 22 Mayo 2013, 03:24 am
¿API's para comprobar el estado de red?, ya hay que tener ganas de hacer las cosas dificiles :P

Sin ver tu código ni saber reálmente lo que quieres... lo que se me ocurre que puedes hacer para comprobar si el modem está conectado (si existe una conexión de red activa en Windows disponible) es:

Código
  1. sub timer1_tick(bla bla bla) handles timer1.
  2.    if My.Computer.Network.IsAvailable then
  3.     ' el modem está conectado
  4.    else
  5.     ' El modem no está conectado
  6.    end if
  7. end sub

Si quieres comprobar el estado de la conexión usa un Ping, My.Computer.Network.Ping().

Saludos!

Que tal bro, ese codigo no me sirve porque las Conexiones Entrantes del XP las detecta como una conexion y necesito detectar cuando un usuario se conecto y cuando se desconecto. Yo estaba usando TAPI para mas bien trabajar con los estados de la linea pero el modem que uso se cuelga al pasar un rato...asi como use tambien netsh pero nada me he tropezado con problemas a la hora de usarlos y me parece que asi como lo uso es mas factible, solo que tenia esa pequeña duda.. Gracias de todas formas

EDITO: Pues se queda con el Timer, muchas gracias no perdia nada con preguntar.