微信消息自动发送助手
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_8f8710c1/wechat-message-send。
技能介绍
它解决什么问题
把一段已经准备好的文本发到微信某个联系人或群聊,看起来简单,做起来坑很多:窗口被缩到托盘后进程还在,Alt+F4 并不能真正关闭微信;聊天列表里的会话名靠像素定位非常脆弱;Ctrl+F 之后直接回车,经常打开的是「搜一搜」而不是目标群;标题栏 OCR 在微信 4.0 的自绘 UI 上读出来是乱码,据此判断当前会话会误发到错误窗口。这个技能把这些易错环节集中处理,只负责「打开微信 → 搜索定位 → 发送」这一段,不关心文本从哪里来。
核心能力与关键步骤
- 微信进程恢复:枚举隐藏窗口(
find_main_window(include_hidden=True)),找到后用SW_RESTORE拉回前台;没有窗口时才启动Weixin.exe;只找到登录窗会尝试点「进入微信」并等待。 - 搜索导航替代列表扫描:先
Esc清理残留状态,再Ctrl+F打开搜索,粘贴完整目标名,然后对下拉结果逐行 OCR(y 从t+105到t+430,步长 36px),在「群聊」分区里命中关键词、同时排除招聘/公众号/搜一搜等建议噪声词,记录最后一个命中行并点击。 - 发送前复验:点击输入框后用
pyperclip.copy加Ctrl+V粘贴(长中文不走typewrite,避免输入法乱码),随后 OCR 输入框区域确认消息首尾片段已就位,未命中立即清空并中止,绝不回车。 - 发送后验证:回车发送,OCR 聊天区确认气泡出现,成功时输出
RESULT: SUCCESS。 - 发送守卫:
--guard启用后,同日向同一目标发同一条消息会被send_guard_state.json跳过并输出RESULT: SKIPPED,防止重复刷屏。
适用边界与注意点
- 只吃现成文本:数据来源、排版、变量替换都由上游负责,本技能不做采集。
- OCR 强烈建议:OCR 由
ocr-local-v2提供,缺失时仍会发送,但无法可靠定位会话,只有微信已经停在目标会话时才稳妥。 - Node 版本敏感:务必使用 Node
22.22.2,旧版本的NODE_OPTIONS会和 OCR 子进程不兼容,表现为静默exit 9、OCR 返回空。 - 登录可能仍需手机确认:脚本会尝试点「进入微信」并等待,但授权确认通常要在手机端完成;仍进不去时,手动打开微信并停在目标会话后再运行。
- 坐标不写死:所有点击位置都从
GetWindowRect的窗口矩形按比例派生,仅固化少量固定点。 - 目标名要准:目标名偏差会导致定位失败或落到错误会话,失败时根据提示检查登录态、OCR 与目标名。
使用场景
- 采集脚本跑完后,要把一段现成的通知文本发到固定的「项目协作群」,让脚本自己搜索定位群聊并发送。
- 每天下班前要把写好的日报摘要发给指定联系人,不想手动开微信翻找会话再粘贴。
- 搜索下拉里混着同名公众号和公司名,需要脚本逐行比对后点进真正的群聊行再发消息。
- 定时任务每天发同一条消息,需要防止重复触发导致群里被同一条内容刷屏。
适合人员
- 常写脚本跑数据采集、需要把生成结果推到微信群的后端工程师,想省掉手动复制粘贴这一步。
- 每天要向指定联系人或工作群发固定通知的运营与行政,希望定时发送且不会重复刷屏。
- 用自动化流程生成日报周报的团队,希望消息发送环节也能无人值守跑完。
- 需要在微信 4.0 上稳定操控窗口与搜索框、处理隐藏窗口和登录态的桌面自动化开发者。