🧪 Beta公测版本提示:教程主体已完成,正在优化细节,欢迎大家提Issue反馈问题或建议。
Skip to content

Case 1:自动在社交软件上发消息 / 图片 / 文件

学完本章,你将掌握如何让 GA 自动操控桌面社交软件,聪明的读者一定会触类旁通,把流程用到你想用的国民级社交软件上

🎯 学习目标

  1. 理解 GA 操控桌面 GUI 应用的通用思路
  2. 学会「激活窗口 → 搜索联系人 → 验证会话 → 发送内容 → 验证结果」的标准五步流程
  3. 掌握 SOP + 工具函数的封装模式,让 GA 可以自主完成复杂的多步任务

14.1 适用场景

💡 本章介绍的方法适用于 不提供命令行接口(CLI)或开放 API 的社交软件。GA 通过「看屏幕 + 点鼠标 + 敲键盘」的方式来模拟人的操作,因此无论软件是否开放接口,都能实现自动化。

如果你使用的社交软件提供了 CLI 或 API 接口(如飞书、Slack 等),推荐优先通过接口实现自动化,效率更高也更稳定。可以参考 第 3 章:CLI 工具的使用 中的方法。


14.2 整体流程概览

在开始之前,我们先理解整个自动化的流程。不管是什么社交软件,自动发消息的核心步骤都是一样的:

┌─────────────┐
│  Step 1      │   激活窗口:把社交软件切到前台
│  激活应用     │
└──────┬──────┘

┌─────────────┐
│  Step 2      │   搜索联系人:快捷键打开搜索框
│  搜索联系人   │   输入准确名称 → 回车直接跳转
└──────┬──────┘

┌─────────────┐
│  Step 3      │   点击搜索结果,OCR 标题栏验证
│  验证会话     │   确认当前会话就是目标联系人
└──────┬──────┘

┌─────────────┐
│  Step 4      │   文字:剪贴板粘贴 + 回车
│  发送内容     │   文件:剪贴板写入文件路径 + 粘贴 + 回车
└──────┬──────┘

┌─────────────┐
│  Step 5      │   OCR 截图聊天区域
│  验证结果     │   确认消息出现在对话中
└─────────────┘

⚠️ 安全原则:Step 3 验证通过之前,绝对不能执行 Step 4 的发送操作——否则可能发错人!


14.3 Step 1:激活应用窗口

第一步是把社交软件的窗口切到前台。GA 需要做三件事:

  1. 查找窗口:通过窗口标题关键词找到社交软件
  2. 恢复窗口:如果窗口被最小化,需要先恢复
  3. 置顶窗口:确保窗口在最前面,这样后续的点击和截图才能正常工作

激活后,记录窗口的四个边界坐标(左、上、右、下),后续所有步骤都要基于这些坐标来定位界面元素。

💡 小知识:Windows 有一个安全限制——只有当前前台进程才能调用"设为前台窗口"的 API。通常需要先模拟一次 Alt 键事件来绕过这个限制。这类细节 GA 会自动帮你处理。


14.4 Step 2:搜索联系人

窗口激活后,接下来要找到目标联系人。

🎯 搜索比直接点击更可靠

不要试图直接点击会话列表中的联系人——列表的位置会随新消息到来而变化,很容易点错人。一律走搜索流程

操作流程

  1. 快捷键打开搜索框:按下 Ctrl+F(Windows)或 Command+F(macOS)唤出搜索框。用快捷键比点击搜索框更可靠——不需要计算搜索框的坐标位置,也不会因为界面布局变化而失效
  2. 清除残留文字:先全选(Ctrl+A),防止上次搜索的文字还在
  3. 输入联系人名称:通过剪贴板粘贴,不要直接键盘输入——中文输入法可能导致乱码
  4. 回车跳转:按下 Enter 键,直接跳转到该联系人的聊天界面

⚠️ 前提:用户需要提供 准确的联系人名称,确保搜索结果能精确匹配并一步到位跳转到正确的会话。


14.5 Step 3:验证当前会话

点击搜索结果后,不要急着发消息! 必须先验证当前打开的会话确实是你要找的人。

为什么要验证?

  • 点击位置可能偏移,打开了错误的会话
  • 某些软件会弹出广告窗口拦截你的点击
  • OCR 识别可能有误差,导致点了错误的搜索结果

验证流程

点击搜索结果


检测广告弹窗 ──── 有弹窗 ──→ 关闭弹窗,回到 Step 2 重新搜索

    无弹窗


OCR 标题栏 ───── 不匹配 ──→ 回到 Step 2 重新搜索

    匹配


进入 Step 4 发送
  • 广告弹窗检测:有些社交软件搜索结果中混入了广告,点击后会弹出新窗口而不是切换会话。GA 可以通过枚举系统窗口、检查窗口类名来识别并自动关闭这些弹窗。
  • OCR 标题栏验证:截取聊天窗口顶部的标题栏区域做 OCR,确认显示的名字与目标联系人一致。大模型会做模糊匹配,容忍 OCR 的形近字误差。

14.6 Step 4:发送内容

验证会话正确后,终于可以发送内容了。根据内容类型,有两种方式:

发送文字消息

  1. 点击输入框:根据窗口坐标计算输入框位置,点击使其获得焦点
  2. 粘贴消息:把要发送的文字复制到剪贴板,然后 Ctrl+V 粘贴
  3. 回车发送:按下 Enter 键

💡 为什么用剪贴板而不是直接输入? 直接键盘输入会受输入法干扰——如果当前是中文输入法,英文可能被转成拼音。通过剪贴板粘贴可以完美避免这个问题,而且支持任何语言和 emoji。

发送文件 / 图片

发送文件的思路非常巧妙:模拟「从资源管理器复制文件,然后在聊天窗口粘贴」的操作。

  1. 写入剪贴板:把文件的绝对路径以操作系统的"文件拖放"格式(CF_HDROP)写入剪贴板——这和你在资源管理器里右键复制一个文件的效果完全一样
  2. 点击输入框:点击聊天输入框
  3. 粘贴:Ctrl+V,文件会以附件或图片形式出现在输入框中
  4. 回车发送:按 Enter 键

社交软件会自动判断文件类型:图片以图片形式展示,其他文件以附件形式展示。

⚠️ 注意:文件路径必须是 绝对路径,相对路径会导致软件找不到文件。


14.7 Step 5:验证发送结果

消息发出后,我们需要确认它真的发送成功了。

OCR 验证法

发送完成后,对聊天区域进行截图并 OCR 识别,检查是否包含刚才发送的消息内容:

  1. 截取聊天区域:截取消息列表的下半部分(最新消息通常在底部)
  2. OCR 识别:提取截图中的所有文字
  3. 匹配验证:检查 OCR 结果中是否包含刚才发送的关键词

对于文件和图片,可以检查是否出现了文件名,或者通过视觉识别确认缩略图已出现在聊天区域中。

💡 GA 还可以用视觉能力(ask_vision)直接"看"截图来判断消息是否发送成功,这在 OCR 不够准确时是一个很好的补充手段。


14.8 实战:让 GA 读本章内容并实践

理解了整个流程之后,最好的学习方式就是让 GA 亲自动手试一试。具体做法非常简单:

  1. 把本章内容喂给 GA:将本章的 Markdown 给 GA 看,或者直接给网址告诉 GA 去阅读这份文档
  2. 给 GA 一个实际任务:比如「帮我在社交软件上给张三发一条消息:下午开会别迟到」
  3. 观察 GA 的执行过程:GA 会参考本章的流程,逐步完成激活窗口、搜索联系人、验证会话、发送消息、验证结果
  4. 遇到问题一起调试:如果某个步骤失败了(比如搜索框快捷键不对、输入框坐标偏了),和 GA 一起排查原因并修正

将经验沉淀为 SOP

实践成功后,最重要的一步是 把这次成功的经验固化为一份 SOP,存入 GA 的记忆中。

你可以告诉 GA:

你:刚才发消息的流程跑通了,请把这次的经验整理成一份 SOP,保存到记忆目录里。

GA 会自动把本次实践中用到的具体参数(搜索框快捷键、输入框坐标区域、等待时间等)和踩过的坑一起写入 SOP。下次再执行同样的任务时,GA 会直接读取这份 SOP,不需要重新摸索。

🎓 这就是 GA 的核心工作模式:先学习通用流程 → 实践验证 → 沉淀为专属 SOP。每一次实践都在让 GA 变得更强。


14.9 避坑指南

在实际使用中,有一些常见的坑需要注意:

🚫 绝对禁止的操作

操作后果替代方案
Esc 键(Windows)某些社交软件在 Windows 上按 Esc 会完全隐藏窗口,macOS 不受影响点击侧栏其他会话来清除搜索状态
直接键盘输入中文输入法干扰,可能输出乱码剪贴板复制 + Ctrl+V 粘贴
发送前不验证会话消息发错人必须 OCR 标题栏确认

💡 实用技巧

  1. DPI 缩放处理:高分辨率屏幕需要处理缩放比例。窗口坐标是逻辑坐标,OCR 和点击需要物理坐标,需要做坐标转换
  2. 搜索框残留文字:每次搜索前先全选(Ctrl+A)再粘贴,覆盖掉上次搜索的内容
  3. 随机偏移:连续多次点击同一位置可能触发风控,可以给坐标加一个小范围的随机偏移
  4. 群聊和个人会话:发送流程完全一样,不需要区分处理

14.10 本章小结

本章我们通过「在社交软件上发消息」这个 Case,学习了 GA 操控桌面应用的完整流程:

核心概念说明
五步流程激活 → 搜索 → 验证 → 发送 → 验证结果
SOP 模式把操作流程固化为 SOP,GA 按步骤执行
工具封装每个步骤封装为函数,放入 utils.py
决策点介入确定性步骤自动执行,模糊判断交给大模型
安全原则验证前不发送、剪贴板粘贴、OCR 验证结果

🎓 举一反三:这套「激活 → 定位 → 验证 → 操作 → 验证」的模式不仅适用于社交软件,任何桌面应用的自动化都可以套用。在后续章节中,我们会看到更多类似的案例。