我需要一个事件来检测Internet连接/断开连接

Nue*_*ino 30 .net c# events windows-7

我们正在开发一个.NET应用程序,其中一个要求是监视系统是否连接到Internet.

我们能够获得"以太网电缆断开"的.NET事件,但如果调制解调器被重置,则此事件不会被触发.我不想继续ping一些URL来完成这项工作,因为它会增加相当大的性能开销.是否有任何.NET事件可以检查系统是否连接到互联网?

系统托盘中有一个图标,当系统未连接到互联网时,该图标显示交叉标志或有限连接标志.这表明Windows知道,我想陷阱那个事件.

Sim*_*ier 23

您可以使用NetworkChange类和NetworkAvailabilityChanged事件:

NetworkChange.NetworkAvailabilityChanged += myNetworkAvailabilityChangeHandler;
Run Code Online (Sandbox Code Playgroud)

由于这是一个系统事件,请确保在完成后删除该事件,请在此处查看此帖:您需要注意为NetworkChange使用事件处理程序


Kat*_*ory 13

http://msdn.microsoft.com/en-us/library/ee264321(VS.85).aspx上,这些都包括在内(包括在网络上和让网络连接到Internet之间的区别).我希望你的意思是把Windows 7标签放在你的帖子上,因为这一切都很新.

关键是INetworkListManager.get_IsConnectedToInternet()它在锡上说的几乎就是它.你必须跳过一点来注册事件等.代码包为你包装了一些,并有一个你可以适应的网络样本.