Applescript将显示切换为灰度模式

时间:2018-09-17 13:40:17

标签: applescript accessibility grayscale

尝试使AppleScript正常工作,它将显示模式切换为灰度。

基于另一个已有几年历史的脚本。 从那以后,Apple更改了“系统偏好设置”面板的配置,这破坏了脚本。

无法弄清楚如何进入辅助功能面板内的“显示”菜单项。

@EnableTransactionManagement

非常感谢任何帮助!

3 个答案:

答案 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}" 的行。

如果脚本将在本地化环境中使用,请对DisplayAccessibilityDisplay使用本地化的字符串

Use grayscale