El siguiente ejemplo AppleScript código se probó en macOS High Sierra .
Se modificó el siguiente código de mi respuesta que vinculó en su OP:
Esta versión actúa en aplicaciones en Centro de notificaciones en Preferencias del sistema que se definen en la lista appNameList
.
Cambie los nombres de la aplicación o agregue o elimínelos en la lista appNameList
según sea necesario:
Ejemplo AppleScript código :
set appNameList to {"Calendar", "Games", "Mail", "Messages"}
if running of application "System Preferences" then
quit application "System Preferences"
delay 1
end if
tell application "System Preferences"
set the current pane to pane id "com.apple.preference.notifications"
delay 1
tell application "System Events"
tell table 1 of scroll area 1 of window 1 of application process "System Preferences"
repeat with i from 2 to (count rows)
select row i
delay 0.25 -- # Do not set any lower, increase if necessary!
set theValue to (value of static text 1 of group 1 of UI element 1 of row i)
repeat with thisApp in appNameList
if theValue contains thisApp then
-- # Use 0 with clickCheckBox() to check the check box.
-- # Use 1 with clickCheckBox() to uncheck the check box.
my clickCheckBox(1)
end if
end repeat
end repeat
end tell
end tell
quit
end tell
on clickCheckBox(i as integer)
tell application "System Events"
tell group 1 of window 1 of application process "System Preferences"
-- # if the value of checkbox is 0, it's unchecked.
-- # if the value of checkbox is 1, it's checked.
if value of checkbox "Badge app icon" is equal to i then
click checkbox "Badge app icon"
end if
end tell
end tell
end clickCheckBox
Las Preferencias del Sistema no necesitan estar visibles para que esto funcione y por qué no hay un comando activate
en el ejemplo AppleScript código . Además, si Preferencias del sistema ya está abierto, primero se cierra antes de que se procese el resto del código . Esto se hace por un par de razones, la primera de las cuales ya se mencionó y, en segundo lugar, ver los eventos de IU procesados es una distracción visual y puede ser molesto.
También tenga en cuenta que el valor de los comandos delay
puede necesitar un ajuste para su sistema, y / o comandos adicionales delay
Puede o no ser necesario. Ajuste valores de y / o agregue / elimine los comandos delay
según corresponda.
Esta versión actúa en todas las aplicaciones en Centro de notificaciones en Preferencias del sistema .
Ejemplo AppleScript código :
if running of application "System Preferences" then
quit application "System Preferences"
delay 1
end if
tell application "System Preferences"
set the current pane to pane id "com.apple.preference.notifications"
delay 1
tell application "System Events"
tell table 1 of scroll area 1 of window 1 of application process "System Preferences"
repeat with i from 2 to (count rows)
select row i
delay 0.25 -- # Do not set any lower, increase if necessary!
-- # Use 0 with clickCheckBox() to check the check box.
-- # Use 1 with clickCheckBox() to uncheck the check box.
my clickCheckBox(1)
end repeat
end tell
end tell
quit
end tell
on clickCheckBox(i as integer)
tell application "System Events"
tell group 1 of window 1 of application process "System Preferences"
-- # if the value of checkbox is 0, it's unchecked.
-- # if the value of checkbox is 1, it's checked.
if value of checkbox "Badge app icon" is equal to i then
click checkbox "Badge app icon"
end if
end tell
end tell
end clickCheckBox
Para una versión que actúa sobre una sola aplicación específica en Centro de notificaciones en Preferencias del sistema , consulte mi respuesta a: Insignia deshabilitada para una aplicación específica con un script
Nota: El ejemplo AppleScript código es solo eso y no emplea ningún otro error manejando entonces lo que se muestra y está destinado solo a mostrar una de las muchas maneras en que se puede realizar una tarea. La responsabilidad recae siempre sobre el Usuario para agregar / usar el manejo de errores según sea necesario / deseado.