首页 > 解决方案 > 当我尝试查找像素颜色时,pyautogui 出现故障,但有时当我什至不更改代码时它也可以工作

问题描述

我制作的简单钢琴瓷砖机器人,它曾经工作,但最近停止工作,当我运行它时,我收到一个错误,但有几次我运行完全相同的东西,它工作得很好。

from pyautogui import *
import pyautogui
import time
import keyboard
import random
import win32api, win32con

def click(x, y):
    win32api.SetCursorPos((x, y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
    time.sleep(0.05)  
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)


while keyboard.is_pressed('q') == False:

    if pyautogui.pixel(480, 280)[0] == 0:
        click(480, 280)
    if pyautogui.pixel(550, 280)[0] == 0:
        click(550, 280)
    if pyautogui.pixel(620, 280)[0] == 0:
        click(620, 280)
    if pyautogui.pixel(688, 280)[0] == 0:
        click(688, 280)

当我尝试运行它时弹出的错误:

Traceback (most recent call last):
  File "C:\Users\sijav\PycharmProjects\Piano Tiles Bot\main.py", line 19, in <module>
    if pyautogui.pixel(550, 280)[0] == 0:
  File "C:\Users\sijav\AppData\Local\Programs\Python\Python39\lib\site-packages\pyscreeze\__init__.py", line 613, in pixel
    return (r, g, b)
  File "C:\Users\sijav\AppData\Local\Programs\Python\Python39\lib\contextlib.py", line 124, in __exit__
    next(self.gen)
  File "C:\Users\sijav\AppData\Local\Programs\Python\Python39\lib\site-packages\pyscreeze\__init__.py", line 122, in __win32_openDC
    raise WindowsError("windll.user32.ReleaseDC failed : return 0")
OSError: windll.user32.ReleaseDC failed : return 0

Process finished with exit code 1
:

标签: python

解决方案


推荐阅读