- PR -

プログラムの自動終了

1
投稿者投稿内容
与作
会議室デビュー日: 2005/06/17
投稿数: 4
投稿日時: 2005-06-17 17:43
はじめまして

VB.NETでプログラムを開発しています。このプログラムを作業者が一定時間操作しない時、強制的に終了したいのですが、よい方法を教えていただけないでしょうか。マウスイベントをそれぞれのウインドーで受ける方法は、あちこちに入れなければならず実用適で無いと考えました。

よろしくお願い致します。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 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/17
投稿数: 4
投稿日時: 2005-06-21 11:09
早速のご返答ありがとうございます。
「フォームの WndProc をオーバーライドする」ということですがVBで行うには具体的にどのようにしたらよいのでしょうか。よろしくお願いいたします。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-06-21 11:47
フォームの WndProc をオーバーライドする
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
与作
会議室デビュー日: 2005/06/17
投稿数: 4
投稿日時: 2005-06-22 18:17
リンクを教えていただきありがとうございます。
でも、フォームのWndProcをオーバーライドするだけではフォームに張られたコントロール上でマウスを動かしている事を補足出来ませんでした。また、新しいフォームを開いている時にも補足出来ません。要はパソコンを一定時間操作していない事を検知したいのです。考え方を変えて、スクリーンセーバーが起動するタイミング捉えることは出来るでしょうか。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-06-22 19:05
引用:

でも、フォームのWndProcをオーバーライドするだけではフォームに張られたコントロール上でマウスを動かしている事を補足出来ませんでした。



マウスキャプチャするとか。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2005-06-23 00:51
どのくらいの精度を求めているのか知らないけど。数分ごとにマウスの座標を調べてカーソルが動いてなかったら〜程度でも用途によっては十分かも。あとは、(別プログラムで)スクリーンセーバーを作成してプログラムの終了通知を行わせるとか。
与作
会議室デビュー日: 2005/06/17
投稿数: 4
投稿日時: 2005-06-23 19:24
定期的にGetCursorPos()APIを呼び出しマウス座標をチェックすることで、本来の目的を達成することが出来ました。沢山のご助言本当に有難うございました。
1

スキルアップ/キャリアアップ(JOB@IT)