GoForum🌐 V2EX

基于 AutoHotkey 做了一个自动化发布微信朋友圈的 Skill,可以通过 Agent 连接 IM 远程发布

cairnechen · 2026-03-31 18:14 · 0 次点赞 · 0 条回复

autopyq

https://github.com/cairnechen/autopyq

前一阵子研究 Skill 准备随便 vibe 一个来练手,刚好发现 AutoHotkey 可以通过 ImageSearch 定位窗口中的特定区域,就想到了可以用 Windows 版微信来做自动化,本来以为会踩坑,结果发现越走越顺,索性一口气做完了,记录并分享一下。

使用场景

说实话我真没细想,觉得可以做就做了,目前我的使用状态是,家里的 windows 笔记本保持一个 claude code 会话连接 telegram mcp, 登录微信并打开在前台,然后在外面需要发朋友圈的时候 通过 telegram 发内容给 claude 然后自动发朋友圈

使用方法

安装 skill

从 github 下载 Skill 全部文件并复制到你本机的 skill 目录(.agent/skills 或者 ./claude/skills )

准备工作

先打开 windows 微信(最新版本 4.1.8 ),然后通过提示词 [获取模板图片] 让 agent 通过一个 template-capture 自动化流程把几个关键图片截取并保存到 skill 根目录(期间不要动鼠标键盘)

日常使用

打开微信在前台,在 agent 会话中通过 [发朋友圈] [发一张带图朋友圈] 等触发 skill ,根据 agent 指引确认并发布(因为是模拟键鼠操作,所以也不能动鼠标键盘)

原理

通过 AutoHotkey 的 ImageSeach 功能根据模板图片找到几个关键位置,找到之后自动点击、粘贴内容、导入图片并发步

自动化流程

朋友圈入口➔相机按钮➔编辑框占位文本➔发表按钮

实现细节

微信和朋友圈窗口

通过 AutoHotkey 提供的 windows spy 找到微信和朋友圈的窗口标题、class 、process 写进 config.ini 脚本运行的时候读配置文件匹配窗口,后面流程里还有一个文件选择窗口也是同样的办法

获取窗口截图

AutoHotkey 激活目标窗口然后模拟键盘发送 Alt+PrtSc 再从剪贴板将图片保存到临时目录

纯文本发布和带图发布

朋友圈窗口根据模板图片通过 ImageSearh 找到左上角相机图标,纯文本就模拟长按,带图就直接点击

添加朋友圈文案

通过占位文本模板图片 ImageSearch 定位文本输入区域,模拟鼠标点击获取输入焦点,发送 Ctrl+V 粘贴文本

图片批量添加

发布前在 Pictures/Moments 创建一个发布目录,把所有图片文件复制到这个目录,在点击相机图标弹出的系统 [文件选择] 窗口中,通过 Alt+D 定位到 [地址输入栏] ,粘贴发布目录并跳转,再通过 Alt+N 回到 [文件名输入栏] 批量粘贴将要发布的图片文件名,回车确认

确认发布

ImageSearch 找到绿色启用状态的 [发表] 按钮,模拟鼠标点击

发布后截图

点击发表按钮后,等待一段时间,发送 Alt+PrtSc ,再从剪贴板将图片保存到发布目录

遇到的坑

1.ImageSearch 的准确度会受当前屏幕背景影响,黑色背景相比白色背景需要更高的容差
2.模型视觉能力参差不齐,GPT5.4 显著好于 Opus4.6 好于 Sonnet4.6, 为了能让 Sonnet 完成模板获取任务,改了好多版提示词
3.模型通过视觉处理图片的时候会进行缩放(且远比官方文档提到的缩放门槛更加严格),导致模型在判断目标区域时出现极大坐标漂移,反复迭代调整,不得已在模板抓取流程中增加调整微信和朋友圈窗口到最小宽度/高度的过程,减少模型负担
4.模型不依赖环境自己处理图片的原始方法是像素扫描,非常浪费 token ,只好增加了一个 imgtool 做了一些简单图片处理的工作

使用中可能遇到的坑

1.通过 Ahk2exe 把.ahk 脚本编译成 exe 可能会被 defender 误杀,需要到安全中心从隔离中恢复,不过如果本机有安装 AutHotkey 的话可以 fallback 到用脚本执行,imgtool 同理

2.模板抓取过程依赖模型视觉能力,可能自动抓完模板图片发现匹配不上,实在不行可以自己手动截图重命名为模板文件( pyq1~pyq4 必须为 png )注意 pyq1 是朋友圈入口图标的左下角 14 ,因为需要避开可能出现的红色数字角标

3.模板自动抓取模板图片的功能可能会消耗大量 token ,建议最好用 GPT5.4 Extra High ,如果不想消耗太多 token ,可以用 Sonnet 4.6 就是会比较慢

连接 IM

我目前只测试了了 Claude Code 连接 Telegram ,不过理论上只要 Agent 能通过 IM 收发图片,都可以打通发布流程,如果有需要的话后面可以在仓库里补充连接 IM 的教程

目前已经测试通过的:

1.DM 和 Group 都能接受图文加载 Skill 并发送朋友圈

2.发送纯文本、发送单张图片、发送多张图片都成功发布朋友圈

3.发送完成后自动将发布后朋友圈窗口截图返回给 IM

特别注意:如果要一直保证远程使用顺畅,最好在工作目录的.claude/settings.local.json 文件增加权限许可,Read Write Edit Bash grep glob 这些都给,基本上就不会出现还要在 IM 侧点 allow 的情况了

https://i.v2ex.co/WW54trz3l.jpeg https://i.v2ex.co/nw8sV945l.png https://i.v2ex.co/1HXCq9uol.png

0 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: cairnechen
发布: 2026-03-31
点赞: 0
回复: 0