Rimuovere più icone di badge di app con uno script?

1

Ho trovato questo link per rimuovere un'icona badge da una singola app.

Disabilita badge per app specifiche con uno script

È possibile creare uno script con più app per rimuovere tutti i badge contemporaneamente?

Esecuzione di High Sierra 10.13.3

    
posta yowats0n 07.03.2018 - 21:23
fonte

1 risposta

0

Il seguente esempio codice AppleScript è stato testato in macOS High Sierra .

Quanto segue è modificato codice dalla mia risposta che hai collegato nel tuo OP:

Questa versione agisce su applicazioni nel Centro notifiche in Preferenze di sistema definite nella lista appNameList .

Cambia i nomi delle applicazioni e / o aggiungili o rimuovili nella appNameList lista secondo necessità:

Esempio AppleScript codice :

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

Le preferenze di sistema non devono essere visibili affinché funzioni e perché non ci sia activate comando nell'esempio AppleScript codice . Inoltre, se Preferenze di sistema è già aperto, viene prima chiuso prima che venga elaborato il resto del codice . Questo viene fatto per un paio di motivi, il primo dei quali è già stato affermato e in secondo luogo vedere gli UI degli eventi elaborati è una distrazione visiva e può essere fastidioso.

Nota anche che il valore dei delay comandi potrebbe dover essere regolato per il tuo sistema, o altri delay comandi potrebbe o non potrebbe essere necessario. Regola valori di e o aggiungi / rimuovi i delay comandi come appropriato.

Questa versione agisce su tutte le applicazioni nel Centro notifiche in Preferenze di sistema .

Esempio AppleScript codice :

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

Per una versione che agisce su una sola applicazione specifica in Centro notifiche in Preferenze di sistema , vedi la mia risposta a: Badge modificabile per app specifica con uno script

Nota: il esempio codice AppleScript è proprio questo e non impiega nessun altro errore gestendo quindi cosa viene mostrato e si intende solo per mostrare uno dei molti modi in cui eseguire un compito. L'onere è sempre sull'utente di aggiungere / utilizzare la gestione degli errori appropriata come necessario / voluto.

    
risposta data 08.03.2018 - 01:47
fonte

Leggi altre domande sui tag