- - PR -
プログラムの自動終了
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-17 17:43
はじめまして
VB.NETでプログラムを開発しています。このプログラムを作業者が一定時間操作しない時、強制的に終了したいのですが、よい方法を教えていただけないでしょうか。マウスイベントをそれぞれのウインドーで受ける方法は、あちこちに入れなければならず実用適で無いと考えました。 よろしくお願い致します。 | ||||
|
投稿日時: 2005-06-19 00:08
トップレベルのフォームの WndProc をオーバーライドすれば、子コントロールの分も含めてすべての Windows メッセージが補足できるんで、「それでなんとかする」とか。
_________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||
|
投稿日時: 2005-06-21 11:09
早速のご返答ありがとうございます。
「フォームの WndProc をオーバーライドする」ということですがVBで行うには具体的にどのようにしたらよいのでしょうか。よろしくお願いいたします。 | ||||
|
投稿日時: 2005-06-21 11:47
フォームの WndProc をオーバーライドする
_________________ 「伝える」とは「人に云う」と書く。 http://d.hatena.ne.jp/NAL-6295/ | ||||
|
投稿日時: 2005-06-22 18:17
リンクを教えていただきありがとうございます。
でも、フォームのWndProcをオーバーライドするだけではフォームに張られたコントロール上でマウスを動かしている事を補足出来ませんでした。また、新しいフォームを開いている時にも補足出来ません。要はパソコンを一定時間操作していない事を検知したいのです。考え方を変えて、スクリーンセーバーが起動するタイミング捉えることは出来るでしょうか。 | ||||
|
投稿日時: 2005-06-22 19:05
マウスキャプチャするとか。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||
|
投稿日時: 2005-06-23 00:51
どのくらいの精度を求めているのか知らないけど。数分ごとにマウスの座標を調べてカーソルが動いてなかったら〜程度でも用途によっては十分かも。あとは、(別プログラムで)スクリーンセーバーを作成してプログラムの終了通知を行わせるとか。
| ||||
|
投稿日時: 2005-06-23 19:24
定期的にGetCursorPos()APIを呼び出しマウス座標をチェックすることで、本来の目的を達成することが出来ました。沢山のご助言本当に有難うございました。
|
1