微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PyAutoGUI 中断失败,"WindowsError("windll.user32.ReleaseDC failed : return 0")

如何解决PyAutoGUI 中断失败,"WindowsError("windll.user32.ReleaseDC failed : return 0")

我创建了一个简单的程序;它点击适合我的屏幕分辨率的 piano game 中的黑色瓷砖。该程序按预期工作,但偶尔会间歇性崩溃。该问题似乎与 pyautogui.pixel(x,y) 相关。我在网上找不到解释或原因,只能建议在较早版本的 Python 上运行该程序。

规格

Operating System : Windows-10-10.0.19041-SP0
Python Version : 3.9.2 (tags/v3.9.2:1a79785,Feb 19 2021,13:44:55) [MSC v.1928 64 bit(AMD64)]
IDE : PyCharm Community Edition 2020.3.4.lnk
pyautogui Version : 0.9.52

代码

import pyautogui
import time
import keyboard

totalClicks = 0
pyautogui.PAUSE = 0.0

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

    # There are 4 rows of tiles,if pixel is black,click pixel
    if (pyautogui.pixel(350,310)[0]) == 0: # tile1
        pyautogui.moveto(350,310)
        pyautogui.mouseDown()
        time.sleep(0.03)
        pyautogui.mouseUp() 
        totalClicks += 1
    elif (pyautogui.pixel(423,310)[0]) == 0: # tile2
        pyautogui.moveto(423,310)
        pyautogui.mouseDown()
        time.sleep(0.03)
        pyautogui.mouseUp()
        totalClicks += 1
    elif (pyautogui.pixel(527,310)[0]) == 0: #tile3
        pyautogui.moveto(527,310)
        pyautogui.mouseDown()
        time.sleep(0.03)
        pyautogui.mouseUp()
        totalClicks += 1
    elif (pyautogui.pixel(600,310)[0]) == 0: #tile4
        pyautogui.moveto(600,310)
        pyautogui.mouseDown()
        time.sleep(0.03)
        pyautogui.mouseUp()
        totalClicks += 1

print(totalClicks)

exit(0)

错误

C:\Users\shawn\PycharmProjects\pythonProject5\venv\Scripts\python.exe C:/Users/shawn/PycharmProjects/pythonProject5/main.py
Traceback (most recent call last):
  File "C:\Users\shawn\PycharmProjects\pythonProject5\main.py",line 18,in <module>
    if (pyautogui.pixel(350,310)[0]) == 0: # if pixel is black...
  File "C:\Users\shawn\PycharmProjects\pythonProject5\venv\lib\site-packages\pyscreeze\__init__.py",line 584,in pixel
    return (r,g,b)
  File "C:\Users\shawn\AppData\Local\Programs\Python\python39\lib\contextlib.py",line 124,in __exit__
    next(self.gen)
  File "C:\Users\shawn\PycharmProjects\pythonProject5\venv\lib\site-packages\pyscreeze\__init__.py",line 113,in __win32_openDC
    raise WindowsError("windll.user32.ReleaseDC Failed : return 0")
OSError: windll.user32.ReleaseDC Failed : return 0

Process finished with exit code 1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。