Applescript Mojave 切换辅助功能灰度 On/Off
Applescript Mojave Toggle Accessibility Grayscale On/Off
我有一个脚本,我 运行 定期使用 Applescript 切换灰度 on/off。它 运行 在 High Sierra 上很好,但当我在 Mojave 上使用它时抛出异常。
tell application "System Preferences"
reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"
end tell
tell application "System Events" to tell process "System Preferences"
delay 0.5 # Needed or else script fails
set theCheckbox to checkbox "Use grayscale" of window "Accessibility"
tell theCheckbox
# If the checkbox is not checked, check it to turn grayscale on
if not (its value as boolean) then
set checked to true
click theCheckbox
else # else turn grayscale off
set checked to false
click theCheckbox
end if
end tell
end tell
tell application "System Preferences"
quit
end tell
例外情况是:
System Events got an error: Can’t get checkbox "Use grayscale" of window "Accessibility" of process "System Preferences". (-1728)
Mojave 是否仍然支持 Applescript/Would 有人知道如何解决这个问题吗?
这对我有用 使用 OS Mojave
tell application "System Preferences"
reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"
end tell
tell application "System Events" to tell process "System Preferences"
repeat while not (exists of checkbox "Use grayscale" of group 1 of window "Accessibility")
delay 0.1
end repeat
set theCheckbox to checkbox "Use grayscale" of group 1 of window "Accessibility"
tell theCheckbox
# If the checkbox is not checked, check it to turn grayscale on
if not (its value as boolean) then
set checked to true
click theCheckbox
else # else turn grayscale off
set checked to false
click theCheckbox
end if
end tell
end tell
tell application "System Preferences"
quit
end tell
从 Catalina 开始,更新为:
# quit system preferences if running
if running of application "System Preferences" then
try
tell application "System Preferences" to quit
on error
do shell script "killall 'System Preferences'"
end try
end if
# wait for system preferences to quit
with timeout of 10 seconds
repeat while running of application "System Preferences" is true
delay 0.01
end repeat
end timeout
# switch to correct anchor
tell application "System Preferences" to reveal anchor "Seeing_ColorFilters" of pane "Accessibility"
#tell application "System Preferences" to activate
#get the name of every anchor of pane "Accessibility" of application "System Preferences"
tell application "System Events" to tell process "System Preferences" to tell window "Accessibility"
#return UI elements of tab group 1 of group 1
with timeout of 10 seconds
repeat until exists checkbox "Enable Color Filters" of tab group 1 of group 1
delay 0.01
end repeat
end timeout
click the checkbox "Enable Color Filters" of tab group 1 of group 1
end tell
tell application "System Preferences" to quit
我有一个脚本,我 运行 定期使用 Applescript 切换灰度 on/off。它 运行 在 High Sierra 上很好,但当我在 Mojave 上使用它时抛出异常。
tell application "System Preferences"
reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"
end tell
tell application "System Events" to tell process "System Preferences"
delay 0.5 # Needed or else script fails
set theCheckbox to checkbox "Use grayscale" of window "Accessibility"
tell theCheckbox
# If the checkbox is not checked, check it to turn grayscale on
if not (its value as boolean) then
set checked to true
click theCheckbox
else # else turn grayscale off
set checked to false
click theCheckbox
end if
end tell
end tell
tell application "System Preferences"
quit
end tell
例外情况是:
System Events got an error: Can’t get checkbox "Use grayscale" of window "Accessibility" of process "System Preferences". (-1728)
Mojave 是否仍然支持 Applescript/Would 有人知道如何解决这个问题吗?
这对我有用 使用 OS Mojave
tell application "System Preferences"
reveal anchor "Seeing_Display" of pane id "com.apple.preference.universalaccess"
end tell
tell application "System Events" to tell process "System Preferences"
repeat while not (exists of checkbox "Use grayscale" of group 1 of window "Accessibility")
delay 0.1
end repeat
set theCheckbox to checkbox "Use grayscale" of group 1 of window "Accessibility"
tell theCheckbox
# If the checkbox is not checked, check it to turn grayscale on
if not (its value as boolean) then
set checked to true
click theCheckbox
else # else turn grayscale off
set checked to false
click theCheckbox
end if
end tell
end tell
tell application "System Preferences"
quit
end tell
从 Catalina 开始,更新为:
# quit system preferences if running
if running of application "System Preferences" then
try
tell application "System Preferences" to quit
on error
do shell script "killall 'System Preferences'"
end try
end if
# wait for system preferences to quit
with timeout of 10 seconds
repeat while running of application "System Preferences" is true
delay 0.01
end repeat
end timeout
# switch to correct anchor
tell application "System Preferences" to reveal anchor "Seeing_ColorFilters" of pane "Accessibility"
#tell application "System Preferences" to activate
#get the name of every anchor of pane "Accessibility" of application "System Preferences"
tell application "System Events" to tell process "System Preferences" to tell window "Accessibility"
#return UI elements of tab group 1 of group 1
with timeout of 10 seconds
repeat until exists checkbox "Enable Color Filters" of tab group 1 of group 1
delay 0.01
end repeat
end timeout
click the checkbox "Enable Color Filters" of tab group 1 of group 1
end tell
tell application "System Preferences" to quit