2

这个 SO 答案让我在编写新 MacBook Retina 屏幕分辨率更改脚本方面更进一步。我被困在这里:

在此处输入图像描述

我可以使用此脚本到达此窗格:

tell application "System Preferences"
    activate
    set the current pane to pane id "com.apple.preference.displays"
    reveal anchor "displaysDisplayTab" of current pane
    get elements of current pane
    tell application "System Events"

    end tell
    --get the name of every anchor of current pane
end tell

但是,如果此窗格内容,如何知道如何选择位?例如,如何参考“缩放”单选按钮并选择 5 种可能的分辨率之一?谢谢

4

2 回答 2

8

我发现这段 AppleScript 显然检索了 Window 中可用的每个 UI 元素:

tell application "System Events"
tell process "Process Name"
set visible to true
return every UI element of front window
return name of every UI element of front window
end tell
end tell

(还没有测试自己。在这里找到。)

于 2013-05-23T10:34:34.737 回答
0

图片告诉您属性所需的单选按钮编号:第 7 行的 _MS

use sys : application "System Events"
use prefs : application "System Preferences"

property prefsUI : a reference to process "System Preferences"
property _W : a reference to windows of prefsUI
property _DD : a reference to radio button "Default for display" of radio group 1 of tab group 1 of _W
property _SD : a reference to radio button "Scaled" of radio group 1 of tab group 1 of _W
property _MS : a reference to radio button 4 of radio group 1 of group 2 of tab group 1 of _W

property pane : "com.apple.preference.displays"
property anchor : "displaysDisplayTab"
property tab : anchor (my anchor) of pane id (my pane)

set defaultDisplay to null
if tab ≠ (reveal tab) then return null

tell _DD to if exists then set defaultDisplay to its value as boolean

if defaultDisplay is false then
    click _DD
else
    click _SD
    click _MS
end if

quit prefs

该脚本会根据当前处于活动状态的分辨率在默认分辨率和“最大空间”分辨率之间交替。

于 2019-07-08T17:09:02.273 回答