# 排除最小化窗口(最小化到任务栏也算"visible"但实际不可交互)
active = [w for w in visible if not win32gui.IsIconic(w._hWnd)]
if not active:
- log.info("微信进程在但无活动窗口,重新启动...")
- _start_wechat()
- return
+ if not wechat_windows:
+ # 没有窗口 → 用户右键退出了壳进程,重启微信
+ log.info("微信进程在但无窗口,重新启动...")
+ _start_wechat()
+ return
+ else:
+ # 有窗口但最小化,正常状态
+ self._set_status("微信运行中")
+ return
# 改用 active 进行后续判断
visible = active
# 排除最小化窗口(最小化到任务栏也算"visible"但实际不可交互)
active = [w for w in visible if not win32gui.IsIconic(w._hWnd)]
if not active:
- log.info("微信进程在但无活动窗口,重新启动...")
- _start_wechat()
- return
+ if not wechat_windows:
+ # 没有窗口 → 用户右键退出了壳进程,重启微信
+ log.info("微信进程在但无窗口,重新启动...")
+ _start_wechat()
+ return
+ else:
+ # 有窗口但最小化,正常状态
+ self._set_status("微信运行中")
+ return
# 改用 active 进行后续判断
visible = active
login_window = None