3 votos

MacOS Big Sur: Descarte programáticamente la notificación de "Disco no expulsado correctamente" a través de Automator

Hago mucho desarrollo de software embebido. Los microcontroladores tienen mini sistemas de archivos a través de los cuales mi programador introduce el nuevo firmware en el chip.

Desde que me he trasladado a Big Sur, me han inundado con un significativo número de notificaciones de "Disco no expulsado correctamente" del Finder cada vez que hago lo anterior.

Antes de Big Sur, estos se desvanecían en el centro de Notificación y podía despejarlos todos. En Big Sur, no puedo.

He intentado grabar un flujo de trabajo de Automator para pulsar el botón "cerrar" en las notificaciones, y esto está bien hasta que intento ejecutar el flujo de trabajo a través de la Terminal donde me da error:

The action “Watch Me Do” encountered an error: “This application must be allowed to control this computer using accessibility features, using the Security & Privacy preferences located in System Preferences, before using Watch Me Do”

He permitido estos permisos, y he probado a ejecutar con sudo pero no ha mejorado. Luego traté de arrastrar las etapas individuales de Watch Me Do a su propio escenario para ver el AppleScript subyacente - como no estoy tan bien versado con AppleScript, no me ayudó mucho.

Hay una serie de scripts scripts en la red, pero, según mis pruebas, no funcionan con Big Sur,

¿Puede alguien ayudarme a escribir un AppleScript que pueda ejecutar a través del Terminal para ayudarme a descartar estas notificaciones?

Me están volviendo loco y tengo que dejar mi No Molestar activado todo el día para ocultar este desastre.

(1: para subrayar, estos no son unidades de pulgar USB o discos duros. Son microcontroladores, por lo que no pueden ser expulsados debido a la naturaleza del desarrollo del firmware)

enter image description here

0voto

user3439894 Puntos 5883

El ejemplo AppleScript código que se muestra a continuación, se probó en Script Editor y como shell ejecutable script en Terminal , bajo MacOS Big Sur con Lengua y región ajustes en Preferencias del sistema ajustado a Inglés (EE.UU.) - Primaria y me ha funcionado sin problemas 1 .

  • 1 Asume los ajustes necesarios y apropiados en <strong>Preferencias del sistema </strong>> <strong>Seguridad y privacidad </strong>> <strong>Privacidad </strong>se han fijado/abordado según las necesidades.

Lo siguiente ejemplo AppleScript código guardado como un shell ejecutable script debería servir. Hay que tener en cuenta que se han realizado pruebas limitadas y que el código puede ser necesario ajustar.

#!/usr/bin/osascript

tell application "System Events"
    tell application process "NotificationCenter"
        repeat while exists (UI elements of scroll area 1 of window 1)
            try
                perform (first action of group 1 of UI element 1 of ¬
                    scroll area 1 of windows where description is "Close")
            end try
            delay 1
        end repeat
    end tell
end tell

Notas:

Tal y como está codificado, esto debería haga clic en el botón de cierre en todos notificaciones hasta que no haya notificaciones a la izquierda. Si quiere dirigirse sólo a notificaciones con "DISCO NO EXPULSADO CORRECTAMENTE" entonces tendrá que modificar el código para hacerlo.


Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y sin ningún tipo de inclusión <em>tratamiento de errores </em>no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>pruebe con </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso de la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

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