用途与实际影响
这项功能怎样使用
为什么需要它
桌面程序需要登录会话;后台巡检若每隔一段时间闪黑框会打扰使用。多实例时,仅检查“有一个 WeFlow 进程”还可能漏掉真正需要的配置。
举个实际例子
“我登录电脑以后,让指定 WeFlow 配置自己启动,检查时别闪黑框。”注册器创建默认任务;独立配置由其负责人提供目录和端口。端口通时安静退出,目标进程缺失才启动一次;进程已存在但接口不通,就留下日志而不重复开进程。
最后我会得到什么
得到按配置执行的一次有界恢复尝试与日志。它能处理进程缺失,不承诺修复程序内部卡住、账号失效或错误配置。
可直接使用
选定配置的服务已响应;缺进程时只尝试启动一次,并确认是否恢复。
需要确认
程序还在但接口不通时留下日志,不反复启动第二份程序。
当前不可用
指定配置目录不存在或程序无法启动时停止,并说明是哪个配置。
从哪里开始
只有明确维护 WeFlow 启动链时,管理员运行 weflow_boot_guardian.ps1 登记默认 5031;其他 profile 由各自配置负责人处理。
需要准备什么
- 需要维护哪个 WeFlow 配置
- 是否明确登记登录后自启
从开始到拿到结果
- 1
先认准要守护的配置
默认任务只管默认 WeFlow;本人指定另一份配置时,目录缺失就直接报错。
- 2
登录后检查一次
看目标服务和进程是否可用;已经在运行时不重复启动,缺失才尝试一次。
- 3
交回恢复或失败
短暂等待后报告结果;任务显示就绪不等于下一次冷启动或桌面画面已验收。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
已有任务状态正常;本轮未重做冷启动关键规则与设计选择
默认零参数检查端口 5031 与没有 --user-data-dir 的主实例;独立配置需提供真实已存在目录和其 API 端口。
HTTP /health 先行、TCP 回退。TCP 成功只说明能连端口,不能证明它返回了有效微信数据。
PCConfig 标记 owner=pcconfig.wechat-dual-autostart.v1 存在时保留同名微信双开任务;没有标记才按旧独立注册行为处理。
VBS 隐藏的是脚本窗口;WeFlow 窗口隐藏由 -HiddenLaunch 控制,不能把两者混为一谈。
本模块用到的名词
- Boot Guardian(开机守卫)
- 任务注册器。默认创建 WeFlow Watchdog 登录与每 15 分钟触发任务,并按负责人标记处理 WeChat AutoStart。
- Interactive Logon(交互登录)
- 任务在已登录的桌面会话运行;尚未登录不是可宣称完成的无人值守状态。
- VBScript(Windows 脚本语言)静默包装
- WScript.Shell.Run 使用窗口模式 0,等待 PowerShell 完成并回传退出码;参数被逐个引用。
专业定义
静默包装、配置匹配、30 秒等待、双开任务保留与登录前提。
解决什么
错误匹配实例会漏启动或重复启动;在用户尚未登录时把 GUI 程序当系统服务,也不能保证实际可用。
当前怎样实现
- weflow_heartbeat.ps1 支持 -Port、-UserDataDir、-InstanceName、-LogPath、-NoProxyServer、-HiddenLaunch。
- Get-TargetWeFlowProcess 忽略 Electron 带 --type 的子进程,按完整规范化配置路径进行大小写不敏感匹配;其他 WeFlow 实例不阻止目标启动。
- HTTP 超时 2 秒,TCP 连接等待 1500 毫秒;启动等待基线 30 秒,每次检查后返回明确退出码。单次探测耗时意味着总墙钟不保证恰好 30 秒。
- 默认程序路径为 C:\Program Files\WeFlow\WeFlow.exe,微信注册路径为 C:\Program Files\Tencent\Weixin\Weixin.exe;本轮两路径均存在,不为尚未发生的其他安装布局虚构自动发现能力。
- 注册器优先 wscript.exe 调用 VBS,缺 VBS 时用隐藏 PowerShell 参数;微信自启只在登录时触发,没有微信重启看门狗。
- -NoProxyServer 使用 Electron 自身的代理绕过选项,不修改系统代理,也不假设某个代理端口。
执行流程
- 1
明确需要安装时,以管理员运行 weflow_boot_guardian.ps1;它只注册默认 5031 任务,其他 profile 的任务归对应配置负责人。
- 2
用户登录后或周期触发,包装器执行一次检查;提供了配置目录却不存在时立刻返回 2。
- 3
服务健康或 TCP 可连接时记录成功;否则只检查目标主进程。
- 4
目标存在则返回 1;目标缺失且程序存在才启动一次,使用安装目录作为工作目录。
- 5
有界等待后记录恢复或失败并退出;日志给下一次诊断使用,不建立无休止重启循环。
边界
- 本轮没有执行注册器、heartbeat 或 enable-autologin.ps1,没有启动或修改微信/WeFlow。
- enable-autologin.ps1 是另一个显式机器设置入口,会改变 Windows 登录行为并涉及系统保存登录信息;不能为网页验收自动执行。
- 当前任务 Ready 和最近结果 0 不证明下次冷启动、桌面可见性或所有独立 profile 已验收。
失败与恢复
- 目标进程存在而服务不通
- 返回 1,保留诊断日志,不重复启动;进一步修复需定位该配置或程序内的实际原因。
- 配置目录缺失
- 返回 2,先由配置负责人恢复目录与登录/API 设置,避免启动出一个空配置。
- 程序缺失或启动未恢复
- 返回失败并记录,不把启动进程成功当成服务可用。
真实入口
WATCHDOG.md部署条件与多配置使用说明。
weflow_heartbeat.ps1 / weflow_heartbeat.vbs匹配、探测、启动、等待和退出行为。
weflow_boot_guardian.ps1 / enable-autologin.ps1明确的机器配置入口,读取不等于执行。
如何验证
- 源码测试检查参数、进程匹配结构和 PCConfig 任务保留规则;它们不是本轮冷启动实机测试。
- 2026-09-08T02:37:25.8272891Z:WeFlow Watchdog 与 WeChat AutoStart 为 Ready、最近结果 0;5031 与 16000 的 /health 为 200。
与其他模块的关系
给显式使用 WeFlow 的调用者提供运行辅助;不接管微信双开配置,也不改变现役 WeChatDirect 路线。
