2009-06-01 228 views
5

我需要一段代碼,可以檢測網絡連接是連接還是斷開連接。連接狀態意味着電纜插入以太網連接。斷開狀態意味着沒有連接電纜。在C#中檢測網絡狀態(連接 - 斷開連接)

由於我在Windows CE上運行,因此無法使用WMI接口。我不介意調用Win32 API,但請記住我正在使用Windows CE並在Compact Framework上運行。

+0

有一點要記住的是,網絡連接不等於互聯網連接。 這聽起來像你已經得到,因爲你定義連接意思是「電纜插入以太網連接」,但它重複。 – 2014-02-18 22:25:08

回答

0

有一點要記住的是,在網絡連接等於一個互聯網連接。

這聽起來像你已經得到,因爲你定義連接意思是「電纜插入以太網連接」,但它重複。

+0

是的,我明白這一點。我真的只想檢測「電纜」連接狀態。 – 2009-06-01 18:24:44

+0

@ kelton52同意。自2009年6月以來,規則已經發生了變化:)我添加了評論,我會在幾分鐘內刪除它。 – 2014-02-18 22:24:45

1

撥打電話GetAdaptersInfo,並遍歷可用網絡適配器列表,直到找到您要找的那個爲止。

4

最簡單的方法是使用OpenNETCF's SDF並查看OpenNETCF.Net.NetworkInformation.NetworkInterfaceWatcher class,它將在NDIS發出通知(如MEDIA_CONNECT和MEDIA_DISCONNECT)時引發事件。

當然,您可以在沒有SDF的情況下完成相同的工作。它涉及直接加強NDIS驅動程序,並使用P2P消息隊列句柄調用IOCTL_NDISUIO_REQUEST_NOTIFICATION。這不是太困難,但有很多你必須得到正確的工作,而不是泄漏。