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 で回す。