import ctypes

import win32con
import win32gui
import win32service

print("1. Attaching thread to 'Default' desktop...")
h_desk = win32service.OpenDesktop("Default", 0, False, win32con.GENERIC_ALL)
res = ctypes.windll.user32.SetThreadDesktop(int(h_desk))
print(f"SetThreadDesktop result: {res}")

print("2. Launching Tkinter window...")
import customtkinter as ctk

app = ctk.CTk()
app.title("POE2 Test Window On Default Desktop")
app.geometry("400x200+100+100")
app.attributes("-topmost", True)
app.update()

# Check what windows exist on Default desktop
hwnds = []
def enum_cb(hwnd, _):
    if win32gui.IsWindowVisible(hwnd):
        title = win32gui.GetWindowText(hwnd)
        if "POE2 Test" in title:
            hwnds.append((hwnd, title, win32gui.GetWindowRect(hwnd)))

win32gui.EnumDesktopWindows(int(h_desk), enum_cb, None)
print(f"Found windows on Default desktop: {hwnds}")

app.destroy()
print("3. Done.")
