Blog

打鍵数をカウントしてみた

2016.01.26Cat:プログラム

はじめに

特に意味もなく打鍵のカウントをしてみたかったので作ってみました。

基本はキーロガーと同じ要領です。
OS XはWindowsと大分仕組みが違うため、
フック(イベント情報を横取りする事)がなかなか難しい。

ので、今回はOS Xに絞って情報を集めてみた結果、、、
SwiftでもなくObjective−CでもなくC言語にて組むことになりました。

ソースは別の用途で用いられる可能性があるため割愛させていただきます。

流れ

簡単な流れとして

  1. エントリーポイント実行 (所謂 main関数)
  2. 自作のイベント関数(CGEventRef)をループ実行として登録する (※後述)
  3. ループイベント関数を実行開始する (※以下、関数例一覧)

    CFRunLoopSourceRef
    CFRunLoopAddSource
    CGEventTapEnable
    CFRunLoopRun()

と言った手順です。

2番の内容がここでの肝となります。
毎回ログに吐き出すほどでもないので、
10分間などの一定期間を定義して、その間の総計を出力するようにしました。

コードでの記述例で言うと

と言った感じです。あくまで抜粋です。
10分の間にグルグルとループしながらキーを打ったらカウント。

10分を超えた時点でキーを叩いたらまとめて
画面に今までのカウントを出力します。

一回の実行で42億回まではカウントしてくれるので
間違って立ち上げっぱなしでも一ヶ月は保ってくれそうです!!

もうちょっとUIもついたアプリに出来たらよかったのですが、、
取り敢えずの目的は達したので、まずまずとします。

最後に

出力された(カウントされた)出力は実際には以下です。

コマンド実行例は以下

4,50分の間に約5千回ほど打鍵してることが解りました。意外と少ないものですね。

以上です!

Author Profile

ohba
ランニングと音楽とヲタトーク好きプログラマーです。 数学と英語を勉強中です。 DeepLearning始めました!
» 投稿一覧
  • Launch Cart次世代ECサイト構築システム 初期月額無料
  • LaunchMovie ECに特化した動画制作サービス

Archive

ページTOPへ