import win32gui, win32process, ctypes
from ctypes import wintypes

out_file = r"c:\Projects\JX\logs\inspect_autos_text.txt"
f = open(out_file, "w", encoding="utf-8")

def log(msg):
    print(msg)
    f.write(str(msg) + "\n")
    f.flush()

def enum_cb(h, _):
    if not win32gui.IsWindowVisible(h):
        return True
    t = win32gui.GetWindowText(h)
    c = win32gui.GetClassName(h)
    if any(k in t.lower() or k in c.lower() for k in ["ky-", "vctk", "jx", "vlbs", "kim", "vo lam", "error"]):
        log(f"\n=======================================================")
        log(f"Window 0x{h:08X} [{c}] Title: '{t}'")
        log(f"=======================================================")
        def child_cb(ch, _):
            ct = win32gui.GetWindowText(ch)
            cc = win32gui.GetClassName(ch)
            if ct.strip():
                log(f"  Child 0x{ch:08X} [{cc}]: '{ct}'")
            return True
        win32gui.EnumChildWindows(h, child_cb, None)
    return True

win32gui.EnumWindows(enum_cb, None)
f.close()
