rpa - 41semicolon/41semicolon.github.io GitHub Wiki
1. AHK
マウスポジションの取得
使い捨てのスクリプトの場合「あそこをクリックして・・・」というように固定座標を使って処理を書く。その時重要なのは クリックするべき座標の列をどう効率よく取得するかである。以下の ahk ファイルは、Ctrl+L を押下すると、無題のノートパッドに座標を追記する。これにより効率的に座標を集めることができる:
^l::
CoordMode,Mouse,Screen
MouseGetPos,PosXA,PosYA
ControlSend,, %PosXA% %PosYA%, ahk_class Notepad
return
2. pyautogui
公式DocのCheatSheetがまとまっている。以下 import pyautogui as pgui とする:
マウス操作
- マウスの移動:
pgui.moveTo(30, 40, duration=1)で座標(30,40)に1秒かけてマウスを移動pgui.moveRel(30, 40, duration=1)は相対的な移動(現在位置からの移動)
- マウスのクリック:
pgui.click()左クリック。- 右クリックは
pgui.rightClick(), ダブルクリックはpgui.doubleClick()
- 右クリックは
- マウスのD&D:
pgui.mouseDown()でマウス押下、その状態でmoveToして、pgui.mouseUp()でマウス押下の解除 - マウスの現在位置の取得:
pgui.position()
画像認識
pip install opencv-python opencv-contrib-python で OpenCV を使えるようにしておくと画像認識できる
- 画像認識ピクセルの取得:
pgui.locateOnScreen('a.png', grayscale=True, confidence=0.9)で四つ組(left, top, width, height)もしくはNoneが返る。画像パス以外はオプションで、この例では判定をグレースケール上にし、一致率を90%に指定している。- マッチ個所が複数あるようなユースケースは
pgui.locateAllOnScreen('a.png')を for で回す。
- マッチ個所が複数あるようなユースケースは