Ошибка mss.exception.ScreenShotError: gdi32.GetDIBits() failed
Программа проверяет цвет с координат и если он совпадает делается клик на определённых координат, программа работает до определённого момента и вылетает ошибки:
Traceback (most recent call last):
File "C:\Users\User\PycharmProjects\pythonProject\main.py", line 28, in <module>
if get_color_rgb(1575, 375) == [0, 0, 0]:
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\PycharmProjects\pythonProject\main.py", line 16, in get_color_rgb
img = m.grab(monitor)
^^^^^^^^^^^^^^^
File "C:\Users\User\PycharmProjects\pythonProject\venv\Lib\site-packages\mss\base.py", line 90, in grab
screenshot = self._grab_impl(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\PycharmProjects\pythonProject\venv\Lib\site-packages\mss\windows.py", line 252, in _grab_impl
raise ScreenShotError("gdi32.GetDIBits() failed.")
mss.exception.ScreenShotError: gdi32.GetDIBits() failed.
Вот код:
import pyautogui as pg
import numpy as np
from mss import mss
def get_color_rgb(x, y):
m = mss()
monitor = {
"left": x,
"top": y,
"width": 1,
"height": 1,
}
img = m.grab(monitor)
img_arr = np.array(img)
item = img_arr[0][0]
r = item[2]
g = item[1]
b = item[0]
return [r, g, b]
while True:
if get_color_rgb(1575, 375) == [0, 0, 0]:
pg.click(1400, 545)
if get_color_rgb(345, 375) == [0, 0, 0]:
pg.click(520, 545)
if get_color_rgb(345, 785) == [0, 0, 0]:
pg.click(520, 895)
if get_color_rgb(1575, 785) == [0, 0, 0]:
pg.click(1400, 895)