- - PR -
アイドル時間の取得
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-12 15:21
Windows Formアプリケーションに関する質問です。
アプリに対して何の操作も行われず、そのアイドル時間が一定時間経過した後の最初の操作の時に、ダイアログを出すということを実現したいです。 すべてのイベントの前後にタイマーのチェックをすれば可能だとは思いますが、現実的ではありません。 どなたかご教授いただければ幸いです。 | ||||
|
投稿日時: 2005-08-12 16:18
諸農です。
フォーム上のアクション発生時の時間を保存しておき、 次に何かのアクションが発生した時に、保存した時間 との差を取って、その差の時間がアイドル時間を越え ていたらダイアログを表示する、というのはどうでしょうか? _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2005-08-12 19:34
諸農様お返事ありがとうございます。
>フォーム上のアクション発生時の時間を保存しておき、 >次に何かのアクションが発生した時に、保存した時間 >との差を取って、その差の時間がアイドル時間を越え >ていたらダイアログを表示する、というのはどうでしょうか? 私の日本語がおかしかったです。 「すべてのイベントの前後にタイマーのチェックをすれば可能だとは思いますが、現実的ではありません。」というのは諸農様が仰っている内容と同じ意味とお考えになってください。 他に何かありますでしょうか? | ||||
|
投稿日時: 2005-08-12 19:39
操作されていない時間ということではダメなんですか? バッチ的な処理でなければ、マウスを操作した、キーボードを操作した。 が、何かアクションするに必要な最低限の操作じゃないですか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-08-13 01:55
南部です。 これしかないような気がしますが? 現実的ではないって、もしかして、、、、? あとは、どんなメッセージを「操作した」にするか決まれば、 オッケーっすね。 | ||||
|
投稿日時: 2005-08-13 06:18
諸農です。
現実的ではないというのは、全部のイベントハンドラに記述する、 みたいな事を想像されているからでしょうか。 FormクラスのWndProc()をoverrideし、アイドル時間の計測対象としている アクションのメッセージが飛んできた時だけ処理するようにすればOKですね。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2005-08-15 19:45
皆様、お返事ありがとうございます。
諸農様が仰っているように「全部のイベントハンドラに記述する」ということを考えていました。 WndProc()のオーバーライドのことなどまったく知りませんでした。 大変勉強になりました。 これで実装を進めてみます。 ありがとうございました。 | ||||
|
投稿日時: 2005-08-16 02:06
南部です。
蛇足かもしれませんが、 kawaさんがやりたいことを想像すると、 ディスパッチされる前のメッセージが必要でしょう。 IMessageFilterのヘルプを参照して下さい。 |