PyAutoGuiはマウスやキーボードによるGUIでのPC操作をスクリプトで指定した通りに実行することができるPythonのライブラリです.
アプリケーションをまたいでドラッグしたり,Shiftキーを押しながら何かのキーを押すといった操作を自動化することが可能となります.

目次

  1. インストール
  2. インポート
  3. 座標の取得
  4. 自動操作
    1. マウス操作の自動化
    2. キーボード操作の自動化

インストール

以下の環境の例です.

  • macOS 11.2.3
  • Python 3.9.4
  • PyAutoGUI 0.9.52

インストールは

pip3 install pyautogui

で行えます.

インポート

スクリプトでは,はじめにpyautoguiのインポートを行います.

import pyautogui as gui

あわせて,フェールセーフをかけることが推奨されています.

pyautogui.FAILSAFE = True

FAILSAFETrueの場合,(0,0)座標にマウスをもっていくことで,実行中のスクリプトを強制停止できます.

座標の取得

スクリプトを記述するには,ディスプレイサイズやマウスポインタの座標を知っておく必要があります.

ディスプレイサイズは次のように取得します.

disp = gui.size()
print(disp.height, disp.width)

また,マウスポインタの位置は次のように取得します.

pos = gui.position()
print(pos.x, pos.y)

自動操作

マウス操作の自動化

マウス操作では絶対座標や相対座標を指定し,クリックやドラッグを行います.
例えば,x, y = (100, 200)のような値であるとき,

gui.moveTo(x, y)  # 指定した絶対座標へ瞬間的に移動
gui.moveRel(x, y, duration=1) # 指定した相対座標へ1秒掛けて移動
gui.click(x, y, button='left') # 指定座標で左クリック
gui.dragTo(x, y, button='left', duration=1) # 絶対座標へ1秒掛けてドラッグ
gui.doubleClick() # 現在地でダブルクリック

のようにスクリプトを記述します.

右クリックはrightClickメソッド,中央でのクリックはmiddleClickです.

(x, y)座標でマウスの左ボタンを押しっぱなしにするには

gui.mouseDown(x, y, button='left')

とします.
放すにはmouseUpです.

キーボード操作の自動化

キーボードで「text」と瞬時に入力するには,

gui.typewrite('text')

とします.

0.2秒間隔で一文字ずつ入力してエンターキーを押したいなら,gui.typewrite(['t', 'e', 'x', 't', 'return'], interval=0.2)のようにします.

入力でなく,キーを押下するだけなら,

gui.press('esc')

のようにpressメソッドを使います.

command + vの同時押しは

gui.hotkey('command', 'v')

で実現できます.

キーを押しっぱなしにするには,例えばshiftキーなら,

gui.keyDown('shift')

とします.
解除するには反対にkeyUp()とします.

特殊なキーは公式ドキュメントで参照してください.
特に使いそうなものは

  • space / tab
  • ctrl / shift / command / option
  • enter / return
  • backspace / del
  • up / down / left / right

あたりかと思います.