使用AppleScript修改macOS系统偏好设置启用鼠标键的实现问题
macOS 自动启用鼠标键(Mouse Keys)的AppleScript实现方案
现有尝试的核心局限
- 编写的连按5次Option键的代码无法生效,原因是系统对该快捷键的触发设置了专属输入事件校验规则,通过System Events模拟的按键事件达不到校验标准,且该快捷键触发后会弹出确认弹窗,无法实现无交互自动启用。
- 现有打开辅助功能面板的代码仅完成了最外层偏好设置窗格的跳转,后续子菜单导航、复选框点击操作,需要借助System Events的UI元素访问能力实现,无需手动逐一点击界面控件。
补全后的可运行代码
tell application "System Preferences" activate delay 1 -- 跳转至辅助功能偏好设置面板 set current pane to pane id "com.apple.preference.universalaccess" delay 1.5 end tell tell application "System Events" -- 定位系统偏好设置主窗口 set sysPrefMainWindow to window 1 of process "System Preferences" -- 选中侧边栏的「指针控制」选项 select row (whose name contains "指针控制") of outline 1 of scroll area 1 of sysPrefMainWindow delay 0.5 -- 切换到「备选控制方式」标签页 click radio button "备选控制方式" of tab group 1 of sysPrefMainWindow delay 0.5 -- 勾选「启用鼠标键」复选框,避免重复点击反向操作 set mouseKeysCheckBox to checkbox "启用鼠标键" of group 1 of sysPrefMainWindow if value of mouseKeysCheckBox is 0 then click mouseKeysCheckBox end if end tell
运行注意事项
- 运行脚本前,需要给执行脚本的载体(终端/脚本编辑器)授予系统「辅助功能」权限,否则系统会拦截对UI元素的访问操作。
- 如果使用英文版本的macOS,需要将代码中的中文控件名称替换为对应英文标识:
Pointer Controls、Alternative Control Methods、Enable Mouse Keys。 - 不同macOS版本的UI层级存在微小差异:Ventura 及以上版本将原「系统偏好设置」更名为「系统设置」,需要将代码中的
System Preferences替换为System Settings,对应的辅助功能面板pane id也需同步调整;若运行时提示找不到对应元素,可以通过脚本编辑器的「程序元素导航器」,对准当前打开的系统设置窗口核对控件名称与层级路径。
内容的提问来源于stack exchange,提问作者gurkensaas
相关产品推荐
相关产品推荐

