连接或断开互联网时收到通知

Die*_*ego 5 c# windows desktop-application c#-4.0 windows-8

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

当我研究了一下时,我发现在每次连接发生变化时都会触发一个NetworkChange名为NetworkAvailabilityChangedfires 的类(链接到docs).

我正在使用Windows 8计算机进行开发,当我在那里尝试时,事件没有被触发但是当我在Windows 7上运行应用程序时,事件被触发.正如在文档中所说的那样,框架4.0对该事件的兼容性是在Windows 7之前,但在框架4.5兼容性的文档中查看相同的事件也说明了Windows 8.

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

是否存在我没​​有意识到的任何不兼容问题?当连接发生变化时,是否有更好的方法可以获得通知?

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

Die*_*ego 2

William Riley 向我指出了这个链接,它帮助我找到了实现这一点的方法。

最后,我通过 Microsoft 的 COM 实现从 Windows API 使用网络列表管理器。(你可以检查一些例子

添加对项目的正确引用非常重要:

在此输入图像描述

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