wechat-auto(桌面控制与微信自动化)
本技能通过 dc.exe 命令行工具实现 Windows 桌面自动化,核心功能包括:
- 微信/企微发消息 - 自动搜索联系人并发送文本
- 聊天记录截图 - 逐页滚动截取完整聊天历史
⚠️ 重要提示
始终使用 wrapper 脚本,不要直接调用 dc.exe!wrapper 会自动检测 WSL/Windows 环境并处理路径/编码问题。
✅ 正确用法(WSL/Linux/Git Bash):
# 进入 skill 目录(无论安装在哪)
cd <skill-directory>
# 使用 .sh wrapper(自动适配 WSL/Linux 环境)
./scripts/wechat-wrapper.sh wechat "文件传输助手" "测试消息"
./scripts/wechat-wrapper.sh capture -c "张三" -m 20
✅ 正确用法(Windows CMD/PowerShell):
REM 进入 skill 目录
cd <skill-directory>
REM 使用 .bat wrapper(自动适配 Windows 环境)
scripts\wechat-wrapper.bat wechat "文件传输助手" "测试消息"
scripts\wechat-wrapper.bat capture -c "张三" -m 20
❌ 错误做法:
- 不要硬编码路径(如
/usr/lib/node_modules/...或C:\Users\...) - 不要直接用
dc.exe,它无法自动处理编码和路径问题 capture命令不要自定义-o参数,让它使用默认路径(自动创建在C:\temp\chat\<日期>)- 不要跨环境混用 wrapper(WSL 用
.sh,Windows 用.bat)
环境支持
| 环境 | 状态 | 说明 |
|---|---|---|
| WSL (Windows Subsystem for Linux) | ✅ 支持 | 通过 WSL 互操作调用 Windows exe |
| 原生 Windows (CMD/PowerShell) | ✅ 支持 | 直接执行 dc.exe |
快速开始
推荐:使用通用 Wrapper
WSL / Linux / Git Bash
# 一行命令,自动适配环境
./scripts/wechat-wrapper.sh wechat "文件传输助手" "测试消息"
./scripts/wechat-wrapper.sh capture -c "张三" -m 20
Windows CMD / PowerShell
REM 使用批处理 wrapper
scripts\wechat-wrapper.bat wechat "文件传输助手" "测试消息"
scripts\wechat-wrapper.bat capture -c "张三" -m 20
优势:
- ✅ 自动检测环境(.sh 适配 WSL/Linux,.bat 适配 Windows)
- ✅ WSL 下自动处理编码转换和路径问题
- ✅ Windows 下直接调用 dc.exe
- ✅ 统一接口,无需关心底层差异
原始方式(手动处理)
WSL 环境
# 需要 iconv 转码并在 Windows 可写路径运行
cd /mnt/c/temp && /path/to/dc.exe <命令> [参数] 2>&1 | iconv -f GBK -t UTF-8
注意: WSL 下直接运行 dc.exe 会遇到权限问题(无法在 WSL 路径创建目录)。
原生 Windows 环境 (CMD)
# 直接执行,无需转码
scripts\dc.exe <命令> [参数]
命令详解
wechat / w(微信发送消息)
向微信/企业微信联系人发送文本消息。
语法:
dc.exe wechat "<联系人>" "<消息内容>" [-a 微信|企业微信]
dc.exe w "<联系人>" "<消息内容>" [-a 微信|企业微信] # 别名
示例:
# 推荐:通用 wrapper
# WSL / Linux / Git Bash
./scripts/wechat-wrapper.sh wechat "文件传输助手" "测试消息"
./scripts/wechat-wrapper.sh w "张三" "你好!" -a 企业微信
# Windows CMD
scripts\wechat-wrapper.bat wechat "文件传输助手" "测试消息"
scripts\wechat-wrapper.bat w "张三" "你好!" -a 企业微信
# WSL(手动方式,不推荐)
cd /mnt/c/temp && /path/to/skill/scripts/dc.exe wechat "文件传输助手" "测试消息" 2>&1 | iconv -f GBK -t UTF-8
# Windows(直接调用,不推荐)
cd /path/to/skill && scripts\dc.exe wechat "文件传输助手" "测试消息"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
<联系人> |
✅ | 微信显示名,必须完全一致(区分大小写、空格、标点) |
<消息内容> |
✅ | 要发送的文本 |
-a, --app |
❌ | 目标软件:微信(默认)或 企业微信 |
工作流程:
- 查找或唤醒微信窗口(Ctrl+Alt+W)
- 搜索联系人(Ctrl+F + 输入名称)
- OpenCV 视觉定位头像并点击
- 输入消息并发送
capture / cap(聊天记录截图)
自动截取微信聊天记录的完整历史,逐页滚动保存为图片序列。
语法:
dc.exe capture [-c <联系人>] [-o <目录>] [-m <页数>]
dc.exe cap [-c <联系人>] [-o <目录>] [-m <页数>] # 别名
示例:
# 推荐:通用 wrapper
# WSL / Linux
./scripts/wechat-wrapper.sh capture -c "张三" -m 20
# Windows CMD
scripts\wechat-wrapper.bat capture -c "张三" -m 20
# WSL(手动方式,不推荐)
cd /mnt/c/temp && /path/to/skill/scripts/dc.exe capture -c "张三" -o ./chat_zhang -m 20 2>&1 | iconv -f GBK -t UTF-8
# Windows(直接调用,不推荐)
cd /path/to/skill && scripts\dc.exe capture -c "张三" -o chat_zhang -m 20
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
-c, --contact |
❌ | 联系人名称(不传则截取当前聊天窗口) |
-o, --save-dir |
❌ | 保存目录,默认 chat |
-m, --max-pages |
❌ | 最大页数,默认 10 |
输出:
- 文件命名:
chat_page_001.png(最旧)→chat_page_NNN.png(最新) - 结尾输出
[PATHS]标记及所有截图路径,便于程序解析
注意事项
微信运行状态
- 微信须已登录,可最小化到托盘
- 工具会自动唤醒并前置微信窗口
联系人名称匹配
- 必须与微信显示名完全一致
- 区分大小写、空格、标点符号
- 建议先在微信中确认显示名称
调试与排错
- 调试截图保存在
screenshots/目录 - 失败时查看
debug_wechat_fail.png - 成功时查看
debug_wechat_success.png
WSL 特殊说明
- 必须保留
.exe后缀 - 必须使用
iconv转码输出 - 路径使用正斜杠
/或 WSL 路径格式
原生 Windows 特殊说明
- CMD 中使用
scripts\dc.exe或完整路径 - 路径使用反斜杠
\
常见问题
Q: WSL 权限错误(PermissionError: [WinError 5])?
使用 wechat-wrapper.sh,它会自动在 Windows 临时目录运行:
./scripts/wechat-wrapper.sh wechat "文件传输助手" "消息"
Q: 发送消息失败?
- 检查微信是否已登录
- 确认联系人名称完全一致
- 查看
screenshots/debug_wechat_fail.png
Q: 聊天截图只截了一部分?
增大 -m 参数值:
./scripts/wechat-wrapper.sh capture -c "张三" -m 30
Q: 坐标点击位置不对?
查看 debug 截图(WSL 下会复制到 screenshots/ 目录):
- 成功时:
debug_wechat_success.png - 失败时:
debug_wechat_fail.png
命令速查表
| 命令 | 别名 | 功能 | WSL 用法 | Windows 用法 |
|---|---|---|---|---|
wechat |
w |
发微信消息 | ./scripts/wechat-wrapper.sh w "张三" "hello" |
scripts\wechat-wrapper.bat w "张三" "hello" |
capture |
cap |
聊天记录截图 | ./scripts/wechat-wrapper.sh capture -c "张三" -m 20 |
scripts\wechat-wrapper.bat capture -c "张三" -m 20 |

