From 89d09777a0033403ecfc935cc2024b5be6669241 Mon Sep 17 00:00:00 2001 From: haosicheng Date: Wed, 29 Oct 2025 15:55:53 +0800 Subject: [PATCH] =?UTF-8?q?[patch]=20=E6=96=B0=E5=A2=9E=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD=20=E6=A8=A1=E5=9D=97=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9B=B4=E6=96=B0=E5=90=8E=E6=89=93=E5=BC=80?= =?UTF-8?q?--=E4=B8=8D=E8=A2=AB=E9=81=AE=E6=8C=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) 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_())