import ctypes

import win32con
import win32service

h_desk = win32service.OpenDesktop("Default", 0, False, win32con.GENERIC_ALL)
ctypes.windll.user32.SetThreadDesktop(int(h_desk))

import customtkinter as ctk

app = ctk.CTk()
app.title("POE2 Hotkey Test")
app.geometry("300x150+100+100")
app.attributes("-topmost", True)
app.update()

# Get HWND of Tk window
hwnd = app.winfo_id()
# Parent window
parent_hwnd = ctypes.windll.user32.GetParent(hwnd) or hwnd
print(f"HWND: {hwnd}, Parent HWND: {parent_hwnd}")

MOD_NONE = 0x0000
VK_F9 = 0x78
HOTKEY_ID = 1001

# Register hotkey
ret = ctypes.windll.user32.RegisterHotKey(parent_hwnd, HOTKEY_ID, MOD_NONE, VK_F9)
err = ctypes.GetLastError()
print(f"RegisterHotKey result: {ret} (Error: {err})")

# Unregister
ctypes.windll.user32.UnregisterHotKey(parent_hwnd, HOTKEY_ID)
app.destroy()
print("Done test.")
