Невозможно делать снимки экрана с помощью Python, если приложение Python работает в фоновом режиме.Python

Программы на Python
Anonymous
Невозможно делать снимки экрана с помощью Python, если приложение Python работает в фоновом режиме.

Сообщение Anonymous »

Я пытаюсь создать приложение на Python, которое будет делать снимки экрана игры через короткие промежутки времени и проверять, закончился ли раунд в игре.
Мой скрипт работает так насколько это возможно, я могу делать снимки экрана и анализировать их, но как только я помещаю окно игры на передний план, а терминал на задний план, скриншоты больше не создаются. Только если я снова вернусь к скриншотам терминала с помощью Alt+Tab.
Дополнительная информация: система Windows 11
Я уже пробовал Pillow, mss и win32ui для создания снимков экрана, но проблема сохраняется со всеми из них.
Я также отключил «Режим быстрого редактирования» в терминале Windows.
Использование mss
import time
from mss.windows import MSS as mss

with mss() as sct:
while True:
sct_img = sct.grab(sct.monitors[0])
im = Image.frombytes("RGB", sct_img.size, sct_img.bgra, "raw", "BGRX")
time.sleep(1.0)

Использование подушки
from PIL import Image
from PIL import ImageGrab
import time

while True:
im = ImageGrab.grab(bbox=(0,0,w,h))
time.sleep(1.0)

Использование win32ui
import win32gui
import win32ui
from PIL import Image

hwnd_target = win32gui.FindWindow(None, 'Backpack Battles')

left, top, right, bot = win32gui.GetWindowRect(hwnd_target)
w = right - left
h = bot - top

hdesktop = win32gui.GetDesktopWindow()
hwndDC = win32gui.GetWindowDC(hdesktop)
mfcDC = win32ui.CreateDCFromHandle(hwndDC)
saveDC = mfcDC.CreateCompatibleDC()

saveBitMap = win32ui.CreateBitmap()
saveBitMap.CreateCompatibleBitmap(mfcDC, w, h)

saveDC.SelectObject(saveBitMap)

bmpinfo = saveBitMap.GetInfo()
bmpstr = saveBitMap.GetBitmapBits(True)

im = Image.frombuffer(
'RGB',
(bmpinfo['bmWidth'], bmpinfo['bmHeight']),
bmpstr, 'raw', 'BGRX', 0, 1)


Подробнее здесь: https://stackoverflow.com/questions/790 ... background

Вернуться в «Python»