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

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

launcher_hwnd = None
with open(r"c:\Projects\JX\logs\inspect_launcher.log", "w", encoding="utf-8") as log_f:
    def cb(h, _):
        global launcher_hwnd
        _, pid = win32process.GetWindowThreadProcessId(h)
        if pid == 30020:
            cls = win32gui.GetClassName(h)
            txt = win32gui.GetWindowText(h)
            rect = win32gui.GetWindowRect(h)
            log_f.write(f"HWND: 0x{h:X}, Class: {cls}, Text: '{txt}', Rect: {rect}, Vis: {win32gui.IsWindowVisible(h)}\n")
            if win32gui.IsWindowVisible(h) and rect[2] > rect[0] and rect[3] > rect[1]:
                launcher_hwnd = h

    win32gui.EnumWindows(cb, None)
    if launcher_hwnd:
        rect = win32gui.GetWindowRect(launcher_hwnd)
        img = ImageGrab.grab(bbox=rect, all_screens=True)
        img.save(r"c:\Projects\JX\logs\launcher_30020.png")
        log_f.write(f"Saved launcher_30020.png, rect: {rect}\n")
