PyAutoGuiでマウスとキーボードの操作を自動化
PyAutoGuiはマウスやキーボードによるGUIでのPC操作をスクリプトで指定した通りに実行することができるPythonのライブラリです.
アプリケーションをまたいでドラッグしたり,Shiftキーを押しながら何かのキーを押すといった操作を自動化することが可能となります.
目次
インストール
以下の環境の例です.
- macOS 11.2.3
- Python 3.9.4
- PyAutoGUI 0.9.52
インストールは
pip3 install pyautogui |
で行えます.
インポート
スクリプトでは,はじめにpyautogui
のインポートを行います.
import pyautogui as gui |
あわせて,フェールセーフをかけることが推奨されています.
pyautogui.FAILSAFE = True |
FAILSAFE
がTrue
の場合,(0,0)座標にマウスをもっていくことで,実行中のスクリプトを強制停止できます.
座標の取得
スクリプトを記述するには,ディスプレイサイズやマウスポインタの座標を知っておく必要があります.
ディスプレイサイズは次のように取得します.
disp = gui.size() |
また,マウスポインタの位置は次のように取得します.
pos = gui.position() |
自動操作
マウス操作の自動化
マウス操作では絶対座標や相対座標を指定し,クリックやドラッグを行います.
例えば,x, y = (100, 200)
のような値であるとき,
gui.moveTo(x, y) # 指定した絶対座標へ瞬間的に移動 |
のようにスクリプトを記述します.
右クリックは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
あたりかと思います.