3 votes

MacOS Big Sur : Rejeter de manière programmée la notification "Disk Not Ejected Properly" via Automator.

Je fais beaucoup de développement de logiciels embarqués. Les microcontrôleurs ont des mini systèmes de fichiers que mon programmeur utilise pour pousser un nouveau firmware sur la puce.

Depuis que j'ai mis à niveau vers Big Sur, je suis inondé d'un nombre considérable de notifications Finder "Disque non éjecté correctement" chaque fois que je fais ce qui précède.

Avant Big Sur, elles disparaissaient dans le Centre de notifications et je pouvais toutes les effacer. Avec Big Sur, je ne peux pas.

J'ai essayé d'enregistrer un flux de travail Automator pour appuyer sur le bouton "fermer" des notifications, et c'est bien jusqu'à ce que j'essaie d'exécuter le flux de travail via Terminal où j'obtiens une erreur :

L'action "Watch Me Do" a rencontré une erreur : "Cette application doit être autorisée à contrôler cet ordinateur en utilisant les fonctionnalités d'accessibilité, en utilisant les préférences Sécurité & Confidentialité situées dans Préférences Système, avant d'utiliser Watch Me Do"

J'AI autorisé ces autorisations, et essayé d'exécuter avec sudo, mais aucune amélioration. J'ai ensuite essayé de faire glisser les étapes watch me do individuelles dans leur propre étape pour voir le AppleScript sous-jacent - comme je ne suis pas si familier avec AppleScript, cela ne m'a pas beaucoup aidé.

Il existe un certain nombre de scripts similaires en ligne mais ils ne fonctionnent pas avec Big Sur d'après mes tests,

Quelqu'un peut-il m'aider à écrire un AppleScript que je peux exécuter via Terminal pour m'aider à rejeter ces notifications ?

Elles me rendent fou et je dois laisser mon Ne pas déranger toute la journée pour cacher ce désordre.

(1 : pour insister, il ne s'agit pas de clés USB ou de disques durs. Il s'agit de microcontrôleurs donc ils ne peuvent pas être éjectés en raison de la nature du développement du firmware)

entrez une description de l'image ici

1 votes

Pourquoi ne pas éjecter correctement les disques ?

1 votes

@Tetsujin les appareils ne sont pas des disques comme un disque dur ou une clé USB. Ce sont des microcontrôleurs qui ont des systèmes de fichiers intégrés - c'est ce que le programmeur cherche pour pousser mon micrologiciel. Il n'y a pas de concept d'éjection de ceux-ci car le système de fichiers disparaît après que le micrologiciel est programmé

0voto

user3439894 Points 52496

L'exemple de code AppleScript ci-dessous a été testé dans Éditeur de scripts et en tant que script shell exécutable dans Terminal, sous macOS Big Sur avec les paramètres de Langue & Région dans les Préférences Système définis sur Anglais (US) — Principal et a fonctionné pour moi sans problème1.

  • 1 Suppose que les réglages nécessaires et appropriés dans les <strong>Préférences Système</strong> > <strong>Sécurité & Confidentialité</strong> > <strong>Confidentialité</strong> ont été configurés/complétés si nécessaire.

Le exemple de code AppleScript suivant, enregistré en tant que script shell exécutable, devrait faire l'affaire. Notez qu'une vérification limitée a été effectuée et que le code peut nécessiter des ajustements.

#!/usr/bin/osascript

tell application "System Events"
    tell application process "Centre de notifications"
        repeat while exists (éléments UI de la zone de défilement 1 de la fenêtre 1)
            try
                effectuer (première action du groupe 1 de l'élément UI 1 de la zone de défilement 1 des fenêtres dont la description est "Fermer")
            end try
            pause 1
        end repeat
    end tell
end tell

Remarques :

Tel que codé, cela devrait cliquer sur le bouton de fermeture de toutes les notifications jusqu'à ce qu'il n'y en ait plus. Si vous souhaitez cibler uniquement les notifications avec "DISQUE NON ÉJECTÉ CORRECTEMENT", vous devrez modifier le code en conséquence.


Note : L'<em>exemple</em> de code <strong>AppleScript</strong> est simplement cela et, sans gestion d'<em>erreur</em> incluse, ne contient pas de gestion d'<em>erreur</em> supplémentaire qui pourrait être appropriée. Il incombe à l'utilisateur d'ajouter toute gestion d'<em>erreur</em> qui pourrait être appropriée, nécessaire ou souhaitée. Consultez l' <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>instruction</strong></a> <em>try</em> et l' <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>instruction</strong></a> <em>error</em> dans le <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guide Langage AppleScript</strong></a>. Voir également, <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>Travailler avec les Erreurs</strong></a>. De plus, l'utilisation 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>commande</strong></a> de <em>pause</em> peut être nécessaire entre les événements lorsque approprié, par exemple <code>pause 0.5</code>, avec la <em>valeur</em> de la <em>pause</em> correctement définie.

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