C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 随時監視は・・・


(過去ログ 132 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■78052 / inTopicNo.1)  随時監視は・・・
  
□投稿者/ NOVO (4回)-(2015/12/10(Thu) 06:15:31)

分類:[.NET 全般] 

以前に画面の回転の話を出させてもらい、現在も悪戦苦闘中ですが
画面の回転はプログラムとは別に随時監視して何かあれば動く容易な感じだと思うのですが
ドコに記述していいかで悩んでい8ます
初心者で独学のため、「load]に記述したら起動時だけだと思うのですが・・・

今回の回転もそうですが、
フォルダの監視(フォルダにファイルが入ってきたとき)や
オンライン(サーバーに繋がっているか)
ドライブ管理(アプリ起動中に外部メディアが接続されたか)

など。随時監視するようなことも出来るのでしょうか? 
引用返信 編集キー/
■78059 / inTopicNo.2)  Re[1]: 随時監視は・・・
□投稿者/ 魔界の仮面弁士 (596回)-(2015/12/10(Thu) 10:15:45)
No78052 (NOVO さん) に返信
> 随時監視するようなことも出来るのでしょうか? 

私の場合は、プロジェクトテンプレートでいうと、
「Windows サービス」で作っています。
https://msdn.microsoft.com/ja-jp/library/9k985bc9.aspx
引用返信 編集キー/
■78060 / inTopicNo.3)  Re[2]: 随時監視は・・・
□投稿者/ とっちゃん (313回)-(2015/12/10(Thu) 10:47:41)
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 レベルで監視してますが
やってるのはあくまでもアプリケーションレベルです。
もちろん、用途によるので全部のアプリでではありません。
引用返信 編集キー/
■78061 / inTopicNo.4)  Re[3]: 随時監視は・・・
□投稿者/ 魔界の仮面弁士 (597回)-(2015/12/10(Thu) 11:46:01)
No78060 (とっちゃん さん) に返信
>>フォルダの監視(フォルダにファイルが入ってきたとき)や
> System.IO.FileSystemWatcher クラス。
http://dobon.net/vb/dotnet/file/filesystemwatcher.html
確実性は無いので、ポーリング監視と併用した方が良いかも。


>>ドライブ管理(アプリ起動中に外部メディアが接続されたか)
> これは、.NET Framework では直接サポートしてないはず。
> WM_DEVICECHANGE というウィンドウメッセージがあって
> それを使って通知を受けることができます。
手前味噌ですが。
http://dobon.net/vb/bbs/log3-49/28870.html
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -