PC作業時間を通知「VDTタイマー v1.05」
PC作業(VDT作業)による、目の疲れ、肩こり、頭痛などの疲労症状を予防するためのソフトウェア「VDTタイマー」をv1.05にバージョンアップしました。Microsoft Java VMとの相性問題を回避しました。
いやぁ〜。ひさしぶりにプログラミングのブラックボックスにはまってしまいました。何だかとっても疲れました。そんなわけで、VDTタイマーのバグフィックス版を公開します。
v.1.05の変更点
- Microsoft Java VMとの相性問題を回避。
(キーボードとマウス操作の監視を、スペースキー、エンターキー、マウスカーソルの移動に限定した)
プログラミングのどつぼ
VDTタイマー v1.03から、ユーザーのPC操作を監視して、適切なタイミングでアラーム表示を行うようになりました。「グローバルフック」という仕組みを使い、すべてのキー操作とマウス操作を監視しています。
ところが、VDTタイマーを起動した状態でGoogleカレンダーにアクセスすると、ブラウザが強制終了するという問題が発生しました。検証した結果、Borland C++ Builder (初期バージョン) でビルドしたDLLからグローバルフックを使うと、Microsoft Java VMのJITコンパイラと干渉してしまうようです。
解決方法は……。
(1)グローバルフックを使わない → 監視できる操作が限定される
(2)Microsoft Java VMを使わない → 社内では多く使われている
(3)Googleカレンダーを使わない → 使いたい
(4)Visual C++を使ってDLLをビルドする → 持ってない
今回は予算などの関係で (1) を採用しました。v1.05では、スペースキーとエンターキーの押下と、マウスカーソルの移動しか監視していませんが、VDTタイマーの用途には十分だと判断しました。それにしてもWindowsプログラミングは本当にブラックボックスですねぇ(笑)。ひさしぶりにハマりました。
関連する記事
このサイトの内容は私の個人的な見解であり、私の所属するいかなる団体や組織の見解を反映しているものではありません。

2006年12月3日 8時03分 #
こんにちは。
私の要望を取り入れていただいて、ありがとうございます。
バージョンアップされてからも利用させていただいてます。
ずうずうしくもまた要望してもいいでしょうか。
・ストレッチ画面を表示している間は、ストレッチしてますので、タイマーが進のを止められないでしょうか。
・アラーム画面を画面中央にも表示できるオプションを付けられないでしょうか。
よろしければ、お暇なときにでも検討していただけるとうれしいです。
2006年12月5日 7時03分 #
おかべさん
こんにちは。ご意見ありがとうございます。どんなふうに実装できるか、検討してみます。
2006年12月6日 17時24分 #
こんにちは。はじめまして。
VDTタイマーをインストールさせていただきました。
すばらしいソフトを、ありがとうございます!
一つだけ、要望があります!
もし次回のバージョンアップがあるのであれば、なのですが、
おかべさんと似ているのですが、休憩時間も「10分」とか設定できるようにしていただけないでしょうか?
そしてその間は、「休憩タイム」という感じで表示されていて、もしできるのであればタイムゲージが表示されたりしているとスゴイです!
(でもそれで動作が重くなるようなら、不要かな?)
ご検討いただけたら、嬉しいです!
個人的に、このソフトは、パソコン作業が多い全ての人が入れるべきだと思っています!
仕事のリズムが作れるので、いつもより集中して作業できるようになり、とても重宝しています。
本当にありがとうございます!
2006年12月7日 21時31分 #
「以前よりも作業時間のことを気にするようになりまいた」「ときどきストレッチをしています」「肩こりがひどいのでちゃんとストレッチをしています」と、ユーザーの皆さんがそれぞれに活用してくださっているようで、大変うれしく思います。
休憩時間の通知とカウントについては、「あんまり作業者のジャマをしない」という開発ポリシーの中での実装を、検討させていただければと思います。
今後ともよろしくお願いいたします。
2006年12月7日 21時33分 #
アッキンさま
VDTタイマーへのご意見ありがとうございます。
「以前よりも作業時間のことを気にするようになりました」「ときどきストレッチをしています」「肩こりがひどいのでちゃんとストレッチをしています」と、ユーザーの皆さんがそれぞれに活用してくださっているようで、大変うれしく思います。
休憩時間の通知とカウントについては、「あんまり作業者のジャマをしない」という開発ポリシーの中で、どのように実装できるか、検討させていただければと思います。
今後ともよろしくお願いいたします。