微信助手

读取微信会话与未读消息、生成回复建议,经用户确认后发送。适合在电脑上回客户消息,但不允许无确认自动发送。

微信助手

结论先行


检测未读 → 打开会话(校验切换成功)→ 读最近消息 → 生成建议 → 用户确认 → 发送

任何情况下都不允许跳过"用户确认"这一步。 个人微信自动化属于外挂行为,出了问题(封号、发错话)代价远高于省下的时间。

一、命令


$NODE = "C:\Program Files\sanshan-kaiwu\resources\runtime\node.exe"
$P = "<产品仓库>\tools\wechat-assistant.mjs"

# 只看和建议,不发送
& $NODE $P --dry-run --once

# 交互式:每条建议按 y 发送、n 跳过、直接输入则改后发送
& $NODE $P

# 只跑一轮就退出
& $NODE $P --once

底层脚本:tools/wechat.ps1

二、已经踩过的两个坑

| 坑 | 现象 | 修法 |

| --- | --- | --- |

| 微信在后台 | 点击打到了别的窗口,会话没切过去 | open 前先 SetForegroundWindow + ShowWindow |

| 标题带未读数 | 切过去了但标题是 某某群(8),校验误判 | 比对前去掉 (数字) 后缀 |

校验切换成功是必须的:切不过去还继续回复,就会把 A 客户的话发到 B 客户那里。

三、红线

| 不做 | 原因 |

| --- | --- |

| 未经用户确认发送 | 一句话说错就是纠纷 |

| 群发、营销、主动加人 | 封号高风险 |

| 回复价格、交期、承诺 | 必须人来定 |

| 同时操作多个账号 | 风控 |

| 在用户不知情时后台常驻 | 信任问题 |

四、已验证记录(2026-11-07)

| 动作 | 结果 |

| --- | --- |

| 读会话列表 | ✅ 11 个会话,正确标出 2 个未读 |

| 读当前聊天 | ✅ 标题与最近 8 条消息 |

| 切换会话 | ✅ 点击后标题变为目标群(含未读数后缀) |

| 生成建议 | ✅ 模型输出口语化回复(不含价格承诺) |

| 发送 | ⏳ 待真实场景验证(需用户确认一条) |

验收清单

五、发文件(两段式,2026-11-07 验证通过)

发文件必须走"先卡片、后确认",不允许一句话直接发:


# 第一步:只出确认卡片,不动微信
node tools/wechat-send.mjs --to "小王" --file "C:\work\报价单.xlsx"

# 第二步:用户明确说"确认"后,才真正发送
node tools/wechat-send.mjs --to "小王" --file "C:\work\报价单.xlsx" --confirm

确认卡片包含:收件人 + 找到的会话、文件名、类型、大小、修改时间、完整路径、内容预览(文本前 5 行)。

发送后会回读聊天记录,确认文件名真的出现在消息里,否则报"可能没发出去"。

已验证:给「文件传输助手」发 三山测试文件.txt(45B),发送成功且回读确认。

发文件踩过的四个坑

| 坑 | 现象 | 修法 |

| --- | --- | --- |

| 中文路径 SendKeys | 路径丢字变成 .txt | 用剪贴板粘贴 |

| 剪贴板被占用 | Set-Clipboard 抛错,脚本谎报成功 | 重试 6 次 + 发完回读校验 |

| 微信窗口跑到屏幕外 | 点击落空 | 先把窗口挪回可视区 |

| 选完文件≠已发送 | 文件只挂在输入框 | 再点一次「发送」按钮 |