diff --git a/main.py b/main.py index ce7aaf7..20bb050 100644 --- a/main.py +++ b/main.py @@ -1676,6 +1676,48 @@ def main(): print(f"[ERROR] 备用图标也设置失败: {e2}") window.show() # 程序启动断点 + + # 🔥 检查是否是更新后首次启动,如果是则置顶显示 + if '--after-update' in sys.argv: + print("[INFO] 检测到更新后启动标志,将窗口置顶显示") + try: + # Qt方法:将窗口提升到最前面 + window.raise_() + window.activateWindow() + + # Windows API:强制窗口前置(确保万无一失) + import ctypes + import win32gui + import win32con + + # 获取窗口句柄 + hwnd = int(window.winId()) + + # 方法1:设置窗口为前台窗口 + win32gui.SetForegroundWindow(hwnd) + + # 方法2:显示窗口并激活 + win32gui.ShowWindow(hwnd, win32con.SW_SHOW) + win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) + + # 方法3:设置窗口Z序到顶部 + win32gui.SetWindowPos( + hwnd, + win32con.HWND_TOPMOST, # 临时置顶 + 0, 0, 0, 0, + win32con.SWP_NOMOVE | win32con.SWP_NOSIZE + ) + # 取消置顶(只是确保显示出来) + win32gui.SetWindowPos( + hwnd, + win32con.HWND_NOTOPMOST, + 0, 0, 0, 0, + win32con.SWP_NOMOVE | win32con.SWP_NOSIZE | win32con.SWP_SHOWWINDOW + ) + + print("[INFO] ✅ 窗口已置顶显示") + except Exception as e: + print(f"[WARNING] 窗口置顶失败: {e},但程序仍正常运行") # 运行应用程序 sys.exit(app.exec_())