[patch] 新增自动更新功能 模块 优化更新后打开--不被遮挡
This commit is contained in:
42
main.py
42
main.py
@@ -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_())
|
||||||
|
|||||||
Reference in New Issue
Block a user