PCでインターネットが利用可能かどうかに応じて、一部のデータを表示または非表示にする必要がある.Net 4.0クライアントフレームワークで開発されたWPFおよびC#のデスクトップアプリケーションがあります。これは、反応するために、インターネットが切断されているか接続されているかをできるだけ早く検出できる必要があることを意味します. (ワイヤレス ネットワークからの切断やネットワーク ケーブルの取り外しなど)
少し調べてみると、接続が変更されるたびに発生するというクラスにイベントが存在することがわかりました(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 クライアントのソリューションが必要です