¿Eliminar varios íconos de distintivos de aplicaciones con un script?

1

Encontré este enlace para eliminar un icono de distintivo de una sola aplicación.

Deshabilitar la insignia para una aplicación específica con un script

¿Es posible crear un script con varias aplicaciones para eliminar todas las insignias a la vez?

Running High Sierra 10.13.3

    
pregunta yowats0n 07.03.2018 - 21:23

1 respuesta

0

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.

    
respondido por el user3439894 08.03.2018 - 01:47

Lea otras preguntas en las etiquetas