import ctypes, time, sys
from PIL import ImageGrab
import win32gui, win32process

user32 = ctypes.windll.user32
hdesk = user32.OpenInputDesktop(0, False, 0x01FF)
if hdesk: user32.SetThreadDesktop(hdesk)

hwnds = [0x001C0EFC, 0x005B0EC6, 0x00170E1C, 0x000D0244]
for i, h in enumerate(hwnds):
    if win32gui.IsWindow(h):
        user32.ShowWindow(h, 9) # SW_RESTORE
        user32.SetForegroundWindow(h)
        time.sleep(0.4)
        rect = win32gui.GetWindowRect(h)
        _, pid = win32process.GetWindowThreadProcessId(h)
        img = ImageGrab.grab(bbox=rect, all_screens=True)
        path = rf"c:\Projects\JX\logs\game_win_{i}_{pid}_{h:x}.png"
        img.save(path)
        print(f"Captured: {path}")
