]> 小龙服务器 Git - 微信监控/commitdiff
壳进程处理:完全无窗口时重启,最小化时不动
author小龙 <xl@szjxzxh.cn>
Mon, 27 Jul 2026 06:55:41 +0000 (14:55 +0800)
committer小龙 <xl@szjxzxh.cn>
Mon, 27 Jul 2026 06:55:41 +0000 (14:55 +0800)
wechat_auto_login.py

index 61c7c2563858d8b02b31d6e7e6f8fd92a55beadd..663a4f45db72db1dcdf65f719a369c54c92d79b4 100644 (file)
@@ -616,9 +616,15 @@ try:
             # 排除最小化窗口(最小化到任务栏也算"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
 
@@ -762,9 +768,15 @@ try:
             # 排除最小化窗口(最小化到任务栏也算"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