import ctypes
import sys
import time
from ctypes import wintypes
import win32gui
from PIL import ImageGrab

sys.stdout.reconfigure(encoding='utf-8')
user32 = ctypes.windll.user32
hdesk = user32.OpenInputDesktop(0, False, 0x01FF)
if hdesk: user32.SetThreadDesktop(hdesk)

main_hwnd = 0x48b12a8
cbo_sect = 0x10d07fa

WM_LBUTTONDOWN = 0x0201
WM_LBUTTONUP = 0x0202
MK_LBUTTON = 0x0001
def make_lparam(x, y):
    return (y << 16) | (x & 0xFFFF)

print("Clicking cbo_sect drop-down arrow at (115, 10)...")
user32.PostMessageW(cbo_sect, WM_LBUTTONDOWN, MK_LBUTTON, make_lparam(115, 10))
user32.PostMessageW(cbo_sect, WM_LBUTTONUP, 0, make_lparam(115, 10))
time.sleep(0.5)

# Check if a popup ComboLBox appeared
combo_boxes = []
def cb(h, _):
    cls_buf = ctypes.create_unicode_buffer(256)
    user32.GetClassNameW(h, cls_buf, 256)
    if "ComboLBox" in cls_buf.value and user32.IsWindowVisible(h):
        r = win32gui.GetWindowRect(h)
        combo_boxes.append((h, r))
        print(f"Found Visible ComboLBox: {hex(h)} at {r}")
    return True

user32.EnumWindows(ctypes.WINFUNCTYPE(wintypes.BOOL, wintypes.HWND, wintypes.LPARAM)(cb), 0)

if combo_boxes:
    clbox, r = combo_boxes[0]
    print(f"Clicking item 1 (Võ Đang) inside ComboLBox {hex(clbox)}...")
    # Item 1 is about y = 25px inside the list box
    user32.PostMessageW(clbox, WM_LBUTTONDOWN, MK_LBUTTON, make_lparam(50, 25))
    user32.PostMessageW(clbox, WM_LBUTTONUP, 0, make_lparam(50, 25))
    time.sleep(0.5)

rect = win32gui.GetWindowRect(main_hwnd)
img = ImageGrab.grab(bbox=rect)
out = r"C:\Users\Admin\.gemini\antigravity\brain\5f637e30-06d3-43e8-a064-a259fea7be1a\test_clicked_vodang.png"
img.save(out)
print(f"Saved {out}")
