この簡単な方法を使用して、ネットワークの接続/切断イベントを検出しています。
NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);
NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged);
...
static void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
{
RaiseNewtorkChange();
}
static void NetworkChange_NetworkAddressChanged(object sender, EventArgs e)
{
RaiseNewtorkChange();
}
static void RaiseNewtorkChange()
{
...
}
問題は、NetworkAddressChanged
イベントが数回発生した後、イベントが機能しなくなることがあるということです。なぜこれが起こるのか誰にも分かりますか?
または、C# または C/C++ を使用して、ネットワークの接続/切断イベントを処理する別の方法があります。Windows API や WMI にそのような機能があるのではないでしょうか? ポーリングなしで、LAN/WiFi ネットワークの接続/切断に関する通知が必要です。