Mac 13.2.1下AirPods Pro降噪控制AppleScript报错求助
解决Mac 13.2.1中AppleScript控制AirPods Pro降噪模式切换的错误
你遇到的Can't get menu bar 1 of process SystemUIServer错误,实际根源并非SystemUIServer进程,而是代码存在拼写错误、UI元素路径不匹配、延迟不足等问题,结合Mac 13 Ventura的ControlCenter结构,以下是修复方案:
步骤1:授予辅助功能权限
打开「系统设置」→「隐私与安全性」→「辅助功能」,将运行脚本的应用(如Script Editor、Terminal)添加到列表并勾选权限,否则脚本无法操控系统UI元素。
步骤2:修正后的AppleScript代码
set AirPodsName to "Joris's AirPods Pro" -- 修正拼写错误:Aripods → AirPods tell application "System Events" tell application process "ControlCenter" -- 打开音量控制菜单 set volMenu to menu bar item "volume" of menu bar 1 click volMenu delay 0.5 -- 增加延迟确保菜单加载完成 -- 定位并打开AirPods设备选项面板 try set btItem to menu item AirPodsName of menu 1 of volMenu click btItem delay 0.5 -- 等待设备模式面板加载 on error errMsg display alert "未找到指定AirPods设备:" & errMsg click volMenu -- 关闭菜单后退出 return end try -- 切换降噪/通透模式 tell window "ControlCenter" set ncCheckbox to checkbox "Noise Cancellation" of group 1 of scroll area 1 set tCheckbox to checkbox "Transparency" of group 1 of scroll area 1 if value of ncCheckbox is 1 then click tCheckbox else click ncCheckbox end if end tell -- 关闭控制中心 click volMenu end tell end tell
关键改动说明
- 修正AirPods名称拼写错误,确保能匹配到目标设备
- 调整AirPods选项的定位逻辑:直接从音量菜单的子菜单获取设备项,更贴合Ventura的ControlCenter结构
- 增加合理延迟,避免UI元素未加载完成时执行操作导致错误
- 用
try...on error块处理设备未找到的异常,提升脚本健壮性 - 直接通过复选框名称定位降噪/通透选项,比模糊匹配更可靠
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

