人間らしくマウスを動かす。
パソコンの前で居眠りをしている間も、人間らしくマウスカーソルを動かし続けたい。そんな時、あなたならどうしますか?
流行のAIですか?人間のマウスカーソルの動きを学習、その真似をさせますか?
自分が提案する方法は、もっと簡単な、あなた自身のコピーです。
Pythonのmouseパッケージ
Pythonのmouseパッケージを使えば、WindowsやLinuxで簡単にマウス操作の記録と再生ができます。
【補足1】Linuxでは、実行にroot権限が必要だったり、バグでマウス操作の記録ができなかったりと、少し残念な状況ではありますが。
【補足2】macOSについても、サポートの兆しはあるようです。
mouseパッケージのインストール
mouseパッケージのインストールにはpipコマンドを使います。
pip install --user https://github.com/boppreh/mouse/archive/master.zip
【補足3】Linuxでは事前にpython-pip、もしくはそれに相当するパッケージをインストールしてから、このコマンドを実行してください。
【補足4】PyPIではなくGitHubから直接インストールしている理由は、PyPIのパッケージが2017年以降更新されていないからです。
mouseパッケージによるマウス操作の記録
マウス操作の記録は、簡単なコマンドを実行するだけです。
python -m mouse > mouse.rec
すると、mouse.recというファイルに、あなたのマウスの操作(MoveEvent / ButtonEvent / WheelEvent)が、一行につき1つのJSONという形式で記録されます。
{"event_type": "down", "button": "left", "time": 1571365531.208882, "event_class": "ButtonEvent"}
{"event_type": "up", "button": "left", "time": 1571365531.2948565, "event_class": "ButtonEvent"}
{"x": 508, "y": 1033, "time": 1571365531.7171013, "event_class": "MoveEvent"}
{"x": 508, "y": 1033, "time": 1571365531.841962, "event_class": "MoveEvent"}
{"delta": -1.0, "time": 1571365531.843961, "event_class": "WheelEvent"}
ただしこの記録の作業は、Windows上で行ってください。Linuxだとうまく動きませんでした。
Dockerによる再生環境の準備
「Dockerなにそれ?」という人は、ここを読み飛ばしても問題ありません。
---- ---- ---- ---- ヨミトバシ OK ココカラ ---- ---- ---- ----
そのまま記録した環境で再生しても良いのですが、せっかくなのでDockerでサクッと再生環境を準備します。
docker run -it --rm -p 8080:8080 --privileged --name mouse-player uphy/ubuntu-desktop-jp:16.04
コンテナを起動したら、マウス操作を記録したmouse.recを送り込みます。
docker cp mouse.rec mouse-player:/root/
そしてブラウザでhttp://localhost:8080/にアクセスし、画面左のSettingsからLocal Cursorのチェックを外してから、画面中央のConnectをクリックします。
【補足5】このLocal Cursorのチェックを外すことによって、画面の向こう側のマウスカーソルが常に表示されるようになります。
接続できたらmouseパッケージをインストールして、準備完了です。
---- ---- ---- ---- ヨミトバシ OK ココマデ ---- ---- ---- ----
mouseパッケージによるマウス操作の再生
マウス操作のすべてを再生するなら、
python -m mouse mouse.rec
マウス操作の動きの部分だけを再生するなら、
# Windowsの場合
findstr MoveEvent mouse.rec | python -m mouse
# Linuxの場合
grep MoveEvent mouse.rec | python -m mouse
という簡単設計。
マウスカーソルの位置に注目して、このデモ動画を見てください。
再生コマンドを実行した途端に、黒いマウスカーソルが独りでに動き出します。
【補足6】コマンド実行後に表示されるエラーが見苦しいですが、これもバグのせいです。
やってみるとわかりますが、マウス操作を再生している間、そこには自分と別の人格が存在し、その人格と一つのマウスを取り合っているような、そんな不思議な感覚に陥ります。
これでもう、マウスはあなたの手を離れても、人間らしく元気に動き回ることができるようになりました。
Let's きっちり納税。noteでの収益を励みに、皆さんへ有益な情報を届けます!