1 votes

Supprimer plusieurs icônes de badges d'applications avec un seul script ?

J'ai trouvé ce lien pour supprimer une icône de badge d'une seule application.

Désactiver le badge pour une application spécifique avec un script.

Est-il possible de créer un script avec plusieurs applications pour supprimer tous les badges en même temps ?

Exécution de High Sierra 10.13.3

0voto

user3439894 Points 52496

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é.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X