タイピングマネージャ(仮)α2.1緊急公開

αリリースに小数番号つけるのはどうかと思いますが,α3の予定をあんな風に書いちゃったので2.1にさせていただきます(汗)今回の予定外の公開ですけど,先日とりのさんに指摘していただいた問題が緊急を要するものだったので修正して公開することにしました.とりのさんバグ報告ありがとうございました.

ダウンロード
タイピングマネージャ(仮)のダウンロード

※以前のバージョンからログを引き継ぐことができますが以下のバグについては要注意
※タイピングマネージャ関連の情報についてはこちらを参照
「タイピングマネージャ」の検索結果一覧 - tomoemonの日記

緊急のバグ

これはとりのさんのコメントの通りです.

起動中に日付をまたぐ場合は大丈夫なようで、問題は「日付変更前に一度終了(ここで一度day_logが生成)し、日付が変わってから再度起動した場合」に起こるようです。
この場合に、「ウィンドウタイトル別の打鍵数を保存」とのチェックは関係なく、前日のday_log¥YYYYMMDD.xmlが打鍵数とプロセス数だけのものに上書きされる、という症状です。

プログラムを終了して,次の日に起動するといういたって通常の作業をするだけで,前の日の「プロセス別打鍵」「タイトル別打鍵」情報がきれいさっぱり消えてしまうという問題です.
情報が消えてしまった方は大変申し訳ありません.これらの情報を取得できることが「ウリ」なのにこれが消えてしまっては話にならないので急いで修正しました.
もっと早く気づくべきだったのですが,ソフトを終了させないで,パソコンのシャットダウンもせずに使い続けてたので気づけませんでしたorz

これに懲りずに続けてご協力をお願いしますm(_ _)m

表示に関するバグ

α2の修正から派生した問題です.プロセス名を取得する際に,ときおり大文字・小文字が以下のように変化することがあり,これを違うプロセスとして認識しないためにα2から内部ではすべて小文字にして扱うようにしています.


このため,α1からデータを引き継いだ方はprocess.xmlのデータに上記のような重複が表れて"いた"可能性があります.α2で打鍵のtomoを起動,終了した時点で重複はなくなって,上記の場合id="4"の方だけが残るのですが,ここで一つ問題が発生してしまいます.

1日ごとのプロセス別の打鍵数情報やタイトル別の打鍵数情報を保存しているlog/day_logフォルダにあるログの中には昔のid="2"で打鍵を記録しているものがあります.プログラムの中ではすべてこのIDで情報を管理しているため,日別打鍵数タブで日付を右クリックして昔の情報を表示する際に「そんなIDはない」とエラーで落ちてしまうことがあります.

落ちてしまう問題はα2.1で修正しましたが,id="2"に対応するプロセス名が取得できないのは変わりません(もう情報が残ってないので…).下のように表示が変になる日付のログを手作業で直せないこともありませんが,どのプロセスの打鍵かはおそらくわからないので修正は困難です.大変申し訳ないです..

更新履歴

α2からの更新内容です.上で説明した日付のバグを修正するために内部のデータ構造を変更し,それに伴って日付関連でいろいろな修正を入れました.おまけですぐに変更できる内容も入れておきました.

[BUG] その日の初めての打鍵をしたときに前日のday_logが打鍵数だけに上書きされてしまう問題を修正(thx. とりのさん)
[BUG] システムの日付が最新のログよりも前の日付になったときに問題が発生しないように修正
[BUG] 日付をまたいでからの最初の1打鍵が前の日に含まれている問題を修正
[BUG] 今日のプロセス別打鍵数とすべてのプロセス別打鍵数を切り替えたときに一番下の一項目だけソートされないで表示される問題を修正
[BUG] 日別打鍵数リストビューで右クリックしたときに,過去の日のログに存在しないIDがあった場合に落ちてしまう問題を修正
[BUG] メインタブで表示している合計プロセス数の値を修正
[CHG] 1日ごとの打鍵数グラフで前の月にもさかのぼって値を表示するよう変更
[CHG] total.xmlを利用しないことにした(サンプルとして出力は残す)今後,合計打鍵数の値はallday.xmlのみを利用する
[CHG] allday.xmlの仕様を変更.TotalDayの項目を削除した
[CHG] 多重起動の禁止(Mutexを使った方法)
[CHG] 日別打鍵数リストビューの「日付」列に曜日も表示する
[CHG] 日別打鍵数タブに選択したアイテムの最大打鍵数と最小打鍵数を表示
[CHG] 日別・プロセス別打鍵数のリストビューでCtrl+A→すべて選択を実装
[CHG] 1日ごとの打鍵ログについて打鍵があった時間帯のみ出力してスリムにした

検討中のこと

  • [NEW] 詳細ログの開始・終了をショートカットキーを登録できるようにする
  • [NEW] アイコンを作ること.(作り次第,タスクトレイへの格納も導入)
  • [NEW] 打鍵プラグインの実装.キーが押されるたびに呼び出されるインタフェースを定義して,外部DLLとしておけるようにする.A〜Zの打鍵数頻度を保存したいとか,1万打鍵ごとにポップアップ通知を出すとかいろいろできるかも.
  • [CHG] 1時間ごとの打鍵数についても「その日」の過去24時間しか表示しないので,前の日にさかのぼって表示する.
  • [CHG] process.xmlのNextID項目を削除して,次に新しいプロセスへの入力が発生したときはこれまでのIDの中でもっとも大きい値+1を利用する
  • [CHG] 多重起動の禁止をMutexではなくプロセス名(プロセスが存在するディレクトリ)を用いて行う.多重起動で問題なのは同じログを上書きしてしまうことなので,同じプロセスであっても場所が違えば問題ない.
  • [CHG] 定期的に(間隔は設定可能)ログを保存できるようにする.日付が変わったときのログ保存もタイマー駆動にする(現在は日が変わって打鍵したタイミング).
  • [NEW] プロセス別打鍵数タブでプロセス名を左クリックしたときに「名前」を変更できるようにする.標準では[hoge.exe]の名前が[hoge]になるようにしているが,たとえば[msnmsgr]よりも[MSNメッセンジャー]とした方が後から見てわかりやすい.