我有一个在 .Net 4.0 客户端下开发的 WPF 和 C# 桌面应用程序
必须根据 PC 上的互联网是否可用来显示或隐藏某些数据的框架。
这意味着我必须能够尽快检测到互联网是否断开或连接,以便做出反应。 (例如,断开无线网络或拔掉网络电缆)
当我进行一些研究时,我发现班级中存在一个事件NetworkChange
called NetworkAvailabilityChanged
每次连接更改时都会触发(链接到文档 http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkchange.networkavailabilitychanged%28v=vs.100%29.aspx).
我正在 Windows 8 计算机上进行开发,当我在那里尝试时,事件不会被触发,但当我在 Windows 7 上运行应用程序时,事件会被触发。正如文档中所说,该事件的框架 4.0 兼容性直到 Windows 7,但查看框架 4.5 兼容性文档中的同一事件也表明 Windows 8 也是如此。
问题是,即使我将项目的目标框架切换到 4.5(这不是想法),该事件也不会在 Windows 8 上触发。
是否存在我没有意识到的不兼容问题?有没有更好的方法在连接更改时收到通知?
如果可能的话,我需要一个适用于 Windows Vista、7 和 8 的 Framework 4.0 客户端解决方案
威廉·莱利向我指出这个链接 http://msdn.microsoft.com/en-us/library/ee264321(VS.85).aspx,这帮助我找到了做到这一点的方法。
最后,我通过 Microsoft 的 COM 实现从 Windows API 使用网络列表管理器。 (你可以检查一些examples http://archive.msdn.microsoft.com/NLM)
添加对项目的正确引用非常重要:
然后您就可以按照链接中的示例进行操作,非常简短且直接切中要点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)