V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
cairnechen
V2EX  ›  分享创造

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

  •  
  •   cairnechen · 10 小时 6 分钟前 · 241 次点击

    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 是朋友圈入口图标的左下角 1/4 ,因为需要避开可能出现的红色数字角标

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

    4.微信语言需要设置成中文,因为发现窗口用到了窗口标题

    连接 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 的情况了

    1 2 3

    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   923 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 20:19 · PVG 04:19 · LAX 13:19 · JFK 16:19
    ♥ Do have faith in what you're doing.