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

前回お知らせした機能の実装が終わりましたのでα3公開です.次回あたりβ版になるかもしれません.αとβに何の差があるかと言われれば困りますが,入れたい機能はおおかた盛り込んできたかなーという気分の問題です.

ダウンロード
タイピングマネージャ(仮)のダウンロード
以前から使っている人へ
以下の更新内容でファイル配置の変更について書きましたので,ログをそのまま使いたい場合は手動で変更をお願いします.

※タイピングマネージャ関連の情報についてはこちらを参照
「タイピングマネージャ」の検索結果一覧 - tomoemonの日記

ちょっと疲れてるんで説明はざっくりと…(汗

とりあえず前回のリリースからの更新内容は以下のとおりです.

[NEW] アプリケーション用のアイコンを作成
[NEW] アイコンをタスクトレイに格納
[CHG] 終了時に確認メッセージを出すようにした

[NEW] 詳細ログをショートカットキーで開始,終了するための機能を追加
[CHG] ファイル配置の変更
      plugins/フォルダを追加
      config/フォルダを追加
      config/detail_log/フォルダを追加(プラグインを設定フォルダを作成)
      log/detail_log/フォルダ(プラグインごとにログフォルダを作成)
      plugins/DetailLog.dllを追加
      config/plugin_config.xmlを追加
      config/detail_log/trigger.xmlを追加
      comment.txtをconfig/detail_log/comment.txtに移動
      config.xmlをconfig/config.xmlに移動
      AnalyzePlugin.dllの名前をPlugin.dllに変更

[NEW] 外部DLLのプラグイン機能とプラグイン一覧表示機能を追加
[CHG] 詳細ログ機能をプラグイン化

[CHG] 最後に選択していたタブの番号を保存して次回同じタブで起動

[NEW] プロセス別打鍵リストビューをダブルクリックしたときに該当する
      項目の名前を変更できるようにした
      Enterか別の所をクリックで完了,Escapeで取り消し

[CHG] process.xmlのNextID項目の読み込みを行わず,これまでのProcess
      の中でもっとも大きいIDの値+1を次のIDとして利用する
[CHG] 多重起動の禁止を同じディレクトリの場合だけに変更
[CHG] 1時間ごと,1分ごとの打鍵数グラフで昨日の値までさかのぼって
      表示するように変更
[CHG] 日が変わった時にリストビューの表示を更新
      (今までは日が変わってから初めての打鍵をしたとき)
[NEW] 一定時間ごとにログを保存するようにした(とりあえず10分ごと)

タイマー駆動でログ保存するようにした関係上,いろいろ手を加えているので,またログの保存関係でバグが入り込んでいる可能性があります.もし見つけたら報告をお願いします.

プラグイン機能について

あとでちゃんとマニュアルにします.たぶん作る人はいないと思いますが..

Plugin.dllを参照して,IStrokePluginインターフェースを実装したDLLアセンブリをpluginsフォルダに置くことでプラグインを動作させることが可能です.基本的に「キーが押されたとき」「キーが離されたとき」に何かさせることを目的としていますが,できることに制限はないので*1分析ツールをプラグインで書くこともできます.

呼び出されるときにプラグインは以下の情報を受け取ります.

  • 押されたキーコード
  • 押しっぱなしになっているかどうか
  • Shift,Ctrl,Altの状態
  • 打鍵対象のプロセスのフルパス
  • 打鍵対象のウィンドウタイトル

それから,他のプラグインの情報を参照することも可能です.組み込みのプラグインから今日の打鍵数や合計打鍵数,プロセスに登録している名前などを利用することができます.

なんか付け足したい機能ができたらプラグインとして入れていく予定です.もちろん作っていただいても構いませんけどw詳細ログプラグインのソースをSourceForgeに上げているのでプラグイン作成の参考にしてください.

以下はこんなこともできるという例.

  • キーを押すごとに音を鳴らす
  • 一定時間ごとにメッセとかTwitterに打鍵数を表示
  • 定期的に打鍵内容をブログに投稿する

詳細ログ機能について

本体から分離してプラグインになりました.詳細ログ機能を使う人ってそんなに多くないだろうという感触と,本体にくっついていると内部がごちゃごちゃしていじりづらいという作る側の事情からの変更です.

ここでは新機能の詳細ログトリガについて説明します.

これまで詳細ログを取得するにはマウスを動かして「開始」ボタンを押さなければいけなかったんですけど,キーボードの状態を取得するツールなのにマウスを使うとはなにごとだっ!と(脳内で)おしかりを受けたのでショートカットで開始できるようにしました.

対象プロセス
このプロセスに対して打鍵している最中に指定されたショートカットキーが入力されたら,詳細ログの取得を開始します.
自動で付加するタグ
このプロセスに対して,指定した開始ショートカットキーを受け取ったら自動的にここで指定するタグをログに付け足して保存します.
ショートカット
Ctrl+Fなどの組み合わせや,複数のキーの連なりを指定することができます.BackSpaceを押すとひとつ前のキーを削除します.Ctrl,Alt,Shiftは単独では入力として使えません.(もちろんBackSpaceも)

「*…すべてのプロセスを対象」としたときを除いて,開始ショートカットも終了ショートカットも指定したプロセス上でしか動作しません.また,特定プロセスを指定した状態で詳細ログを開始した場合は,そのプロセスに関する入力だけを保存します.たとえば,タイプウェルを指定して詳細ログを行っている最中に,ブラウザに入力してもブラウザへの入力は詳細ログに保存しません.
※以前と同様に「開始」ボタンを押したときは「すべてのプロセスを対象」にして詳細ログの取得を行います.

タグ付けに関してはたとえば,タイプウェル国語Rの基本を練習するときは以下のような二種類のトリガを登録しておくことで,あとから詳細ログのデータを管理しやすくなります.

  • 対象:タイプウェル国語R
  • タグ:[TW国語R][基本常用語]
  • 開始:Ctrl+K I H O N
  • 終了:Esc
  • 対象:タイプウェル国語R
  • タグ:[TW国語R][カタカナ]
  • 開始:Ctrl+K A N A
  • 終了:Esc

まぁ,まだ分析できないので需要はあんまりないと思いますけどね...もし,せっせと詳細ログを取っている奇特な方がいらっしゃいましたら,使ってみてください.

メインタブについて

詳細ログ機能がプラグインに引っ越したので穴が開いてしまいました.なにを入れようか検討中.一日の目標打鍵数と達成度とかにしようかな.これ入れたらいいんじゃね?ってのがあったら教えてくださいな.

アイコンについて

作っておいてなんですけど,キーボードの打鍵数を数えるソフトでアイコンがマウスなのはすごく誤解されそうな気がwwとりあえず,今年はねずみ年だし僕もねずみ年だしねずみでいいんじゃね?と思ってねずみにしちゃいました.

あとからこじつけ
マウスの鳴き声ってキーキー(key)って感じじゃなかったっけ?

だからどうだということもありませんがorz

検討中のこと

前の日記から引っ越し.

  • [CHG] 入力が数秒間(設定ファイルに記述)がなければグラフの値を0にする.これと合わせてアプリケーションごとに「入力していた」時間の計測もできる.
  • [CHG] プロセス別打鍵数,日別打鍵数リストビューで「クリップボードにコピーする」を押したときにCSV形式でコピーする
  • [NEW] メニューの「オプション」に「リストビューの選択部分をコピー(C)」を付けて,現在表示しているタブの選択部分をCSV形式でコピーできるようにする.(他の方法がいいかも・・・)
  • [NEW] 打鍵のtomoのようにそのまま日記に貼り付けられるようなテキストの出力→その日の打鍵数,合計打鍵数,プロセス名など(プロセス名は指定したものだけ表示とか)
  • [NEW] キー入れ替え系のソフト対応のためにフィルタープラグインを導入

だいぶ減ってきましたね.
ぶっちゃけ今週はこれにかかりきりになりすぎたので少し自重しようと思います.
とか書いてるとまた重大なバグが出たりするんだよなきっと...

*1:制限するには自分用のスクリプト言語書かないといけない?