核心用法
macOS Desktop Control 是一套面向 macOS 的桌面自动化工具链,采用「语义控制 + 视觉控制」双轨架构:
- AppleScript 语义层:用于应用激活、窗口状态查询、前台应用识别等系统级操作
- 视觉自动化层:基于截图、OCR(Apple Vision)、OpenCV 模板匹配和 pyautogui 实现精确的鼠标键盘控制
工作流遵循标准化 Pipeline:初始化坐标映射 → 捕获屏幕 → 视觉定位(OCR/图像匹配)→ 执行鼠标/键盘动作。特别针对 Retina 屏幕做了逻辑坐标与像素坐标的自动校准,确保点击位置精准。
显著优点
1. 中文原生支持:OCR 采用 Apple Vision 框架,无需 Tesseract,对中文识别效果良好;文本输入默认使用剪贴板粘贴,完美处理中英混输场景
2. Retina 适配:自动处理逻辑坐标(points)与物理像素(pixels)的 2x 映射关系,避免自动化偏移
3. 模块化设计:截图、裁剪、定位、鼠标、键盘、AppleScript 各自独立为脚本,可灵活组合
4. 安全兜底:启用 pyautogui.FAILSAFE,鼠标移至左上角可紧急中止自动化
5. 延迟初始化:首次使用时自动完成屏幕校准,无需手动配置
潜在局限
- 单屏限制:当前版本假设单主屏幕,多屏环境可能需要额外适配
- 无深度无障碍支持:刻意未实现 AppleScript UI Scripting,无法直接操作 accessibility tree 中的抽象控件
- 视觉依赖型:自定义绘制 UI(如聊天列表、画布)必须依赖截图+OCR,对动态内容或频繁界面变化敏感
- 权限门槛:需授予「屏幕录制」和「辅助功能」权限,企业环境可能受 MDM 策略限制
适合人群
- 需要跨应用自动化工作流的高级用户(如自动填表、批量消息处理)
- 无法使用标准无障碍 API 的复杂 UI 场景(自定义渲染、游戏、旧版应用)
- 具备一定脚本能力,愿意组合命令行工具实现自动化的开发者
常规风险
- 坐标漂移风险:若屏幕分辨率或缩放设置变更,需手动删除
/tmp/macos_desktop_control/calibration.json重新校准 - 误触风险:基于视觉的点击可能因界面变化点错位置,建议在关键操作前加入截图验证步骤
- 权限滥用:辅助功能权限可被恶意利用,建议仅在可信终端运行,用完及时撤销权限
- 剪贴板污染:默认粘贴输入会覆盖剪贴板内容,敏感场景需注意数据残留