Pyautogui识别图片后持续点击问题:如何实现仅单次点击?
修改方案
原代码的问题在于循环会持续执行,只要没按q就会不断尝试点击(哪怕没找到图片也会触发点击,还会重复点击已找到的图片)。要实现找到图片后仅点击一次,可按以下方式修改:
修改后的代码
import pyautogui import time import keyboard time.sleep(2) # 标记是否已完成点击 clicked = False while keyboard.is_pressed('q') == False and not clicked: eventicon = pyautogui.locateOnScreen("SummerEventBot\eventicon.png") # 只有成功定位到图片时才执行点击 if eventicon: pyautogui.click(eventicon) clicked = True # 标记为已点击,退出循环 time.sleep(0.5) # 降低循环频率,减少资源占用
关键改动说明
- 新增
clicked变量:用来记录是否已经完成点击,避免重复执行操作 - 循环条件新增
not clicked:只要完成点击,循环就会自动终止 - 增加
if eventicon:判断:确保只有找到图片时才调用点击,避免找不到图片时触发错误 - 加入
time.sleep(0.5):减少循环执行的频率,降低CPU资源消耗 - 移除了原代码中未使用的库(
queue、numpy、random、win32api等),精简代码结构
内容的提问来源于stack exchange,提问作者user19750905
相关产品推荐
相关产品推荐

