|
■No78052 (NOVO さん) に返信 > 以前に画面の回転の話を出させてもらい、現在も悪戦苦闘中ですが > 画面の回転はプログラムとは別に随時監視して何かあれば動く容易な感じだと思うのですが > ドコに記述していいかで悩んでい8ます > 初心者で独学のため、「load]に記述したら起動時だけだと思うのですが・・・ > 何をどこまで監視するか、それはどこで必要なのか? によって、どうやって監視するのがいいかは変わります。
一口に監視と言ってもいろいろとあって イベントで通知を受け取れるもの、そういう仕組みがないのも Windowsには仕組みがあるが、.NET Framework がサポートしていないもの 特定のWindowsOSのバージョンによって段取りが変わるものなどなど
様々なものがあります。
また、どういうタイミングで監視したいかによってはすでに出ているように Windowsサービスでという必要がある場合もあります。
> フォルダの監視(フォルダにファイルが入ってきたとき)や System.IO.FileSystemWatcher クラス。
> オンライン(サーバーに繋がっているか) System.Net.NetworkInformation.NetworkChange クラス。
> ドライブ管理(アプリ起動中に外部メディアが接続されたか) これは、.NET Framework では直接サポートしてないはず。 WM_DEVICECHANGE というウィンドウメッセージがあって それを使って通知を受けることができます。 (CDを抜こうと思っても停止させることもできた気がしますが覚えてません)
スマホとかをつないだ場合も、WM_DEVICECHANGE が飛んできます。
ということで、OSが変化を認識できるものはほとんどのものがアプリにも 通知できるような仕組みを持ってます。
ちなみに、ネットワーク接続以外は Native レベルで監視してますが やってるのはあくまでもアプリケーションレベルです。 もちろん、用途によるので全部のアプリでではありません。
|