核心功能
macos-desktop-control 是一款面向 macOS 的专业级桌面自动化技能,采用 AppleScript 与 Python/pyautogui 的双层架构设计,实现了语义控制与视觉控制的明确分离。
核心能力模块
1. 应用与窗口控制(AppleScript层)
- 按名称或 bundle 路径激活应用
- 检测应用运行状态、读取前台应用
- 获取窗口标题、统计窗口数量、列示窗口清单
2. 屏幕捕获与图像处理
- 捕获逻辑分辨率截图(自动适配 Retina 屏幕)
- 智能坐标映射校准(像素坐标与点坐标转换)
- 图像区域裁剪,支持工作流复用
3. 视觉目标定位(三层降级策略)
- 首选:AI 语义理解——适合动态界面、无固定模板、需上下文理解的场景
- 备选:Apple Vision OCR——文本驱动目标,支持区域约束搜索
- 兜底:OpenCV 模板匹配——稳定可复用的视觉模板
4. 鼠标与键盘控制(pyautogui层)
- 移动、单击、双击、右键、拖拽等完整鼠标操作
- 文本粘贴(默认,规避输入法问题)、单键按压、组合快捷键
- 显式按键按住/释放机制
显著优点
- 中文深度优化:特别处理中文输入/识别,无额外 Tesseract 依赖
- Retina 智能适配:自动检测并校准逻辑坐标与物理像素比例
- 安全设计:pyautogui.FAILSAFE 机制,鼠标移至左上角自动中止
- 分层架构清晰:AppleScript 专注语义状态,视觉操作走截图+AI/OCR/OpenCV
- 降级策略稳健:AI → OCR → OpenCV 的三级容错,提升复杂界面成功率
- 懒加载校准:首次使用自动初始化,后续复用缓存配置
潜在局限与风险
- 单屏限制:当前版本假设单主屏幕,多屏环境可能坐标异常
- 权限依赖:必须授予终端「屏幕录制」与「辅助功能」权限
- AI 依赖外部:语义理解需外部 AI 服务调用,非内置能力
- 版本 1 局限:Retina 适配优先,非 Retina 屏幕测试覆盖有限
- AppleScript UI 排除:明确不支持深层无障碍树操作,部分复杂应用受限
适合人群
- macOS 自动化开发者与高级用户
- 需要跨应用工作流编排的 RPA 场景
- 中文环境下的自动化测试与运维团队
- 偏好「视觉优先」而非「无障碍 API」的界面自动化方案
常规风险提示
- 坐标漂移:屏幕分辨率或显示缩放变更后需重新校准
- 权限撤销:系统更新可能重置隐私权限,导致功能失效
- 剪贴板覆盖:默认粘贴模式会改写系统剪贴板内容
- 界面变化:依赖视觉匹配的功能在 UI 改版时需更新模板