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

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 に答える