2009-08-12 7 views
6

Me gustaría detectar cuando un dispositivo está conectado a un puerto ethernet de la máquina en la que se está ejecutando mi aplicación. Sé cómo hacer esto con un puerto USB, pero el problema es que el puerto no es USB.¿Detecta la inserción/eliminación del puerto Ethernet en mi aplicación winforms?

Si se trata de un dispositivo USB yo simplemente anulan WndProc y coger el mensaje, si es WM_DEVICECHANGE, entonces estoy en un ganador, me preguntaba si era tan simple como esto con cualquier dispositivo que pueda estar enchufado en el puerto?

No quiero saber si algo está sucediendo, o si el dispositivo está funcionando, simplemente para encontrar si ha habido una inserción o eliminación.

Respuesta

2

Nunca lo he usado, pero creo que el evento NetworkChange.NetworkAvailabilityChanged puede satisfacer sus necesidades.

actualización

Una breve investigación indica que NetworkChange.NetworkAddressChanged podría funcionar mejor:

public static void Main() 
{ 

    NetworkChange.NetworkAddressChanged += (s, e) => 
    { 
     NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); 
     foreach (var item in nics) 
     { 
      Console.WriteLine("Network Interface: {0}, Status: {1}", item.Name, item.OperationalStatus.ToString()); 
     } 
    }; 

    string input = string.Empty; 
    while (input != "quit") 
    { 
     input = Console.ReadLine(); 
    } 
} 
0

no estoy seguro si eso es exactamente adecuado para sus necesidades, pero se puede echar un vistazo a la System.Net.NetworkInformation.NetworkChange clase, que tiene 2 eventos que puede usar:

  • NetworkAddressChanged
  • NetworkAvailabilityChanged

En el controlador de eventos, se puede comprobar si la interfaz de red en cuestión es un puerto Ethernet

0

La clase networkChange le proporciona un evento NetworkAvailabilityChanged activa cuando las interfaces de switch de abajo hacia arriba o viceversa versa. Posiblemente no es tan bajo como podría estar buscando, pero no es específico en su objetivo en el seguimiento de este evento.

Cuestiones relacionadas