applescripting显示首选项窗格

时间:2016-06-10 15:45:58

标签: applescript

我正在尝试编写我认为是一个简单的脚本来更改显示器的颜色配置文件。我已经提出了显示pref窗格并选择了Color选项卡,但是遇到了真正的问题。遗憾的是我的GUI脚本缺乏,我无法弄清楚如何选择显示配置文件。滚动窗口中只显示两个配置文件(“iMac”和“我的校准10-14”)。理想情况下,我希望脚本在每次运行时在两个配置文件之间切换。这是我到目前为止所做的:

tell application "System Preferences"
    activate
    set current pane to pane id "com.apple.preference.displays"
    reveal (first anchor of current pane whose name is "displaysColorTab")
end tell

任何帮助或建议肯定会受到赞赏。我正在运行 OS 10.11.5

1 个答案:

答案 0 :(得分:1)

这个良好的开端并不是那么遥远。然后,脚本应该找到哪一行包含配置文件1(iMac)以及哪一行包含配置文件2(您的配置文件)。 如果选择了包含配置文件1的行,请选择包含配置文件2的行。

这就是脚本吼叫的作用。您必须在Prof1和Prof2中调整2个配置文件。该脚本使用“contains”,因此您不必将prof1 / 2设置为完整值,只需将其中的一部分设置即可。

我也在寻找两个配置文件中没有一个不存在的情况(然后脚本什么都不做)。

tell application "System Preferences"
activate
set current pane to pane id "com.apple.preference.displays"
reveal (first anchor of current pane whose name is "displaysColorTab")
end tell

set Prof1 to "iMac" -- define the profile 1
set Prof2 to "ACES CG Linear" -- define the profile 2
set {Row1, Row2, Sel1} to {0, 0, false} -- init values

tell application "System Events"
tell application process "System Preferences"
    tell table of scroll area 1 of tab group 1 of front window
        -- search the 2 profiles in the list of rows
        repeat with I from 1 to (count of rows)
            set N to (value of static text of row I) as string
            if N contains Prof1 then
                set Row1 to I
                set Sel1 to selected of row I
            end if
            if N contains Prof2 then set Row2 to I
        end repeat
        -- make the toggle !
        if Sel1 then -- profile 1 selected, then select profile 2, if found
            if Row2 > 0 then set selected of row Row2 to true
        else -- profile 1 not yet selected, : select profile 1 if found
            if Row1 > 0 then set selected of row Row1 to true
        end if
    end tell -- table
end tell --process Sys Pref 
end tell -- System Events