如何在不轮询的情况下通知我的C#Windows应用程序网络状态的变化?

时间:2010-08-25 14:54:27

标签: c# .net windows

我希望在计算机的网络连接建立(有一个有效的IP地址)时得到通知,我想在没有轮询的情况下这样做。是否有可以提供这些通知的Windows API?

3 个答案:

答案 0 :(得分:3)

我会从System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged事件开始。

同样可能发生WMI事件,触发对Win32_NetworkAdapterWin32_NetworkConnection个实例集的更改。

答案 1 :(得分:0)

http://www.codeproject.com/KB/IP/usenetworklist.aspx

“如何使用Windows NLM API获取新网络连接的通知”

答案 2 :(得分:0)

public MainForm()
{
    // Set listener to Check if Network Address Changed
    NetworkChange.NetworkAddressChanged += new
    NetworkAddressChangedEventHandler(AddressChangedCallback);
}

static void AddressChangedCallback(object sender, EventArgs e)
{
  MessageBox.Show("Network Changed");
}