核心功能概述
macos-desktop-control 是一套专为 macOS 设计的桌面自动化技能,采用显式双管道架构:AppleScript 负责应用语义层(激活应用、查询窗口状态),视觉识别+PyAutoGUI 负责 UI 操作层(点击、拖拽、输入)。这种设计边界既利用了 macOS 原生 API 的稳定性,又避免了 AppleScript UI Scripting 的脆弱性。
显著优点
1. 坐标系统一:针对 Retina 屏幕首创"逻辑坐标"工作模式,自动处理截图像素(2x)与 PyAutoGUI 点坐标的转换,通过 /tmp/macos_desktop_control/calibration.json 持久化校准数据
2. 双模定位:支持 Apple Vision OCR 文本定位与 OpenCV 模板匹配,覆盖标准控件与自定义绘制界面
3. 安全兜底:强制启用 pyautogui.FAILSAFE = True,鼠标移至左上角即中止自动化
4. 权限最小化:AppleScript 仅限应用/窗口语义,不触及深层辅助功能树,降低系统权限依赖
潜在局限
- 硬件假设:V1 限定单屏 Retina 环境,非 Retina、多显示器、缩放分辨率需后续扩展
- 输入法敏感:
--action write受当前输入法状态影响,中文/混合文本需改用剪贴板+Command+V 流程 - 无原生辅助功能:有意排除 AX API 深度遍历,无法获取标准控件的 accessibility 属性
适用人群
- 需要自动化跨应用工作流的效率用户
- 开发自定义 RPA/自动化脚本的开发者
- 需与视觉界面(聊天行、画布、图片)交互的场景
常规风险
| 风险类型 | 说明 |
|---------|------|
| 误点击 | OCR/模板匹配失败可能导致点击错误坐标,建议配合 `pyautogui.moveTo` 预检 |
| 输入干扰 | 输入法候选栏、全角/半角模式可能影响 `write` 动作,关键文本强制走 paste 流程 |
| 权限撤销 | 屏幕录制/辅助功能权限可能被系统收回,需重新授权 |
| 焦点抢占 | 自动化过程中前台应用切换可能中断操作序列 |
技术栈
AppleScript → Python/PyObjC (Apple Vision) → OpenCV → PyAutoGUI,零外部 Tesseract 依赖。