pyautogui
試行錯誤
・locateCenterOnScreenを使って特定の位置をクリックする場合、ウィンドウサイズが変わると上手くいかなくなってしまう
・そのため、「ウィンドウの横幅」と「ウィンドウの左上座標」から、「クリックしたい位置」を求める計算式をつくった(https://qiita.com/Cartelet/items/9affdd7440c218bc080d)
position
import pyautogui
import sys
try :
while True :
input('取得したい座標にマウスカーソルを合わせてからEnterを押してください')
print(pyautogui.position())
except KeyboardInterrupt :
print('終了')
sys.exit()
locateOnScreen
location_closebutton = pyautogui.locateOnScreen("close.png")
location_closebutton.left # left,top,width,height
center_closebutton = pyautogui.center(location_closebutton)
center_closebutton.x #x,y
xPos, yPos = center_closebutton
pyautogui.click(xPos, yPos)
locateCenterOnScreen
xPos, yPos = pyautogui.locateCenterOnScreen("close.png")
pyautogui.click(xPos, yPos)
locateAllOnScreen
for pos in pyautogui.locateAllOnScreen("close.png") :
print(pos)
click
# 現在のカーソル位置でクリック
pyautogui.click()
# 座標(20,100)でクリック
pyautogui.click(20, 100,)
# 現在のカーソル位置で0.5秒刻みにクリックを3回
pyautogui.click(clicks=3, interval=0.5)
PAUSE
# 処理を実行するたびに1秒待機する
pyautogui.PAUSE = 1.0
write / press
# 0.5秒の間隔で「入力しました」という文字列を入力する
pyautogui.write('入力しました', interval=0.5)
# Enterキー等の特殊キーを入力
pyautogui.press('enter')
# @や^,:のような特定の文字はキーボードのレイアウトにより違う入力になってしまう場合がある。その場合は
(https://tech-blog.rakus.co.jp/entry/20220613/python)を参照すること
keyDown / keyUp / hotkey
# ctrlとaの同時押し
pyautogui.keyDown('ctrl')
pyautogui.keyDown('a')
pyautogui.keyUp('a')
pyautogui.keyUp('ctrl')
# ctrlとaの同時押し
pyautogui.hotkey('ctrl', 'a')