Les éléments suivants exemple AppleScript code a été testé sous MacOS High Sierra .
Le texte suivant est modifié code de ma réponse que vous avez liée dans votre OP :
Cette version agit sur applications sur Centre de notification sur Préférences du système qui sont définis dans le appNameList
liste .
Modifiez les noms des applications et ajoutez ou supprimez-les dans l'onglet appNameList
liste au besoin :
Exemple AppleScript code :
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
Préférences du système n'a pas besoin d'être visible pour que cela fonctionne et pourquoi il n'y a pas de activate
commande dans le exemple AppleScript code . En outre, si Préférences du système est déjà ouvert, il est d'abord fermé avant que le reste de l'écran ne soit fermé. code est traité. Ceci est fait pour deux raisons, la première a déjà été mentionnée et la seconde est que voir les événements de l'interface utilisateur traités est une distraction visuelle et peut être ennuyeux.
Notez également que le valeur de la delay
commandes peuvent avoir besoin d'être ajustées pour votre système, et ou des delay
commandes peut ou non être nécessaire. Ajustez valeurs de et ou ajouter/supprimer le delay
commandes le cas échéant.
Cette version agit sur tous les applications sur Centre de notification sur Préférences du système .
Exemple AppleScript code :
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
Pour une version qui agit sur une seule application spécifique en Centre de notification sur Préférences du système voir ma réponse à : Désactiver le badge pour une application spécifique avec un script.
Note : Le site exemple AppleScript code est juste cela et n'emploie pas d'autres gestion des erreurs que ce qui est montré et n'a pour but que de montrer une des nombreuses façons d'accomplir une tâche. Il incombe toujours à l'utilisateur d'ajouter/utiliser les outils appropriés. gestion des erreurs selon les besoins/la volonté.