ð PyAutoGUI ç»åèªè
ð ã¯ããã«
PyAutoGUIã®ç»åèªèæ©èœã䜿çšãããšããããããçšæããç»åãšåããã®ãç»é¢äžããæ¢ãããã®äœçœ®ãååŸã§ããŸãã
äŸãã°ããä¿åããã¿ã³ã®ç»åãçšæããŠããã°ã
- ç»é¢äžããä¿åãã¿ã³ãæ¢ã
- ãã¿ã³ã®äžå¿åº§æšãååŸãã
- ãã®äœçœ®ãã¯ãªãã¯ãã
ãšããåŠçãèªååã§ããŸãã
座æšãçŽæ¥æå®ããæ¹æ³ãšæ¯ã¹ãŠããŠã£ã³ããŠã®äœçœ®ãå€å°å€ãã£ãŠã察象ãèŠã€ããããããšãå©ç¹ã§ãã
PyAutoGUIã®ç»åèªèã¯ãç»é¢ã«è¡šç€ºãããŠããç»åãšãçšæããèŠæ¬ç»åãæ¯èŒããŠäœçœ®ãæ¢ãä»çµã¿ã§ãã
ð§© ç»åèªèã®ä»çµã¿
ç»åèªèã§ã¯ãæ¢ããããã¿ã³ãã¢ã€ã³ã³ãå°ããªç»åãã¡ã€ã«ãšããŠä¿åããŸãã
äŸãã°ãç»é¢äžã«ãããä¿åããã¿ã³ãæ¢ãå Žåã¯ããã®ãã¿ã³éšåã ããåãæããŠã次ã®ãããªãã¡ã€ã«åã§ä¿åããŸãã
save_button.png
ãã®èŠæ¬ç»åãPyAutoGUIãžæž¡ããšãçŸåšã®ç»é¢ããåãç»åãæ€çŽ¢ããŸãã
èŠæ¬ç»åã¯äžè¬ã«ã次ã®ããã«åŒã°ããŸãã
- æ€çŽ¢ç»å
- ãã³ãã¬ãŒãç»å
- åç §ç»å
- ããŒãã«ç»å
ãã®èšäºã§ã¯ãæ€çŽ¢ç»åããšåŒã³ãŸãã
ðŠ å¿ èŠãªã©ã€ãã©ãª
ç»åèªèã«ã¯PyAutoGUIã䜿çšããŸãã
import pyautogui
äžèŽçãæå®ããconfidenceãå©çšããå Žåã¯ãOpenCVãå¿
èŠã§ãã
pip install opencv-python
å®éã®ç»é¢ã§ã¯è²ãæç»ã«ããããªå·®ãçããããšããããããç»åèªèãå©çšããå Žåã¯OpenCVãã€ã³ã¹ããŒã«ããŠããããšãæšå¥šããŸãã
âïž æ€çŽ¢ç»åãæºåãã
æåã«ãæ¢ããããã¿ã³ãã¢ã€ã³ã³ã®ç»åãçšæããŸãã
æ€çŽ¢å¯Ÿè±¡ã®åšå²ãå«ããããã察象ãèå¥ã§ããç¯å²ã§åãæããŸãã
äŸãã°ä¿åãã¿ã³ãæ¢ãå Žåã¯ãä¿åãã¿ã³ã ããå ¥ãããã«åãæããŸãã
æ€çŽ¢ç»åã¯ãPythonãã¡ã€ã«ãšåããã©ã«ãã«ä¿åããŠãããšæ±ãããããªããŸãã
automation/
ââ main.py
ââ save_button.png
æ€çŽ¢ç»åã«åºãèæ¯ãå«ãããšããŠã£ã³ããŠãµã€ãºãåšå²ã®è¡šç€ºãå€åããã ãã§èªèã§ããªããªãããšããããŸãã
ð ç»åã®äœçœ®ãæ¢ã
ç»é¢äžããç»åãæ¢ãã«ã¯locateOnScreen()ã䜿çšããŸãã
import pyautogui
location = pyautogui.locateOnScreen(
"save_button.png"
)
print(location)
ç»åãèŠã€ãããšã次ã®ãããªæ å ±ãååŸã§ããŸãã
Box(left=800, top=500, width=100, height=40)
ããããã®å€ã¯æ¬¡ã®æå³ãæã¡ãŸãã
| é ç® | æå³ |
|---|---|
left |
ç»åã®å·Šç«¯ã®Xåº§æš |
top |
ç»åã®äžç«¯ã®Yåº§æš |
width |
ç»åã®å¹ |
height |
ç»åã®é«ã |
locateOnScreen()ã¯ç»åã®äžå¿åº§æšã§ã¯ãªããç»åãååšããé·æ¹åœ¢ã®ç¯å²ãè¿ããŸãã
ð¯ ç»åã®äžå¿åº§æšãååŸãã
ååŸããç¯å²ã®äžå¿åº§æšã¯center()ã§æ±ããããŸãã
import pyautogui
location = pyautogui.locateOnScreen(
"save_button.png"
)
center = pyautogui.center(location)
print(center)
å®è¡çµæã¯æ¬¡ã®ããã«ãªããŸãã
Point(x=850, y=520)
ãã®åº§æšãã¯ãªãã¯ããã°ãç»åã®äžå€®ãã¯ãªãã¯ã§ããŸãã
pyautogui.click(center)
ð±ïž ç»åãæ¢ããŠã¯ãªãã¯ãã
ç»åãæ¢ããŠã¯ãªãã¯ããäžé£ã®åŠçã¯æ¬¡ã®ããã«èšè¿°ã§ããŸãã
import pyautogui
location = pyautogui.locateOnScreen(
"save_button.png"
)
center = pyautogui.center(location)
pyautogui.click(center)
ð¯ äžå¿åº§æšãçŽæ¥ååŸãã
locateCenterOnScreen()ã䜿çšãããšãç»åã®æ€çŽ¢ãšäžå¿åº§æšã®ååŸããŸãšããŠå®è¡ã§ããŸãã
import pyautogui
center = pyautogui.locateCenterOnScreen(
"save_button.png"
)
pyautogui.click(center)
åçŽã«ç»åãæ¢ããŠã¯ãªãã¯ããå Žåã¯ããã®æžãæ¹ã䟿å©ã§ãã
ããã«çããããšã次ã®ããã«èšè¿°ã§ããŸãã
import pyautogui
pyautogui.click(
pyautogui.locateCenterOnScreen(
"save_button.png"
)
)
ãã ããç»åãèŠã€ãããªãã£ãå Žåã®åŠçã远å ãã«ããããã倿°ãžä»£å ¥ããŠããã¯ãªãã¯ããæ¹ãå®å šã§ãã
ç»åãã¯ãªãã¯ããåŠçã§ã¯ãlocateCenterOnScreen()ã§åº§æšãååŸããŠããclick()ãå®è¡ããæžãæ¹ãåããããããåŸããäŸå€åŠçã远å ã§ããŸãã
ðïž äžèŽçãæå®ãã
ç»é¢äžã®ç»åã¯ã衚瀺ç°å¢ã«ãã£ãŠãããã«ç°ãªãããšããããŸãã
äŸãã°ã次ã®ãããªéããçºçããŸãã
- ã¢ã³ããšã€ãªã¢ã¹ã«ãã茪éã®éã
- è²ã®ããããªéã
- ããŠã¹ãéãããšãã®è¡šç€ºå€å
- OSãã¢ããªã±ãŒã·ã§ã³ã«ããæç»ã®éã
å®å
šäžèŽã§ã¯èŠã€ãããªãå Žåã¯ãconfidenceã§äžèŽçãæå®ããŸãã
import pyautogui
center = pyautogui.locateCenterOnScreen(
"save_button.png",
confidence=0.9
)
pyautogui.click(center)
confidence=0.9ã¯ããããã90ïŒ
以äžäžèŽããç»åãæ€çŽ¢ããæå®ã§ãã
confidenceã䜿çšããã«ã¯OpenCVãå¿
èŠã§ãã
confidence=0.9ååŸãã詊ããèŠã€ãããªãå Žåã«å°ããã€äžããŠèª¿æŽãããšåå ã確èªãããããªããŸãã
â ïž äžèŽçãäžããããªã
äžèŽçãäžãããšç»åãèŠã€ãããããªããŸãããå¥ã®ç»åã誀ã£ãŠèªèããå¯èœæ§ãé«ããªããŸãã
äŸãã°ã䌌ã圢ã®ãã¿ã³ãè€æ°ããç»é¢ã§äžèŽçãäœããããšãéããã¿ã³ãã¯ãªãã¯ããããšããããŸãã
center = pyautogui.locateCenterOnScreen(
"save_button.png",
confidence=0.6
)
ãã®ããã«äœãå€ãæå®ããå Žåã¯ã誀èªèãçºçããªããååãªç¢ºèªãå¿ èŠã§ãã
confidenceã宿ã«äžãããããšãå¥ã®ãã¿ã³ã誀èªèããŠã¯ãªãã¯ããå±éºããããŸãã åé€ã»éä¿¡ã»ç¢ºå®ãªã©ãåãæ¶ãã«ããæäœã§ã¯ç¹ã«æ³šæããŠãã ããã
â ç»åãèŠã€ãããªãã£ãå Žå
çŸåšã®PyAutoGUIã§ã¯ãç»åãèŠã€ãããªãã£ãå Žåã«ImageNotFoundExceptionãçºçããŸãã
次ã®ã³ãŒãã¯ã察象ç»åãç»é¢ã«ãªãå Žåã«ãšã©ãŒã§åæ¢ããŸãã
center = pyautogui.locateCenterOnScreen(
"save_button.png",
confidence=0.9
)
å®å
šã«åŠçããã«ã¯ãtryãšexceptã䜿çšããŸãã
import pyautogui
try:
center = pyautogui.locateCenterOnScreen(
"save_button.png",
confidence=0.9
)
pyautogui.click(center)
except pyautogui.ImageNotFoundException:
print("ç»åãèŠã€ãããŸããã§ããã")
ããã§ãç»åãèŠã€ãããªãã£ãå Žåãããã°ã©ã ãç°åžžçµäºããŸããã
ç»åèªèãæ¥åã§å©çšããå Žåã¯ãç»åãèŠã€ãããªãããšãæ³å®ããImageNotFoundExceptionãåŠçããããšãæšå¥šããŸãã
â³ ç»åã衚瀺ããããŸã§åŸ ã€
ã¢ããªã±ãŒã·ã§ã³ãWebããŒãžã®èªã¿èŸŒã¿ã«ã¯æéããããããšããããŸãã
åºå®æéã ãåŸ æ©ããæ¹æ³ããããŸãã
import time
time.sleep(3)
ãããã衚瀺ã«ãããæéãæ¯åéãå Žåã¯ãç»åã衚瀺ããããŸã§ç¹°ãè¿ãæ€çŽ¢ããæ¹ãå®å®ããŸãã
import time
import pyautogui
while True:
try:
center = pyautogui.locateCenterOnScreen(
"save_button.png",
confidence=0.9
)
pyautogui.click(center)
break
except pyautogui.ImageNotFoundException:
time.sleep(0.5)
ãã®ã³ãŒãã¯ã0.5ç§ããšã«ç»åãæ€çŽ¢ããèŠã€ãã£ããã¯ãªãã¯ããŠç¹°ãè¿ããçµäºããŸãã
â±ïž ã¿ã€ã ã¢ãŠããèšå®ãã
ç»åã衚瀺ãããªããŸãŸç¡éã«åŸ ã¡ç¶ãããšãããã°ã©ã ãçµäºããªããªããŸãã
ããã§ãäžå®æéãçµéãããæ€çŽ¢ãçµäºããããã«ããŸãã
import time
import pyautogui
timeout = 10
start_time = time.time()
while True:
try:
center = pyautogui.locateCenterOnScreen(
"save_button.png",
confidence=0.9
)
pyautogui.click(center)
print("ä¿åãã¿ã³ãã¯ãªãã¯ããŸããã")
break
except pyautogui.ImageNotFoundException:
if time.time() - start_time >= timeout:
print("ä¿åãã¿ã³ãèŠã€ãããŸããã§ããã")
break
time.sleep(0.5)
ãã®äŸã§ã¯ãæå€§10ç§éæ€çŽ¢ããŸãã
åŸ æ©åŠçã«ã¯ã¿ã€ã ã¢ãŠããèšããŠãã ãããç»åã衚瀺ãããªãå Žåã«ãããã°ã©ã ãæ°žä¹ ã«åŸ ã¡ç¶ããããšãé²ããŸãã
ð§° åŸ æ©åŠçã颿°ã«ãã
ç»åã衚瀺ããããŸã§åŸ ã€åŠçã¯äœåºŠã䜿çšããããã颿°ã«ãããšäŸ¿å©ã§ãã
import time
import pyautogui
def wait_for_image(
image_path,
timeout=10,
confidence=0.9,
interval=0.5
):
start_time = time.time()
while time.time() - start_time < timeout:
try:
return pyautogui.locateCenterOnScreen(
image_path,
confidence=confidence
)
except pyautogui.ImageNotFoundException:
time.sleep(interval)
return None
次ã®ããã«äœ¿çšããŸãã
center = wait_for_image(
"save_button.png",
timeout=10
)
if center is not None:
pyautogui.click(center)
else:
print("ä¿åãã¿ã³ãèŠã€ãããŸããã§ããã")
ãã®é¢æ°ã¯ã
- ç»åãèŠã€ãã£ãå Žåã¯äžå¿åº§æšãè¿ã
- ã¿ã€ã ã¢ãŠãããå Žåã¯
Noneãè¿ã
ãšããåäœãããŸãã
ð² æ€çŽ¢ç¯å²ãæå®ãã
ç»é¢å šäœã§ã¯ãªããäžéšåã ããæ€çŽ¢ã§ããŸãã
æ€çŽ¢ç¯å²ã¯regionã§æå®ããŸãã
center = pyautogui.locateCenterOnScreen(
"save_button.png",
confidence=0.9,
region=(500, 300, 800, 500)
)
regionã«ã¯æ¬¡ã®é çªã§å€ãæå®ããŸãã
(left, top, width, height)
ãã®äŸã§ã¯ã
- 巊端ïŒ500
- äžç«¯ïŒ300
- å¹ ïŒ800
- é«ãïŒ500
ã®ç¯å²ã ããæ€çŽ¢ããŸãã
æ€çŽ¢å¯Ÿè±¡ã衚瀺ãããäœçœ®ãããçšåºŠéå®ã§ããå Žåã¯ãæ€çŽ¢ç¯å²ãæå®ããããšã§åŠçãå¹çåã§ããŸãã
ãã¿ã³ãå¿ ãç»é¢å³äžã«è¡šç€ºããããªã©ãäœçœ®ãéå®ã§ããå Žåã¯regionãæå®ãããšãæ€çŽ¢é床ãšèª€èªèã®äž¡æ¹ãæ¹åã§ããŸãã
â« ã°ã¬ãŒã¹ã±ãŒã«ã§æ€çŽ¢ãã
grayscale=Trueãæå®ãããšãç»åãçœé»ã«å€æããŠæ¯èŒã§ããŸãã
center = pyautogui.locateCenterOnScreen(
"save_button.png",
confidence=0.9,
grayscale=True
)
è²ã®æ¯èŒãçç¥ã§ãããããæ€çŽ¢ãéããªãå ŽåããããŸãã
ãã ããè²ã®éãã§ãã¿ã³ãåºå¥ããŠããå Žåã¯ã誀èªèãããããªããŸãã
è²ãéèŠãªç»é¢ã§ã¯grayscale=Trueã䜿çšããªãã§ãã ããã圢ãåãã§è²ã ããç°ãªããã¿ã³ãåºå¥ã§ããªããªãå¯èœæ§ããããŸãã
ð¢ åãç»åããã¹ãŠæ¢ã
ç»é¢äžã«åãç»åãè€æ°ããå Žåã¯ãlocateAllOnScreen()ã䜿çšããŸãã
import pyautogui
locations = pyautogui.locateAllOnScreen(
"checkbox.png",
confidence=0.9
)
for location in locations:
print(location)
ããããã®äžå¿ãã¯ãªãã¯ããããšãã§ããŸãã
import pyautogui
locations = pyautogui.locateAllOnScreen(
"checkbox.png",
confidence=0.9
)
for location in locations:
center = pyautogui.center(location)
pyautogui.click(center)
locateAllOnScreen()ã¯ãèŠã€ãã£ããã¹ãŠã®äœçœ®ãé çªã«ååŸã§ãããªããžã§ã¯ããè¿ããŸãã
ðž æ€çŽ¢ç»åãäœãããã«ã¹ã¯ãªãŒã³ã·ã§ãããä¿åãã
PyAutoGUIã§ã¯ãã¹ã¯ãªãŒã³ã·ã§ããããã¡ã€ã«ãžä¿åã§ããŸãã
import pyautogui
pyautogui.screenshot(
"screen.png"
)
ç»é¢ã®äžéšåã ããä¿åããããšãã§ããŸãã
import pyautogui
pyautogui.screenshot(
"button_area.png",
region=(700, 400, 300, 200)
)
ä¿åããç»åãç»åç·šéãœããã§éããå¿ èŠãªãã¿ã³éšåã ããåãæããŠæ€çŽ¢ç»åã«ããŸãã
ðïž ç»åãã¡ã€ã«ãæŽçãã
æ€çŽ¢ç»åãå¢ããŠããããç»åå°çšã®ãã©ã«ããäœæãããšç®¡çãããããªããŸãã
automation/
ââ main.py
ââ images/
ââ save_button.png
ââ close_button.png
ââ login_button.png
ââ error_dialog.png
Pythonããã¯æ¬¡ã®ããã«æå®ããŸãã
center = pyautogui.locateCenterOnScreen(
"images/save_button.png",
confidence=0.9
)
pathlibã䜿çšãããšããã¹ãããå®å
šã«ç®¡çã§ããŸãã
from pathlib import Path
import pyautogui
image_path = Path("images") / "save_button.png"
center = pyautogui.locateCenterOnScreen(
str(image_path),
confidence=0.9
)
𧪠ç»åãèŠã€ãããªãäž»ãªåå
ðŒïž æ€çŽ¢ç»åãšç»é¢ã®å€§ãããéã
PyAutoGUIã®ç»åæ€çŽ¢ã¯ãåºæ¬çã«åã倧ããã§è¡šç€ºãããŠããç»åãæ¢ããŸãã
次ã®ãããªå€æŽããããšãèªèã§ããªãå ŽåããããŸãã
- Windowsã®è¡šç€ºåçã倿Žãã
- ãã©ãŠã¶ã®ãºãŒã åçã倿Žãã
- ã¢ããªã±ãŒã·ã§ã³ã®æ¡å€§çã倿Žãã
- å¥ã®è§£ååºŠã§æ€çŽ¢ç»åãäœæãã
æ€çŽ¢ç»åãäœæãããšããšå®è¡æã§ãç»é¢ã®è¡šç€ºåçããã©ãŠã¶ã®ãºãŒã åçãããããŠãã ããã
ðš ãã¿ã³ã®è¡šç€ºç¶æ ãéã
ãã¿ã³ã¯ç¶æ ã«ãã£ãŠèŠãç®ãå€ããããšããããŸãã
äŸãã°ã次ã®ãããªç¶æ ããããŸãã
- éåžžç¶æ
- ããŠã¹ãªãŒããŒç¶æ
- æŒäžç¶æ
- ç¡å¹ç¶æ
- éžæç¶æ
éåžžç¶æ ã®ç»åã§ã¯ãããŠã¹ãªãŒããŒç¶æ ã®ãã¿ã³ãèªèã§ããªãããšããããŸãã
å¿ èŠã«å¿ããŠç¶æ ããšã®ç»åãçšæããŸãã
save_button_normal.png
save_button_hover.png
save_button_disabled.png
ðª 察象ãã»ãã®ãŠã£ã³ããŠã«é ããŠãã
PyAutoGUIãæ€çŽ¢ã§ããã®ã¯ãçŸåšç»é¢äžã«è¡šç€ºãããŠããç»åã§ãã
å¯Ÿè±¡ãæ¬¡ã®ç¶æ ã§ã¯æ€çŽ¢ã§ããŸããã
- å¥ã®ãŠã£ã³ããŠã«é ããŠãã
- æå°åãããŠãã
- ç»é¢å€ã«ãã
- å¥ã®ä»®æ³ãã¹ã¯ãããã«ãã
PyAutoGUIã¯ã¢ããªã±ãŒã·ã§ã³å éšã®éšåãçŽæ¥èª¿ã¹ãã®ã§ã¯ãªããçŸåšè¡šç€ºãããŠããç»é¢ãæ€çŽ¢ããŸãã
ð¥ïž è€æ°ãã£ã¹ãã¬ã€ãDPIèšå®ã®åœ±é¿
è€æ°ãã£ã¹ãã¬ã€ã䜿çšããŠããå Žåãããã£ã¹ãã¬ã€ããšã«è¡šç€ºåçãç°ãªãå Žåã¯ã座æšãç»åãµã€ãºã«å·®ãçããããšããããŸãã
ç»åèªèãå®å®ããªãå Žåã¯ãæ¬¡ã®æ¡ä»¶ã確èªããŸãã
- 察象ã¢ããªã衚瀺ãããã£ã¹ãã¬ã€
- åãã£ã¹ãã¬ã€ã®è¡šç€ºåç
- è§£å床
- ã¢ããªã±ãŒã·ã§ã³ã®ãŠã£ã³ããŠãµã€ãº
ð¡ïž å®å šãªã¯ãªãã¯åŠç
ç»åãèŠã€ããçŽåŸã«ã¯ãªãã¯ããã®ã§ã¯ãªããã¯ãªãã¯åã«å°ãåŸ æ©ãããšãç»é¢ç¶æ ãå®å®ããå ŽåããããŸãã
import time
import pyautogui
try:
center = pyautogui.locateCenterOnScreen(
"save_button.png",
confidence=0.9
)
pyautogui.moveTo(
center.x,
center.y,
duration=0.5
)
time.sleep(0.3)
pyautogui.click()
except pyautogui.ImageNotFoundException:
print("ä¿åãã¿ã³ãèŠã€ãããŸããã§ããã")
ã«ãŒãœã«ããã£ããç§»åãããããšã§ãã¯ãªãã¯äœçœ®ãç®èŠç¢ºèªãããããªããŸãã
ð¡ å®è·µäŸïŒãã¿ã³ãåŸ ã£ãŠã¯ãªãã¯ãã
次ã®ã³ãŒãã¯ãç»åèªèãå©çšããåºæ¬çãªå®è·µäŸã§ãã
import time
from pathlib import Path
import pyautogui
pyautogui.FAILSAFE = True
pyautogui.PAUSE = 0.3
image_path = Path("images") / "save_button.png"
timeout = 10
start_time = time.time()
while time.time() - start_time < timeout:
try:
center = pyautogui.locateCenterOnScreen(
str(image_path),
confidence=0.9,
region=(500, 300, 1000, 700)
)
pyautogui.moveTo(
center.x,
center.y,
duration=0.5
)
pyautogui.click()
print("ä¿åãã¿ã³ãã¯ãªãã¯ããŸããã")
break
except pyautogui.ImageNotFoundException:
time.sleep(0.5)
else:
print("å¶éæéå
ã«ä¿åãã¿ã³ãèŠã€ãããŸããã§ããã")
ãã®ã³ãŒãã«ã¯ãå®çšäžéèŠãªèŠçŽ ãå«ãŸããŠããŸãã
- ãã§ã€ã«ã»ãŒããæå¹ã«ãã
- æ€çŽ¢ç¯å²ãéå®ãã
- äžèŽçãæå®ãã
- ç»åãçŸãããŸã§åŸ ã€
- ã¿ã€ã ã¢ãŠããèšå®ãã
- ã¯ãªãã¯åã«ã«ãŒãœã«ãç§»åãã
- èŠã€ãããªãã£ãå ŽåãåŠçãã
â ïž ç»åèªèãå®å®ããããã€ã³ã
ç»åèªèãå®å®ãããã«ã¯ãæ¬¡ã®æ¡ä»¶ãã§ããã ãåºå®ããŸãã
- ç»é¢è§£å床
- Windowsã®è¡šç€ºåç
- ãã©ãŠã¶ã®ãºãŒã åç
- ã¢ããªã±ãŒã·ã§ã³ã®ãŠã£ã³ããŠãµã€ãº
- ããŒãèšå®
- ããŒã¯ã¢ãŒãã»ã©ã€ãã¢ãŒã
- æ€çŽ¢å¯Ÿè±¡ã®è¡šç€ºç¶æ
ãŸããæ€çŽ¢ç»åã¯å¯Ÿè±¡ãèå¥ã§ããç¯å²ã§ãã§ããã ãå°ããåãæããŸãã
ç»åèªèã ãã«é Œãããã·ã§ãŒãã«ããããŒãTabããŒãåºå®äœçœ®ãæ€çŽ¢ç¯å²ã®éå®ãªã©ãçµã¿åããããšãããå®å®ããèªååã«ãªããŸãã
ðš ç»åèªèã®éç
ç»åèªèã¯äŸ¿å©ã§ãããç»é¢ã®èŠãç®ã«äŸåããŸãã
次ã®ãããªå€æŽã«ã¯åŒ±ãæ§è³ªããããŸãã
- ã¢ããªã±ãŒã·ã§ã³ã®ãã¶ã€ã³å€æŽ
- ãã¿ã³ã®è²ã圢ã®å€æŽ
- ãã©ã³ãã®å€æŽ
- OSã®è¡šç€ºåç倿Ž
- ãã©ãŠã¶ã®ãºãŒã 倿Ž
- ããŒã¯ã¢ãŒããžã®åãæ¿ã
- ã¢ãã¡ãŒã·ã§ã³äžã®è¡šç€ºå€å
ãŸããç»åã䌌ãŠããã ãã§ã¯ããã®ãã¿ã³ãæ¬åœã«ç®çã®æ©èœãæã€ããŸã§ã¯å€æã§ããŸããã
ç»åãèŠã€ããããšã ããæ ¹æ ã«ãåé€ã»éä¿¡ã»è³Œå ¥ã»ç¢ºå®ãªã©ã®éå€§ãªæäœãçŽã¡ã«å®è¡ããªãã§ãã ããã çŽåã®ç»é¢ã確èªãã€ã¢ãã°ãæ€èšŒããèšèšãå¿ èŠã§ãã
ð ãŸãšã
PyAutoGUIã§ã¯ãæ€çŽ¢ç»åã䜿ã£ãŠç»é¢äžã®ãã¿ã³ãã¢ã€ã³ã³ãæ¢ããŸãã
代衚çãªæ©èœã¯æ¬¡ã®ãšããã§ãã
locateOnScreen()ïŒç»åãååšããç¯å²ãååŸããlocateCenterOnScreen()ïŒç»åã®äžå¿åº§æšãååŸããlocateAllOnScreen()ïŒäžèŽããç»åããã¹ãŠååŸããcenter()ïŒç»åç¯å²ã®äžå¿åº§æšãååŸããconfidenceïŒç»åã®äžèŽçãæå®ããregionïŒæ€çŽ¢ç¯å²ãéå®ããgrayscaleïŒçœé»ç»åãšããŠæ€çŽ¢ããscreenshot()ïŒç»é¢ãç»åãšããŠä¿åãã
å®éã®èªååã§ã¯ãç»åãæ¢ããŠããã¯ãªãã¯ããã ãã§ãªãã
- ç»åã衚瀺ããããŸã§åŸ ã€
- ã¿ã€ã ã¢ãŠããèšå®ãã
- èŠã€ãããªãã£ãå ŽåãåŠçãã
- æ€çŽ¢ç¯å²ãéå®ãã
- 誀èªèããªãäžèŽçãèšå®ãã
ãšãã£ãèšèšãéèŠã§ãã
ç»åèªèãšããŠã¹æäœãçµã¿åãããããšã§ããŠã£ã³ããŠã®äœçœ®ãå€åããã¢ããªã±ãŒã·ã§ã³ã§ããç®çã®ãã¿ã³ãæ¢ããŠæäœã§ããããã«ãªããŸãã