Use AppleScript to change System Preferences without being visible?

做~自己de王妃 提交于 2021-01-28 08:02:55

问题


I would like to change settings in System Preferences without the user seeing things happen.
If I have a script that starts like:

tell application "System Preferences"
    activate
    set current pane to pane "com.apple.preference.sound"
end tell

the System Preference window will be shown to the user.
I'd like to know if there is a way to do it in the background somehow, or at least keep the window minimized.

(Example script can be found in this question.)


回答1:


You might be able to do what you want with with the command line app defaults, there are some other command line apps that can manipulate other system stuff also like, pmset

Some things can be set using scripting additions also, for example the systems volumn can be set using the standard additions, you also you may be able to find other scripting additions to add more stuff.




回答2:


You can just remove the activate command. System Events can perform actions in hidden windows.

tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

If you open menus, they will be visible though.

tell application "System Preferences"
    reveal anchor "TTS" of pane "com.apple.preference.speech"
end tell
tell application "System Events" to tell process "System Preferences"
    tell pop up button 1 of tab group 1 of window 1
        delay 0.1
        click
        if value is "Alex" then
            click menu item "Kathy" of menu 1
        else
            click menu item "Alex" of menu 1
        end if
    end tell
end tell
quit application "System Preferences"

The brightness of displays can also be changed with brightness.c.



来源:https://stackoverflow.com/questions/16711861/use-applescript-to-change-system-preferences-without-being-visible

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!