import time, win32service, win32gui, win32con, psutil
from PIL import ImageGrab

hdesk = win32service.OpenInputDesktop(0, False, 0x01FF)
hdesk.SetThreadDesktop()

jx_hwnd = None
for proc in psutil.process_iter(['pid', 'name']):
    if 'jxhelper' in (proc.info['name'] or '').lower():
        pid = proc.info['pid']
        def cb(hwnd, extra):
            global jx_hwnd
            if win32gui.IsWindow(hwnd) and win32gui.IsWindowVisible(hwnd):
                t = win32gui.GetWindowText(hwnd)
                if 'JXHelper' in t:
                    jx_hwnd = hwnd
            return True
        win32gui.EnumDesktopWindows(hdesk, cb, None)

if not jx_hwnd:
    print('JXHelper not found!')
    exit(1)

print('Found JXHelper HWND:', hex(jx_hwnd))
tab_hwnd = None
def find_tab(chwnd, extra):
    global tab_hwnd
    cls = win32gui.GetClassName(chwnd)
    if 'tabcontrol' in cls.lower() or 'systabcontrol' in cls.lower():
        tab_hwnd = chwnd
    return True
win32gui.EnumChildWindows(jx_hwnd, find_tab, None)

rect = win32gui.GetWindowRect(jx_hwnd)

# 1. Click Đ.khiển: X=175, Y=30
lp_dk = (30 << 16) | 175
win32gui.PostMessage(tab_hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lp_dk)
time.sleep(0.05)
win32gui.PostMessage(tab_hwnd, win32con.WM_LBUTTONUP, 0, lp_dk)
time.sleep(0.5)
img_dk = ImageGrab.grab(bbox=rect, all_screens=True)
img_dk.save('logs/jxhelper_tab_dkhien.png')
print('Saved logs/jxhelper_tab_dkhien.png')

# 2. Click T.độ: X=35, Y=10
lp_td = (10 << 16) | 35
win32gui.PostMessage(tab_hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lp_td)
time.sleep(0.05)
win32gui.PostMessage(tab_hwnd, win32con.WM_LBUTTONUP, 0, lp_td)
time.sleep(0.5)
img_td = ImageGrab.grab(bbox=rect, all_screens=True)
img_td.save('logs/jxhelper_tab_patrol.png')
print('Saved logs/jxhelper_tab_patrol.png')

# 3. Return to L.công: X=35, Y=30
lp_lc = (30 << 16) | 35
win32gui.PostMessage(tab_hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lp_lc)
time.sleep(0.05)
win32gui.PostMessage(tab_hwnd, win32con.WM_LBUTTONUP, 0, lp_lc)
