我有一个在WPF和C#下开发的桌面应用程序。NET 4.0客户端框架,必须显示或隐藏一些数据根据互联网是否可用在PC上。 这意味着如果互联网断开或连接以便作出反应,我必须尽快检测。 (示例可能与无线networking断开连接或拔下网线)
正如我研究了一下,我发现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客户端解决scheme
http://msdn.microsoft.com/en-us/library/ee264321(VS.85).aspx
我在同一个研究过程中遇到了这个链接。 这是更有帮助。
@William Riley的回答帮助我找到办法。
最后,我从Windows API通过Microsoft的COM实现来使用网络列表管理器。 (你可以查看一些例子 )
为项目添加正确的参考非常重要:
那么只要你可以从链接的例子,真的很短,直接的点。