[patch] 新增自动更新功能 模块 优化更新后打开--不被遮挡

This commit is contained in:
2025-10-29 15:55:53 +08:00
parent aa61e8a931
commit 89d09777a0

42
main.py
View File

@@ -1676,6 +1676,48 @@ def main():
print(f"[ERROR] 备用图标也设置失败: {e2}") print(f"[ERROR] 备用图标也设置失败: {e2}")
window.show() # 程序启动断点 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_()) sys.exit(app.exec_())