5

我有一个在.Net 4.0 客户端框架下开发的 WPF 和 C# 桌面应用程序,它必须根据 PC 上是否可用互联网来显示或隐藏一些数据。这意味着我必须能够尽快检测互联网是否断开或连接才能做出反应。(例如断开无线网络或拔掉网线)

经过一番研究,我发现类中存在一个事件,该事件在NetworkChange每次NetworkAvailabilityChanged连接更改时都会触发(链接到文档)。

我在 Windows 8 机器上开发,当我在那里尝试时,事件不会被触发,但是当我在 Windows 7 上运行应用程序时,事件会被触发。正如文档中所说,该事件的框架 4.0 兼容性直到 Windows 7,但查看文档中框架 4.5 兼容性的相同事件也表明 Windows 8。

问题是,即使我将项目的目标框架切换到 4.5(这不是想法),该事件也不会在 Windows 8 上触发。

有没有我没有意识到的不兼容问题?有没有更好的方法在连接更改时获得通知?

如果可能,我需要适用于 Windows Vista、7 和 8 的 Framework 4.0 客户端的解决方案

4

1 回答 1

2

威廉·莱利(William Riley)向我指出了这个链接,它帮助我找到了实现它的方法。

最后,我通过 Microsoft 的 COM 实现使用 Windows API 中的网络列表管理器。(您可以查看一些示例

向项目添加正确的引用很重要:

在此处输入图像描述

然后,您可以按照链接中的示例进行操作,非常简短直接。

于 2013-10-19T19:42:10.960 回答