タイピングマネージャ(仮)

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


以前日記で書いていた打鍵数カウントソフトのログを取る部分に関して一通りできたので公開します.詳細ログの分析については別のツールとして作ろうかと考えているので,打鍵数カウントツールとしてほぼ完成形です.打鍵のtomo以降,自分の入れてみたかった機能をすべて入れたので(私的に)打鍵数カウントツールの決定版です.

名前
タイピングマネージャ(仮) or 打鍵のtomo 2.0
動作OS
Windows2000, XP, Vista(XP, Vistaで動作確認)
実行に必要なもの
Microsoft .NET Framework Version 2.0
ダウンロード
タイピングマネージャ(仮)のダウンロード

注意

※その1 キー入力ができなくなる危険性
キー入力を横からかすめ取ってログを残すという性格上,最悪の場合キーボードの入力が一切できなくなる恐れがありますのであらかじめ注意してください.
※その2 詳細ログでは入力がすべて保存されます
詳細ログではすべての入力したキーが保存されますので,ONにしたままでパスワードなどを入力するとパソコン上にパスワードが残ることになり非常に危険です.タイピング練習など明確な目的があるときだけ注意して使用するようにしてください.
※その3 ウイルスバスターと一緒に使うときの注意
ウイルスバスター2008を使っていると起動時に「不審な変更を拒否しました」というメッセージが出るようです.Sleipnirなどの他のアプリケーションでも同様のメッセージが出るようですが,DLLをロードしているだけで問題はありません(はず).例外設定の登録をすればメッセージは出なくなるようです.上記のメッセージがあらわれないのに本ソフトの挙動がおかしい場合はOSを再起動するとメッセージが出る場合もあるようです.
参考:ウイルスバスター2008で「不審な変更を拒否しました」と表示される - ScriptBrowserK
※その4 WindowsVistaで使うときの注意
WindowsVistaで本ソフトを通常のモードで起動した場合,管理者権限のあるプロセスに対する打鍵を一切カウントすることができません.管理者権限のあるプロセスに対する打鍵もカウントしたい場合は,本ソフトも管理者権限で起動する必要があります.
参考:Adobe - カスタマーサポートからのお知らせ

説明:メインタブ

どう見てもタ○クマネージャです.本当に(ry

左上は見ての通り瞬間的な打鍵速度のグラフです.打鍵速度(打鍵/分)の計算にはタイプウェルと同様に過去20打鍵の平均打鍵時間から算出する方法を取っています.右側はその履歴になります.ちなみに右側の折れ線グラフはこれ以外に3種類あり,グラフをクリックするごとに切り替わります.

  • 打鍵速度履歴(打/分)
  • 打鍵数履歴(1分ごと)
  • 打鍵数履歴(1時間ごと)
  • 打鍵数履歴(1日ごと)

突っ込まれるかもしれないのであらかじめ書いておくと,打鍵速度履歴のグラフは1秒ごとにグリッドがずれていきますが,それ以外のグラフで1分,1時間,1日が経過してもグリッドは動かないのは仕様です.打鍵速度履歴の方でもグリッドを動かす意味はそれほどないのですが,タス○マネージャっぽくするためには必要だったのです!

真ん中の詳細ログはこのソフトのメインとなる機能で,1打鍵ごとに以下の情報を記録するものです.タイピング練習の結果から自分の癖を分析したり,キーボード配列の特徴を見るためにつけた機能です.細かい分析機能はまだついていません.

左下のイベントは上で挙げたようなキーイベントの情報を表示したものです.キーボードによって下げたり,上げたりしても反応しないキーがあるのでチェックのために用意しました.右下の説明は特にありません.

説明:プロセス別打鍵数タブ

名前の通り打鍵対象になっているプロセス(アプリケーション)別の打鍵数をリストビューで表示したものです.ここに表示される打鍵数は当日1日分だけです.

説明:日別打鍵数タブ

日付ごとの打鍵数と打鍵対象となったプロセス数をリストビューで表示します.特に面白いこともないので画像はありません.

説明:詳細ログタブ

メインタブで詳細ログのON→OFFを行うと一つの詳細ログファイルが作成されます.この詳細ログタブではこれまでに作成した詳細ログファイルのリストを確認することができます.今のところ確認とCSV出力のみで特に分析は行いません.「日付で分類」はその名の通り詳細ログファイルを日ごとに分類したものを表示するもので,「タグで分類」は詳細ログ取得時に入力したタグにより分類するものです.

タグについて,例えばメインタブでテキストボックスに以下のように入力してからONボタンを押して詳細ログの取得を行うと,「タイプウェル」や「国語R」「打鍵トレーナ」がそのログのタグとして保存されます.ログ表示時には選択したタグをもつログが一覧表示されます.

ログ一覧を見るときは初めに「ログ読み込み」ボタンを押してください.

詳細ログ

分析したい人のために詳細ログファイルのフォーマットについて説明します.一つ一つの打鍵はStrokeListの中のKey要素で表されます.それぞれの属性について簡単に紹介します.

key_name
キーボード上の文字(Fnのような特殊なキーの場合は空)
vkey_coe
仮想キーコード
scan_code
スキャンコード
down
キーを押し下げた時間(単位はミリ秒,最初の押下を0ミリ秒とします)
up
キーを上げた時間(単位はミリ秒)

時間の取得はQueryPerformanceCounter関数を使っているので精度はそれなりに高いはずです.他の時間取得関数と比べると負荷が大きいですが,数10ミリ秒に1回呼び出す程度では問題になりません.

<?xml version="1.0" encoding="utf-8"?>
<DetailLog>
 <Tag>TW,国語R</Tag>
 <Comment>練習</Comment>
 <Date>2007/12/03 22:31:51</Date>
 <StrokeList>
  <Key key_name="P" vkey_code="80" scan_code="25" down="0" up="125" />
  <Key key_name="O" vkey_code="79" scan_code="24" down="54" up="211" />
  <Key key_name="T" vkey_code="84" scan_code="20" down="138" up="162" />
  <Key key_name="T" vkey_code="84" scan_code="20" down="239" up="358" />
  <Key key_name="O" vkey_code="79" scan_code="24" down="328" up="475" />
  <Key key_name="Space" vkey_code="32" scan_code="57" down="383" up="545" />
  <Key key_name="T" vkey_code="84" scan_code="20" down="479" up="583" />
  ...
 </StrokeList>
</DetailLog>

これをCSVに出力した場合は以下のようになります.

P,80,25,0,125
O,79,24,54,211
T,84,20,138,162
...略
[key_name],[vkey_code],[scan_code],[down],[up]という並びになります.

他の打鍵数カウントソフト

久しぶりに打鍵数カウントソフトを調べてみると「タイプ数カウンター」なるものがありました.こういうたぐいのソフトってあまり見つからないのですが,「キーボード」「入力」「カウント」以外に良い検索語はあるでしょうか.打鍵数カウントソフトという言葉は一般的でないらしいですね.

タイプ数カウンターはグラフ機能のついている珍しいタイプです.これと比べるとグラフはもう少し機能を増やした方が良いように思えます.タイプウェルの詳細記録のようにマウスオーバーでその点の数値を表示するくらいはあってもいいかもしれません(簡単にできるかはわかりませんが..)

キーごとの打鍵数合計ってあった方が嬉しいのですかね.個人的にはあまり興味がないのですが(必要なものについて詳細ログを取っておけばよい程度),タイプ数カウンターのレビューを見るとその機能についての言及が非常に多いです.検討します.

今後の予定

  • 日別打鍵数タブで日付を複数選択し,それらの合計・平均打鍵数を表示
  • 発生イベントで押された文字も表示する
  • グラフ機能の強化(マウスオーバーで数値表示)
  • プロセス別に詳細ログの開始と終了を操作できるショートカットシーケンスを定義できるようにタブを追加
  • ウィンドウタイトル別の打鍵数も上手い感じに保存できないか(特定のプロセスのみタイトル別も保存するとか)
  • 姫踊子草などのフックを使ってキーをすり替えるツールを使った場合は,システム的に対応するのは難しそうなのでキーのマップを用意してもらうことにする(フィルタドライバを使うものはレジストリをいじるものについては問題ない)
  • タスクトレイに格納すること
  • アイコンを作ること.(これが一番頭を悩ませる)

バグ報告など

一通りチェックしたつもりですが,不具合はいろいろあると思うので人柱になってくれる方でバグを見つけられたら報告をお願いします.トモえもんの押入れの掲示板はほとんどチェックしていないので,ここのコメント欄にお願いします.

ソフト名

見た目から行くとタイピングマネージャなんですが,私としてはkuro烏賊さんに付けていただいた打鍵のtomoという名前が気に入っているのでそのまま使いたいんですよねー.かといってまったく同じ名前にするわけにもいかないので,2.0なんてすでに時代遅れな感じさえするものを無理やりつけてみたりするわけです.


先生いないからってまるっと1週間使ってしまった..そろそろ真面目に研究しないと怒られるので,分析ツールについてはしばらく先になると思います.