1 votos

Eliminar varios iconos de insignias de aplicaciones con un solo script?

He encontrado este enlace para eliminar un icono de insignia de una sola aplicación.

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

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

Ejecutando High Sierra 10.13.3

0 votos

¿Es posible? Sí. Qué específicamente ¿te gustaría hacer? ¿Qué has probado?

0 votos

Me gustaría ejecutar un script para eliminar los iconos de las aplicaciones de mensajes y correo electrónico. Actualmente tengo cuatro separados que se encargan de las aplicaciones individualmente.

0voto

user3439894 Puntos 5883

Lo siguiente ejemplo AppleScript código se probó bajo MacOS High Sierra .

Se modifica lo siguiente código de mi respuesta que enlazaste en tu OP:

Esta versión actúa sobre aplicaciones en Centro de notificaciones en Preferencias del sistema que se definen en el appNameList lista .

Cambie los nombres de las aplicaciones o añada o elimine las mismas en el appNameList lista 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

Preferencias del sistema no necesita ser visible para que esto funcione y por qué no hay activate comando en el ejemplo AppleScript código . Además, si Preferencias del sistema ya está abierto, primero se cierra antes de que el resto de la código se procesa. Esto se hace por un par de razones, la primera de las cuales ya se dijo y, en segundo lugar, ver los eventos de la interfaz de usuario procesados es una distracción visual y puede ser molesto.

También hay que tener en cuenta que el valor de la delay comandos puede necesitar ser ajustado para su sistema, y o adicional delay comandos puede ser necesario o no. Ajustar valores de y o añadir/eliminar el delay comandos según corresponda.


Esta versión actúa sobre todos los 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úe sobre una sola aplicación específica en Centro de notificaciones en Preferencias del sistema , ver mi respuesta a: Desactivar la insignia para una aplicación específica con un script


Nota: El ejemplo AppleScript código es sólo eso y no emplea ningún otro tratamiento de errores entonces lo que se muestra y sólo pretende mostrar una de las muchas maneras de realizar una tarea. El usuario siempre tiene la responsabilidad de añadir/utilizar las herramientas adecuadas. tratamiento de errores según se necesite/se desee.

0 votos

¡Impresionante! A mi entender esto eliminará los iconos de la aplicación de la insignia de cada aplicación. ¿Hay alguna variable que pueda introducir para eliminar sólo 4 o 5 aplicaciones? Si no es así, esto funcionará bien.

0 votos

@yowats0n, he actualizado mi respuesta para acomodar lo mencionado en tu comentario a mi respuesta.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X