Case 1:自动在社交软件上发消息 / 图片 / 文件 学完本章,你将掌握如何让 GA 自动操控桌面社交软件,聪明的读者一定会触类旁通,把流程用到你想用的国民级社交软件上 学习目标 理解 GA 操控桌面 GUI 应用的通用思路 学会「激活窗口 → 搜索联系人 → 验证会话 → 发送内容 → 验证结果」的标准五步流程 掌握 SOP + 工具函数的封装模式,让 GA 可以自主完成复杂的多步任务 14.1 适用场景 本章介绍的方法适用于 不提供命令行接口(CLI)或开放 API 的社交软件。GA 通过「看屏幕 + 点鼠标 + 敲键盘」的方式来模拟人的操作,因此无论软件是否开放接口,都能实现自动化。
学完本章,你将掌握如何让 GA 自动操控桌面社交软件,聪明的读者一定会触类旁通,把流程用到你想用的国民级社交软件上
本章介绍的方法适用于 不提供命令行接口(CLI)或开放 API 的社交软件。GA 通过「看屏幕 + 点鼠标 + 敲键盘」的方式来模拟人的操作,因此无论软件是否开放接口,都能实现自动化。
如果你使用的社交软件提供了 CLI 或 API 接口(如飞书、Slack 等),推荐优先通过接口实现自动化,效率更高也更稳定。可以参考 第 3 章:CLI 工具的使用 中的方法。
在开始之前,我们先理解整个自动化的流程。不管是什么社交软件,自动发消息的核心步骤都是一样的:
┌─────────────┐ │ Step 1 │ 激活窗口:把社交软件切到前台 │ 激活应用 │ └──────┬──────┘ ▼ ┌─────────────┐ │ Step 2 │ 搜索联系人:快捷键打开搜索框 │ 搜索联系人 │ 输入准确名称 → 回车直接跳转 └──────┬──────┘ ▼ ┌─────────────┐ │ Step 3 │ 点击搜索结果,OCR 标题栏验证 │ 验证会话 │ 确认当前会话就是目标联系人 └──────┬──────┘ ▼ ┌─────────────┐ │ Step 4 │ 文字:剪贴板粘贴 + 回车 │ 发送内容 │ 文件:剪贴板写入文件路径 + 粘贴 + 回车 └──────┬──────┘ ▼ ┌─────────────┐ │ Step 5 │ OCR 截图聊天区域 │ 验证结果 │ 确认消息出现在对话中 └─────────────┘
⚠️ 安全原则:Step 3 验证通过之前,绝对不能执行 Step 4 的发送操作——否则可能发错人!
第一步是把社交软件的窗口切到前台。GA 需要做三件事:
激活后,记录窗口的四个边界坐标(左、上、右、下),后续所有步骤都要基于这些坐标来定位界面元素。
小知识:Windows 有一个安全限制——只有当前前台进程才能调用"设为前台窗口"的 API。通常需要先模拟一次 Alt 键事件来绕过这个限制。这类细节 GA 会自动帮你处理。
窗口激活后,接下来要找到目标联系人。
:::tip 搜索比直接点击更可靠
不要试图直接点击会话列表中的联系人——列表的位置会随新消息到来而变化,很容易点错人。一律走搜索流程。
:::
Ctrl+F(Windows)或 Command+F(macOS)唤出搜索框。用快捷键比点击搜索框更可靠——不需要计算搜索框的坐标位置,也不会因为界面布局变化而失效⚠️ 前提:用户需要提供 准确的联系人名称,确保搜索结果能精确匹配并一步到位跳转到正确的会话。
点击搜索结果后,不要急着发消息! 必须先验证当前打开的会话确实是你要找的人。
点击搜索结果 │ ▼ 检测广告弹窗 ──── 有弹窗 ──→ 关闭弹窗,回到 Step 2 重新搜索 │ 无弹窗 │ ▼ OCR 标题栏 ───── 不匹配 ──→ 回到 Step 2 重新搜索 │ 匹配 │ ▼ 进入 Step 4 发送
验证会话正确后,终于可以发送内容了。根据内容类型,有两种方式:
为什么用剪贴板而不是直接输入? 直接键盘输入会受输入法干扰——如果当前是中文输入法,英文可能被转成拼音。通过剪贴板粘贴可以完美避免这个问题,而且支持任何语言和 emoji。
发送文件的思路非常巧妙:模拟「从资源管理器复制文件,然后在聊天窗口粘贴」的操作。
社交软件会自动判断文件类型:图片以图片形式展示,其他文件以附件形式展示。
⚠️ 注意:文件路径必须是 绝对路径,相对路径会导致软件找不到文件。
消息发出后,我们需要确认它真的发送成功了。
发送完成后,对聊天区域进行截图并 OCR 识别,检查是否包含刚才发送的消息内容:
对于文件和图片,可以检查是否出现了文件名,或者通过视觉识别确认缩略图已出现在聊天区域中。
GA 还可以用视觉能力(
ask_vision)直接"看"截图来判断消息是否发送成功,这在 OCR 不够准确时是一个很好的补充手段。
理解了整个流程之后,最好的学习方式就是让 GA 亲自动手试一试。具体做法非常简单:
实践成功后,最重要的一步是 把这次成功的经验固化为一份 SOP,存入 GA 的记忆中。
你可以告诉 GA:
你:刚才发消息的流程跑通了,请把这次的经验整理成一份 SOP,保存到记忆目录里。
GA 会自动把本次实践中用到的具体参数(搜索框快捷键、输入框坐标区域、等待时间等)和踩过的坑一起写入 SOP。下次再执行同样的任务时,GA 会直接读取这份 SOP,不需要重新摸索。
这就是 GA 的核心工作模式:先学习通用流程 → 实践验证 → 沉淀为专属 SOP。每一次实践都在让 GA 变得更强。
在实际使用中,有一些常见的坑需要注意:
| 操作 | 后果 | 替代方案 |
|---|---|---|
按 Esc 键(Windows) |
某些社交软件在 Windows 上按 Esc 会完全隐藏窗口,macOS 不受影响 | 点击侧栏其他会话来清除搜索状态 |
| 直接键盘输入中文 | 输入法干扰,可能输出乱码 | 剪贴板复制 + Ctrl+V 粘贴 |
| 发送前不验证会话 | 消息发错人 | 必须 OCR 标题栏确认 |
本章我们通过「在社交软件上发消息」这个 Case,学习了 GA 操控桌面应用的完整流程:
| 核心概念 | 说明 |
|---|---|
| 五步流程 | 激活 → 搜索 → 验证 → 发送 → 验证结果 |
| SOP 模式 | 把操作流程固化为 SOP,GA 按步骤执行 |
| 工具封装 | 每个步骤封装为函数,放入 utils.py |
| 决策点介入 | 确定性步骤自动执行,模糊判断交给大模型 |
| 安全原则 | 验证前不发送、剪贴板粘贴、OCR 验证结果 |
举一反三:这套「激活 → 定位 → 验证 → 操作 → 验证」的模式不仅适用于社交软件,任何桌面应用的自动化都可以套用。在后续章节中,我们会看到更多类似的案例。