いまさらだけど Python を学習する:自動化プログラミング

今回は「いまさらpython学習」の7回目です。今回はマウス操作を自動化するを書いてみます。pythonには、マウスやキーボードの操作を自動化するためのモジュールとして、PyAutoGui というものが用意されています。今回はこれを利用していきたいと思います。

1回目のインストール環境が前提です。

さて今更ですが、Python学習を始めていこうと思います。今日から数回に分けてPythonの学習記事を書いていきたいと思います。「Python をつかってみたい」「Python...

参考:https://pyautogui.readthedocs.io/en/latest/

スポンサーリンク

PyAutoGui をつかう

それではさっそく、pyAutoGuiを使っていきましょう。

インストール

まずは、インストールする必要があります。Pythonでは追加のモジュールを利用する際、pip というパッケージを管理するためのコマンドを利用します。「いまさらpython学習」の1回目のようにインストールした環境ではインストール直後は pip.exe にパスが通っていないため、pip 単体では利用できません。コマンドプロンプトを立ち上げ以下のようにして実行します。

1
py -m pip install pyautogui

早速使ってみる

まずは、参考サイトとして付けた公式のサンプルコードを使ってみます。Windowsのペイントを用意して線が引ける状態でセットしておきます。公式サンプルは実行したら突然始まるので、今回はペイントウィンドウへマウスカーソルを持っていくために「5秒待ち」を入れました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pyautogui
import time

distance = 200

time.sleep(5)

while distance > 0:
    pyautogui.drag(distance, 0, duration=0.5)   # move right
    distance -= 5
    pyautogui.drag(0, distance, duration=0.5)   # move down
    pyautogui.drag(-distance, 0, duration=0.5)  # move left
    distance -= 5
    pyautogui.drag(0, -distance, duration=0.5)  # move up

コードを張り付けて実行(run)したら、ペイント画面に切り替えて待っていると以下のような絵を自動で描いてくれました。画像を認識してクリックさせることもできる様で、かなり簡単に自動化できそうな雰囲気です。次回は画像の認識を中心にやってみたいと思います。

エラー処理や、マウスカーソルがペイントアプリにあるかどうかの判定がないため、ペイント画面が開いていなくても、ドラッグし続けます。このプログラムの場合は失敗していても1分ほど待つと distance が 0 以下になり停止します。PyAutoGui にはもともと、フェールセーフ機能があり、プライマリモニターの四隅(例えば、画面の左上(0,0))の位置にマウスを「頑張って」持っていくと緊急停止します。