import tkinter as tk
import win32gui
import win32con

# 螢幕尺寸
SCREEN_WIDTH = 1920
SCREEN_HEIGHT = 1080

def check_input(event=None):
    user_input = entry.get().strip()
    if user_input == "我被控制了":  # 驗證輸入的中文詞語
        root.destroy()  # 輸入正確，結束程式
    else:
        label.config(text="輸入錯誤！請輸入「我被控制了」😜")

def disable_event():
    pass  # 攔截關閉事件

def prevent_minimize(event=None):
    # 若視窗被最小化，立即恢復
    if win32gui.IsIconic(root.winfo_id()):
        win32gui.ShowWindow(root.winfo_id(), win32con.SW_RESTORE)

# 創建主視窗
root = tk.Tk()
root.title("整人訊息")
root.geometry("300x150")  # 設置視窗大小

# 置中視窗
x_pos = (SCREEN_WIDTH - 300) // 2
y_pos = (SCREEN_HEIGHT - 150) // 2
root.geometry(f"+{x_pos}+{y_pos}")

# 禁用關閉按鈕和最小化按鈕
root.protocol("WM_DELETE_WINDOW", disable_event)
root.resizable(False, False)  # 禁止調整視窗大小
hwnd = root.winfo_id()  # 獲取視窗句柄
style = win32gui.GetWindowLong(hwnd, win32con.GWL_STYLE)
style &= ~(win32con.WS_MINIMIZEBOX)  # 禁用最小化按鈕
win32gui.SetWindowLong(hwnd, win32con.GWL_STYLE, style)

# 確保視窗在最上層
root.attributes('-topmost', True)

# 監聽最小化事件
root.bind('<Configure>', prevent_minimize)

# 添加訊息標籤
label = tk.Label(root, text="你的螢幕已被我控制！😜\n輸入「我被控制了」並按 Enter", font=("Arial", 12))
label.pack(pady=10)

# 添加輸入框
entry = tk.Entry(root, width=20, font=("Arial", 12))
entry.pack(pady=10)
entry.focus_set()  # 自動聚焦輸入框

# 綁定 Enter 鍵
entry.bind('<Return>', check_input)

# 添加確定按鈕
button = tk.Button(root, text="確定", command=check_input, font=("Arial", 12))
button.pack(pady=10)

# 進入主循環
root.mainloop()