При изучении языка добрался до OpenCV, а там уже дело дошло до скриншотов. И вот что заметил:
применяя различные библиотеки для скриншотов все работает так как библиотека работать должна (кто-то быстро, кто-то медленно и т.д.) Но! Ни одна библиотека не работает пока запущена игра UNDECEMBER.
Я так понимаю у этой игры есть своего рода защита от экранокопирования...
Тестировал долго и нудно, даже компилировал приложение и отправлял другу - результат тот же:
-Игра не запущена - все ок
-Игра запущена - приложение стартует на секунду и выдает скрин экрана (даже саму игру захватывает) / или сразу ошибается и не запускается даже
-Запуск приложение перед игрой - приложение работает на 100% до момента пока начинается вступительная заставка. Потом ошибки и все.
Делал через try - одни библиотеки тупо перестают работать даже после выключения игры, другие после отключения игры продолжают скриншотить.
import cv2
import numpy as np
import pyautogui
import pygetwindow
import pyscreenshot
from PIL import ImageGrab
while True:
bbox = (0, 0, 500, 500)
from mss import mss
def capture_screenshot():
with mss() as sct:
try:
monitor = sct.monitors[0]
sct_img = sct.grab(monitor)
return sct_img
except Exception as err:
print(err)
img = pyscreenshot.grab(bbox)
img = pyscreenshot.grab(bbox).load()
img = pyautogui.screenshot().crop(bbox)
img = np.array(img)
cv2.imshow('Display', img)
if cv2.waitKey(1) == ord('q'):
cv2.destroyAllWindows()
break
ошибка:
File "C:\Users\reale\anaconda3\envs\UndecemberAutoPy\py390\lib\site-packages\pyscreeze\__init__.py", line 145, in wrapper
return wrappedFunction(*args, **kwargs)
File "C:\Users\reale\anaconda3\envs\UndecemberAutoPy\py390\lib\site-packages\pyscreeze\__init__.py", line 457, in _screenshot_win32
im = ImageGrab.grab()
File "C:\Users\reale\anaconda3\envs\UndecemberAutoPy\py390\lib\site-packages\PIL\ImageGrab.py", line 46, in grab
offset, size, data = Image.core.grabscreen_win32(
OSError: screen grab failed
Собственно что я хочу узнать. Есть ли библиотеки для работы с видеоадаптером? Или как обойти эту защиту?