2009-06-01 7 views
5

Ich benötige einen Code, der erkennt, ob eine Netzwerkverbindung verbunden oder getrennt ist. Der verbundene Zustand würde bedeuten, dass ein Kabel in die Ethernet-Verbindung eingesteckt wurde. Ein getrennter Zustand würde bedeuten, dass kein Kabel angeschlossen ist.Erkennen des Netzwerkstatus (verbunden - getrennt) in C#

Ich kann die WMI-Schnittstelle nicht verwenden, da ich auf Windows CE laufe. Es macht mir nichts aus, die Win32-API aufzurufen, aber denken Sie daran, dass ich Windows CE verwende und auf dem Compact Framework läuft.

+0

Eine Sache zu erinnern ist, dass eine Netzwerkverbindung nicht gleich einer Internetverbindung ist. Es hört sich so an, als würdest du das schon bekommen, weil du "connected" definierst, was bedeutet "ein Kabel ist in die Ethernet-Verbindung eingesteckt", aber es muss wiederholt werden. –

Antwort

0

Eine Sache zu erinnern ist, dass eine Netzwerkverbindung ist nicht gleich eine Internet-Verbindung.

Es hört sich so an, als ob Sie das schon haben, denn Sie definieren verbunden, dass "ein Kabel in die Ethernet-Verbindung eingesteckt ist", aber es muss wiederholt werden.

+0

Ja, ich verstehe das. Ich möchte wirklich nur den "Kabel" -Verbindungszustand erkennen. –

+0

@ kelton52 Zustimmen. Die Regeln haben sich seit Juni 2009 geändert :) Ich habe den Kommentar hinzugefügt und werde ihn in ein paar Minuten löschen. –

1

Rufen Sie GetAdaptersInfo und durchlaufen Sie die Liste der verfügbaren Netzwerkadapter, bis Sie die gesuchte finden?

4

Der einfachste Weg ist OpenNETCF's SDF zu bedienen und sehen Sie die OpenNETCF.Net.NetworkInformation.NetworkInterfaceWatcher class, die Ereignisse erhöhen wird, wenn NDIS versendet Benachrichtigungen (wie MEDIA_CONNECT und MEDIA_DISCONNECT).

Sie können natürlich die gleiche Arbeit ohne SDF tun. Dazu muss der NDIS-Treiber direkt aktiviert und IOCTL_NDISUIO_REQUEST_NOTIFICATION mit einem P2P-Nachrichtenwarteschlangen-Handle aufgerufen werden. Es ist nicht allzu schwierig, aber es gibt eine Menge, die man richtig machen muss, damit es funktioniert und nicht leckt.

+0

Hallo, ich habe 2.3 Binärdateien von https://opennetcf.codeplex.com/releases/view/137461 heruntergeladen, aber ich finde den AdapterStatusMonitor nicht in OpenNETCF.Net-Namespace ... Bin ich etwas fehlt? Vielen Dank! – franDayz

+1

Werfen Sie einen Blick auf den 'NetworkInterfaceWatcher' http://opennetcf.codeplex.com/SourceControl/latest#OpenNETCF.Net/OpenNETCF.Net/NetworkInformation/NetworkInterfaceWatcher.cs – ctacke