AutoHotKeyでポインタ跳び防止した

本日の成果:AutoHotKeyでポインタ跳び防止した

  会社のPCに、自前のキーボードとマウスを繋いで使っています。情報漏洩防止の観点からは問題ないと思いたい(笑)。ところでこのマウスが、ポインタがたまににピョと飛ぶのです。常に正確に右に512ドット飛ぶのです。故障しているのではないかとも思われますが(ていうか多分そう)、めんどくさいのでそのまま使ってました。大抵は忘れた頃にピョと飛ぶ程度なので。
  でも最近、たまに機嫌が悪いとおそろしい頻度で飛びまくるようになってきたのです。それも仕事が忙しいときほど飛びまくりモードが発動しやすいような気がする(多分気のせい)。作業のリミットが近づいて焦っているときにピョピョピョピョとポインタが飛んで、うっかり違うところをクリックしてしまったりすると、温厚な私でもだんだん怒りがこみあげてきます。ムキー!!

  というわけでそのような状況を改善するソフトはないものかと、探してみると見つかるもので、最近までカーソルリミッタというフリーソフトを使ってました。これはどちらかというとイメージセンサのご乱心を防ぐためのソフトのようで、異常に高速なマウスポインタの動きを検知したら元の場所にポインタを戻してくれるというものです。これのおかげでかなり怒りが治まったものの、このソフトの作者も言うとおり、完全ではありませんでした。まず、「異常に高速」なのを検出するのに、ポインタの過去の座標と現在の座標とを比較するのですが、これが実際に画面に表示されたポインタの座標なので、例えば「画面右端付近で操作をしているところでピョと右に512ドット飛ぼうとしたが、すぐに画面の端にぶつかり、実際には例えば20ドットしか移動しなかった」ような場合、このソフトはこれを20ドットの移動としか認識しないので「異常に高速」とは見なしてくれません。逆に20ドットの移動を「異常に高速」と見なしてもらうように設定変更することもできますが、今度は普通にマウスを素早く移動しただけでも「異常に高速」とされて元の位置に戻されてしまうようになってしまいます。それと、この「異常に高速」だったら「元の位置に戻す」という動作は、一旦マウスポインタが表示された後で行われるので、よく見ると一瞬だけピョとポインタが飛んでいるのが判ってしまうという問題もありました。
  そのようなわけでその辺まで含めて解決してくれるツールは見つけられず、自作するか現状で我慢するかしかないのかと思っていたところに、AutoHotKeyでマウスの動きを監視するスクリプトというのを見つけまして、試してみたところ前述の問題をクリアすることができそうで、これを参考にしてマウスの加速度と かかる重力を逆算して、異常値を検出したらそのメッセージを捨てるスクリプトを作ってみたところ、かなり良好な結果が得られました。もう、今までのストレスが嘘のよう。
  c++でDLL作ってメッセージフックして・・・としなければいけないかと思っていたところが、スクリプト一本で目的を達成してしまいました。AutoHotKey強力ですね。でもお前さん、ホットキーのツールだった筈なのに、何でそんなことまでできちゃうんだい?


投稿日

カテゴリー:

投稿者:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です