見出し画像

人間らしくマウスを動かす。

パソコンの前で居眠りをしている間も、人間らしくマウスカーソルを動かし続けたい。そんな時、あなたならどうしますか?

流行の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をクリックします。

画像3

【補足5】このLocal Cursorのチェックを外すことによって、画面の向こう側のマウスカーソルが常に表示されるようになります。

画像1

接続できたらmouseパッケージをインストールして、準備完了です。

---- ---- ---- ---- ヨミトバシ OK ココマデ ---- ---- ---- ----

mouseパッケージによるマウス操作の再生

マウス操作のすべてを再生するなら、

python -m mouse mouse.rec

マウス操作の動きの部分だけを再生するなら、

# Windowsの場合
findstr MoveEvent mouse.rec | python -m mouse

# Linuxの場合
grep MoveEvent mouse.rec | python -m mouse

という簡単設計。

マウスカーソルの位置に注目して、このデモ動画を見てください。

画像3

再生コマンドを実行した途端に、黒いマウスカーソルが独りでに動き出します。

【補足6】コマンド実行後に表示されるエラーが見苦しいですが、これもバグのせいです。

やってみるとわかりますが、マウス操作を再生している間、そこには自分と別の人格が存在し、その人格と一つのマウスを取り合っているような、そんな不思議な感覚に陥ります。

これでもう、マウスはあなたの手を離れても、人間らしく元気に動き回ることができるようになりました。



Let's きっちり納税。noteでの収益を励みに、皆さんへ有益な情報を届けます!