2009-08-12 9 views
6

Vorrei rilevare quando un dispositivo è collegato a una porta ethernet della macchina su cui è in esecuzione la mia applicazione. So come farlo con una porta USB ma il problema è che la porta non è USB!Rilevamento dell'inserimento/rimozione della porta Ethernet nell'applicazione Winforms?

Se si trattava di un dispositivo USB, avrei semplicemente sovrascritto WndProc e preso il messaggio, se è WM_DEVICECHANGE, quindi sono arrivato a un vincitore, mi chiedevo se fosse così semplice con qualsiasi dispositivo che potrebbe essere inserito nella porta?

Non voglio sapere se c'è qualcosa che accade, o se il dispositivo funziona, semplicemente per scoprire se c'è stato un inserimento o una rimozione.

risposta

2

Non l'ho mai usato da solo, ma penso che l'evento NetworkChange.NetworkAvailabilityChanged soddisfi le tue esigenze.

Aggiornamento

Una breve indagine indica che NetworkChange.NetworkAddressChanged potrebbe funzionare meglio:

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

non sono sicuro se questo è esattamente adatto alle vostre esigenze, ma si potrebbe avere uno sguardo alla System.Net.NetworkInformation.NetworkChange classe, che ha 2 eventi che è possibile utilizzare:

  • NetworkAddressChanged
  • NetworkAvailabilityChanged

Nel gestore eventi, è possibile verificare se l'interfaccia di rete in questione è una porta Ethernet

0

La classe networkChange fornisce un evento NetworkAvailabilityChanged attivato quando le interfacce passare dal basso verso l'alto o il vizio versa. Forse non è il livello più basso che potresti cercare, ma non sei specifico nel tuo obiettivo nel tracciare questo evento.

Problemi correlati