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

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

hwnd = 0xe207f6 # PID 30076 (ConCuaBoMe / nguvansi1)
if not win32gui.IsWindow(hwnd):
    print("HWND not valid")
    sys.exit(1)

def make_lparam(x, y):
    return ((y & 0xFFFF) << 16) | (x & 0xFFFF)

WM_MOUSEMOVE = 0x0200
WM_LBUTTONDOWN = 0x0201
WM_LBUTTONUP = 0x0202
WM_KEYDOWN = 0x0100
WM_KEYUP = 0x0101
VK_RETURN = 0x0D

def click_client(x, y):
    lp = make_lparam(x, y)
    user32.PostMessageW(hwnd, WM_MOUSEMOVE, 0, lp)
    time.sleep(0.04)
    user32.PostMessageW(hwnd, WM_LBUTTONDOWN, 1, lp)
    time.sleep(0.08)
    user32.PostMessageW(hwnd, WM_LBUTTONUP, 0, lp)
    time.sleep(0.05)

def send_key(vk):
    lp = (0x1C << 16) | 1
    user32.PostMessageW(hwnd, WM_KEYDOWN, vk, lp)
    time.sleep(0.04)
    user32.PostMessageW(hwnd, WM_KEYUP, vk, lp | (3 << 30))
    time.sleep(0.04)

print("Clicking Xác định on PID 30076...")
click_client(260, 503)
time.sleep(0.1)
send_key(VK_RETURN)

print("Waiting 4 seconds for server response...")
time.sleep(4.0)

if win32gui.IsWindow(hwnd):
    rect = win32gui.GetWindowRect(hwnd)
    if rect[2] > rect[0] and rect[3] > rect[1]:
        img = ImageGrab.grab(bbox=rect, all_screens=True)
        img.save(r"c:\Projects\JX\logs\pid_30076_after_submit.png")
        print("Saved pid_30076_after_submit.png")
else:
    print("HWND 0xe207f6 no longer exists!")

with open(r"c:\Projects\JX\logs\pid_30076_done.txt", "w") as f:
    f.write("DONE\n")
