2009-06-01 12 views
5

Ho bisogno di un pezzo di codice che possa rilevare se una connessione di rete è connessa o disconnessa. Lo stato connesso significherebbe che un cavo è stato collegato alla connessione Ethernet. Uno stato disconnesso significherebbe che non è collegato il cavo.Rilevamento dello stato della rete (connesso - disconnesso) in C#

Non riesco a utilizzare l'interfaccia WMI a causa del fatto che sto utilizzando Windows CE. Non mi interessa richiamare l'API Win32, ma ricorda che sto utilizzando Windows CE ed è in esecuzione su Compact Framework.

+0

Una cosa da ricordare è che una connessione di rete non è uguale a una connessione Internet. Sembra che tu lo abbia già capito perché definisci collegato come "un cavo è collegato alla connessione Ethernet", ma lo ripeto. –

risposta

0

Una cosa da ricordare è che una connessione di rete è non pari ad una connessione internet.

Sembra che tu lo abbia già capito perché definisci collegato come "un cavo è collegato alla connessione Ethernet", ma lo ripeto.

+0

Sì, lo capisco. Voglio davvero rilevare lo stato della connessione "via cavo". –

+0

@ kelton52 Accetto. Le regole sono cambiate da giugno 2009 :) Ho aggiunto il commento e lo cancellerò tra qualche minuto. –

1

Chiama il numero GetAdaptersInfo e passa in rassegna l'elenco degli adattatori di rete disponibili finché non trovi quello che stai cercando?

4

Il modo più semplice è quello di utilizzare OpenNETCF's SDF e guardare il OpenNETCF.Net.NetworkInformation.NetworkInterfaceWatcher class, che consentirà di accrescere gli eventi quando NDIS invia notifiche (come MEDIA_CONNECT e MEDIA_DISCONNECT).

Si può fare lo stesso lavoro senza SDF, ovviamente. Coinvolge direttamente il driver NDIS e chiama IOCTL_NDISUIO_REQUEST_NOTIFICATION con un handle di coda dei messaggi P2P. Non è eccessivamente difficile, ma c'è molto da fare per farlo funzionare correttamente e non perdere.

+0

Ciao, ho scaricato i file binari 2.3 da https://opennetcf.codeplex.com/releases/view/137461 ma non riesco a trovare AdapterStatusMonitor nello spazio dei nomi OpenNETCF.Net ... Mi manca qualcosa? Grazie! – franDayz

+1

Dai un'occhiata a 'NetworkInterfaceWatcher' http://opennetcf.codeplex.com/SourceControl/latest#OpenNETCF.Net/OpenNETCF.Net/NetworkInformation/NetworkInterfaceWatcher.cs – ctacke

Problemi correlati