我需要一段代码来检测网络连接是连接还是断开。连接状态意味着电缆已插入以太网连接。断开状态意味着没有连接电缆。
由于我在 Windows CE 上运行,我无法使用 WMI 界面。我不介意调用 Win32 API,但请记住我使用的是 Windows CE 并在 Compact Framework 上运行。
我需要一段代码来检测网络连接是连接还是断开。连接状态意味着电缆已插入以太网连接。断开状态意味着没有连接电缆。
由于我在 Windows CE 上运行,我无法使用 WMI 界面。我不介意调用 Win32 API,但请记住我使用的是 Windows CE 并在 Compact Framework 上运行。
最简单的方法是使用OpenNETCF 的 SDF并查看OpenNETCF.Net.NetworkInformation.NetworkInterfaceWatcher 类,它会在 NDIS 发出通知时引发事件(如 MEDIA_CONNECT 和 MEDIA_DISCONNECT)。
当然,您可以在没有 SDF 的情况下完成相同的工作。它涉及直接打开 NDIS 驱动程序并使用 P2P 消息队列句柄调用IOCTL_NDISUIO_REQUEST_NOTIFICATION 。这并不太难,但是您必须做很多事情才能使其正常工作并且不会泄漏。
查看这篇 MSDN 文章:
调用GetAdaptersInfo并遍历可用网络适配器列表,直到找到您正在寻找的那个?
要记住的一件事是网络连接不等于互联网连接。
听起来您已经明白了,因为您将连接定义为“将电缆插入以太网连接”,但它需要重复。