Shortcuts 无法直接读取屏幕二维码,需借助 Keyboard Maestro 截图并调用 ZBar 解析,结果写入剪贴板;Shortcuts 可作为下游处理工具,但识别必须由外部工具完成。

macOS 原生 Shortcuts(快捷指令)App 不支持直接调用摄像头或实时图像识别,也无法原生执行 OCR 或二维码解析。因此,想用 Shortcuts 单独完成“读取屏幕上的二维码”这一任务,目前不可行。但你可以通过组合系统能力与第三方工具,构建一条可靠、离线、一键触发的信息流。
核心思路:绕过 Shortcuts 的限制,用 Keyboard Maestro 承担识别主干
Shortcuts 本身无法处理图像内容,但 macOS 允许外部工具将结果写入剪贴板——这正是桥梁。实际可行的自动化信息流是:
- 用户按下快捷键(如 F9)
- Keyboard Maestro 自动唤起截图(⌥⌘Space),等待你框选二维码区域
- 截图后立即调用命令行工具 ZBar(已安装)解析图片中的二维码
- 识别结果自动写入剪贴板,并弹出通知
- 你在任意应用中按 ⌘V 粘贴即可,无需打开其他窗口
为什么不用纯 Shortcuts 实现?
Shortcuts 的“图像”类操作仅限于处理已存在文件(如相册照片、下载目录里的 PNG),它没有权限截取当前屏幕像素,也不能调用 ZBar、OpenCV 等本地识别引擎。即便在 macOS Sonoma 或 Sequoia 中,Shortcuts 仍不具备实时图像分析能力。
- “获取剪贴板图像”操作只能读取已复制的图片,不能主动截图
- “运行 Shell 脚本”虽可用,但 zbarimg 命令需要真实图片路径,而 Shortcuts 无法把截图临时保存并传参给它
- 没有 API 或系统事件能让 Shortcuts 监听“截图完成”这一动作,无法同步后续识别
轻量替代方案:用预览 App + 快捷键手动补位
如果你不想装 Keyboard Maestro,可借助系统原生能力做半自动流程:
- 按 ⌘⇧4 截图,松开按键后图片自动保存到桌面
- 立刻在访达中右键该 PNG → “快速操作” → “文本识别”(仅限文字)
- 对二维码——需额外一步:双击打开预览,按 ⌘A 全选 → ⌘C 复制,此时系统会尝试识别(但成功率低,且不保证支持二维码)
- 更稳的做法:把截图拖进浏览器,用在线扫码页(如 webqr.com),但需联网、上传、再复制,隐私与效率都不理想
进阶整合:让 Shortcuts 成为下游触发器
Keyboard Maestro 完成识别后,你可以让它进一步调用 Shortcuts ——比如把识别出的 URL 自动打开,或存入 Obsidian:
- 识别成功后,Keyboard Maestro 执行“运行 AppleScript”
- 脚本内容为:
tell application "Shortcuts" to run shortcut "打开链接并归档" - 前提是该 Shortcuts 已启用“允许不受信任的快捷指令”,且名称完全匹配
- 这样,Shortcuts 就不再负责识别,而是专注做“收到文本后怎么处理”,分工更合理
不复杂但容易忽略:ZBar 是关键依赖,必须通过 Homebrew 安装(brew install zbar),且确保终端能直接运行 zbarimg。其余步骤都是围绕它封装交互而已。


















