使用 AppleScript 在 macOS Sierra 中启用 VoiceOver 不起作用
Posted
技术标签:
【中文标题】使用 AppleScript 在 macOS Sierra 中启用 VoiceOver 不起作用【英文标题】:Enabling VoiceOver in macOS Sierra using AppleScript is not working 【发布时间】:2022-01-06 05:48:40 【问题描述】:我正在尝试使用 AppleScript 在 macOS Sierra 中启用 VoiceOver。我没有看到任何错误,只是没有打开。
这是我正在使用的脚本,它在我尝试过的所有其他版本的 macOS 上运行良好。
tell application id "com.apple.systemevents" to key code 96 using command down
【问题讨论】:
在 macOS Sierra 中通过手动按 ⌘F5 进行测试确实有效,并调出初始 VoiceOver 对话框框,但是,您问题中的 AppleScript code 在 macOS Sierra 中不起作用,而在例如macOS High Sierra 和 macOS Catalina。我不知道为什么它在 macOS Sierra 中不起作用,并且出于两个原因发表评论。 1. 确认它在 macOS Sierra 中无法以编程方式运行,但手动运行。 2. 另一种选择是尝试使用 UI 脚本 并通过 System Preferences 脚本启用它。 @user3439894 所以只能使用 UI 脚本? 【参考方案1】:以下示例 AppleScript 代码 假设 VoiceOver 从未开启,而不想看到显示第一次打开 VoiceOver 或之后再次打开的标准对话框。
请注意,这使用了另一个答案中提供的单行 code,我不认为这是一个完整的答案,但是,如果没有它,另一个选项是 UI Scripting。
示例 AppleScript 代码:
try
set doNotShowSplashScreen to (do shell script "defaults read com.apple.VoiceOverTraining doNotShowSplashScreen") as integer as boolean
on error
set doNotShowSplashScreen to false
end try
if doNotShowSplashScreen then
do shell script "/System/Library/CoreServices/VoiceOver.app/Contents/MacOS/VoiceOverStarter"
else
do shell script "defaults write com.apple.VoiceOverTraining doNotShowSplashScreen -bool true && /System/Library/CoreServices/VoiceOver.app/Contents/MacOS/VoiceOverStarter"
end if
注意事项:
在 macOS Sierra 下测试和工作。
【讨论】:
非常感谢。它奏效了。【参考方案2】:我不确定以下是否适用于 macOS Sierra。自己试试:
do shell script "/System/Library/CoreServices/VoiceOver.app/Contents/MacOS/VoiceOverStarter"
【讨论】:
所以,现在很清楚了。所以我的想法也适用于 Mac OS Sierra(并且不像你说的那样可能是一个可行的解决方案)。首次启动时关闭 VoiceOver 快速入门指南 对话框就足够了。虽然,OP 本可以自己说出我的解决方案,并且当他们从 @user3439894 以外的其他用户那里获得帮助时,他们不会像鱼一样保持沉默。当然,感谢您的测试,点赞。 打开 VoiceOver 快速入门指南的屏幕大小不正确,好像 了解更多 按钮推,所以我启动了另一次出现的 macOS Sierra 并且这确实正常打开,好像 ⌘F5 尚未被推送或 VoiceOver 启用通过系统偏好设置。由于我已删除之前出现的 macOS Sierra*,因此我无法调查为什么会得到原始结果。 所以这与附加代码一起检查不再显示此消息 复选框,如果需要,然后单击使用 ViceOver 按钮 与按下 ⌘F5 或通过 System Preferences启用 VoiceOver 相同> 第一次。如果 不再显示此消息 复选框 已经被选中一次,那么这将照常工作。很抱歉有任何混淆。以上是关于使用 AppleScript 在 macOS Sierra 中启用 VoiceOver 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何在沙盒 macOS 应用程序中为 ImageEvent 类运行 AppleScript?
Applescript - 在 MacOS Monterey 上设置系统偏好设置底座大小滑块的值
OS X (macOS) 和低级 C(Objective-C 替代方案)中的 Applescript
text [Formatier Kontakte]Fügt+ 49 vor jede Telefonnummer #macos #applescript