尝试使AppleScript正常工作,它将显示模式切换为灰度。
基于另一个已有几年历史的脚本。 从那以后,Apple更改了“系统偏好设置”面板的配置,这破坏了脚本。
无法弄清楚如何进入辅助功能面板内的“显示”菜单项。
@EnableTransactionManagement
非常感谢任何帮助!
答案 0 :(得分:3)
尽管我完全同意@vadian关于检查是否存在的建议,但我承认不喜欢到目前为止发布的两个脚本,这是我的第三点贡献。
我的第一个担心是,无需activate
系统偏好设置。它在后台运行非常愉快,并且完全在视线之外。
我的第二个观点是,根本没有必要弄清楚必须选择哪个特定行以及如何识别它:系统偏好设置与panes
一起系列anchors
,其中之一直接将您带到“显示”部分。
仅 个UI脚本,在这种情况下非常可惜,它需要访问复选框并单击它。
您应该在下面的脚本结果中找到一些令人愉悦的效果,即系统偏好设置的作用在执行时看起来似乎没什么表现。
>use prefs : application "System Preferences"
use sys : application "System Events"
property process : a reference to application process "System Preferences"
property window : a reference to window 1 of my process
property pane : a reference to pane id "com.apple.preference.universalaccess"
property anchor : a reference to anchor "Seeing_Display" of my pane
property checkbox : a reference to checkbox "Use grayscale" of my window
contents of my anchor = (reveal my anchor)
if the result = false then return
with timeout of 60 seconds
repeat until my checkbox exists
delay 0.5
end repeat
end timeout
click my checkbox
quit prefs
系统信息: AppleScript版本:“ 2.7”,系统版本:“ 10.13。 6“
答案 1 :(得分:1)
对于macOS High Sierra,答案很好地张贴在this article的评论中,因此所有人都相信原始作者。
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.universalaccess"
delay 1 # needs time to open universal access
tell application "System Events" to tell process "System Preferences" to tell window "Accessibility"
tell scroll area 2 to tell table 1 to tell row 6 #open display preferences
select
end tell
click checkbox "Use grayscale"
end tell
end tell
tell application "System Preferences" to quit
这在macOS 10.13.5中对我有用
答案 2 :(得分:1)
如果要编写UI脚本,请在使用它们之前确保存在特定的UI元素。最有效的方法是重复循环。
脚本没有选择行号,而是选择了名为ControlTemplate="{StaticResource MainPageTemplate}"
的行。
如果脚本将在本地化环境中使用,请对Display
,Accessibility
和Display
使用本地化的字符串
Use grayscale