スクリーンセーバーキラー/マウスジグラーの自作?(digisparkでプログラミング:プログラム編)
うちの会社のPCでは、「従業員監視ソフト」(Skysea)が常駐していて、スクリーンセーバーが起動したら(一定時間操作が無いと)、ITに報告されるようになっています。
テレワーク中にスクリーンセーバーが起動したら、サボり認定されて大変。
ということで、スクリーンセーバ妨害ツール(マウスジグラー)を購入しようとamazonを物色していました。
マウスジグラーって、基本的にスクリーンセーバーが作動しないように、定期的にマウスカーソルを動かすものなのですが・・・
amazonのレビューを読んでみると・・・
- 5秒ごとに左に1ピクセルずつ移動していって、いつしかマウスカーソルが画面左端まで移動してしまうもの。
- 目視で確認できるほどカーソルがジャンプして、画面をクリックしようとしたら、あらぬところをクリックしてしまうもの。
などがあるようで、なんだか心配。
以前、趣味でArduino Leonardoをいじっていたことがあるのですが・・・
Arduino LeonardoはマウスやキーボードなどのHIDデバイスとして動作できるので、自動でマウスを動かすことなど簡単。
だったら、マウスジグラーを自作してしまおうとおもった次第。
ただ、Arduino Leonardoは5cm×7cmサイズで、常時PCに接続しておくのはとても邪魔。
検索したところ「Digispark」が小さくて安くて、マウスジグラーによい。という記事がたくさんあったので、久しぶりにマイコンプログラミングです。
【Digispark】マウス操作!売れているらしい・・・! | おもろ家
★ テレワークの味方(!?)、Digisparkでスクリーンセーバーキラー(マウスジグラー)の製作! ★ | Stardust-News.net
Digisparkの購入と設定はこちらのページを参照。
求める機能は、スクリーンセーバーが起動しないように・・・
①マウスカーソルを動かした後、元の場所に戻す(元に戻せば、操作への影響は抑えられるので)
②動かす時間間隔と、動かす量は乱数で決める。(一定時間だと、IT部門に見破られそうなので)
プログラムがこちら
#include "DigiMouse.h"
unsigned int move = 1;void setup( ) {
pinMode(1, OUTPUT);
DigiMouse.begin();
}
void loop( ) {
digitalWrite(1, HIGH);
move=random(1,5);//移動量(ピクセル)
DigiMouse.moveX(move);
DigiMouse.delay(10);
DigiMouse.moveX(-move);
digitalWrite(1, LOW);
DigiMouse.delay(random(60000,180000));//間隔(msec)60秒から 180秒
Arduino IDEで書き込んで完成。
作業時間2時間くらいでした。
USB入力デバイス - HID準拠マウスとして認識され、Microsoftのドライバーで動作しているようです。
これなら、PCを監視されても、ほかのマウスと区別がつかないですね。もう少し工夫が必要です。追記を参照。
基盤むき出しで、こんなもの会社に持ち込んだら速攻で面談室で事情聴取のされますが、自宅で使用する分には無問題。
熱収縮チューブで保護するのが一般的なようですが、そんなもの手元にありませぬ。
ホットボンドで固めてみようかな?と思っているfocuslightsでした。
追記
WindowsのBluetoothとデバイス画面を確認すると「DigiKey」と表示されていました。
あと、DigisparkはUSBポートに差し込んだあと5秒間プログラムの書き換えを待つのですが、この際にdigispark Bootloaderと認識されるようです。
会社が管理しているPCで使うと、システム管理者にdigisparkが見破られてしまうので、もう少し工夫が必要です。
こちらのサイトに説明がありましたので、ご参照ください。
note.com
作業時間は10分ほどでした。