import sys
import ctypes
from ctypes import wintypes
sys.path.insert(0, r"c:\Projects\AutoPOE2")
from src.common.win32_window import attach_to_default_desktop, find_poe2_window

hdesk = attach_to_default_desktop()
user32 = ctypes.windll.user32
kernel32 = ctypes.windll.kernel32

hwnd = find_poe2_window()
print(f"HWND: {hex(hwnd)}, ThreadDesktop: {hex(hdesk)}")

fg_orig = user32.GetForegroundWindow()
print(f"FG before: {hex(fg_orig)}")

# Try AllowSetForegroundWindow
res_allow = user32.AllowSetForegroundWindow(-1)
print(f"AllowSetForegroundWindow(-1): {res_allow}, err: {kernel32.GetLastError()}")

# Try SwitchToThisWindow
user32.SwitchToThisWindow(hwnd, True)
time_slept = 0.1
import time
time.sleep(time_slept)

fg_now = user32.GetForegroundWindow()
print(f"FG after SwitchToThisWindow: {hex(fg_now)}")

# Try SetForegroundWindow directly
kernel32.SetLastError(0)
res_sfw = user32.SetForegroundWindow(hwnd)
err_sfw = kernel32.GetLastError()
print(f"SetForegroundWindow: {res_sfw}, err: {err_sfw}")
time.sleep(0.1)

fg_now2 = user32.GetForegroundWindow()
print(f"FG after SetForegroundWindow: {hex(fg_now2)}")
