5

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 クライアントのソリューションが必要です

4

1 に答える 1

2

William Riley がこのリンクを教えてくれたので、その方法を見つけるのに役立ちました。

最後に、Microsoft の COM 実装を介して、Windows API からネットワーク リスト マネージャーを使用するポイントに到達します。(いくつかのを確認できます)

プロジェクトへの正しい参照を追加することが重要です。

ここに画像の説明を入力

次に、リンクから例をたどることができます。これは本当に短く、要点に直接的です。

于 2013-10-19T19:42:10.960 に答える