[Windows] キータイプ数をカウントするには

キータイプ数をカウントしたい理由

自分が思うに、PCでの作業はインプットとアウトプットに大別できる。例えば、サイトや動画を閲覧するような受身の作業がインプット、文書作成やコーディングなど成果物がある作業がアウトプットである。これを前提に考えれば、自分が積極的にアウトプットしたかどうかを判定するには、キータイプ数を計測すればいい、ということになる。かなり強引だけど、あながち間違っていないと思う。

キータイプ数をカウントできるソフトを探す

ネットを検索したら、とりあえず2つ見つかった。

【レビュー】PCを利用した時間帯を把握するのに便利なキー入力のカウントツール「KeyCounter」 – 窓の杜
http://www.forest.impress.co.jp/docs/review/20150911_720779.html

窓の杜 – 【NEWS】1日のキー入力数をカウントして折れ線グラフを表示する「タイプ数カウンター」
http://www.forest.impress.co.jp/article/2006/05/24/typecounter.html

前者はシンプル、後者は多機能なソフト。ダウンロードして試してみたところ、共に時間当たりのタイプ数はグラフで表示されるものの、残念ながら数値で得ることはできなかった。

キータイプ数をカウントする仕組み

キータイプ数をカウントするソフトを作るのは難しくない。Windowsのグローバルフックの仕組みを使ってキー入力をフックすればよい。

ネットを探すとC言語のサンプルが見つかったけど、C言語はちょっとだるい。

グローバルフックを使ってみた – Gobble up pudding
http://fa11enprince.hatenablog.com/entry/2015/04/10/051454

C#のサンプルも発見。これはよさげ。

Low-Level Keyboard Hook in C# – Stephen Toub – Site Home – MSDN Blogs
http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx

これらサンプルを参考に、時間ごとのキータイプ数をカウントするソフトを書いてみようと思う。