Wednesday, June 11, 2008

休止状態からの復帰検出

Twitterをタスクトレーでずっと動かしている場合、Windowsが休止状態から復帰したら、それを検出して更新したい。

JavaでWindowsやMacのスリープ/休止からの復帰を検出する方法はあるのか?

とりあえず、Windowsに関しては、下記を見つけた。

CodeProject: PC StandBy Detector for Java apps. Free source code and programming help

ダウンロードしようとしたら、メンバー登録が必要だった。下記に同じ記事があって、こちらはすぐにダウンロードできた。

CodeGuru: Java/C++ PC Standby Detect and Prevent

中を見てみると、案の定、JNIでdllを呼び出している。が、よく見たら、スタンバイの要求を検出するけど、スタンバイからの復帰は検出してくれないみたい。これは使えない。

今回の場合、復帰を直接検出するのではなく、十分な頻度で(1分間に1回程度)時刻を調べて、時刻が飛んでいたら休止していたと判断すればよいかもしれない。

No comments: