Il s'agit très probablement d'un problème de synchronisation dans la mesure où l'élément d'interface utilisateur cible n'est pas encore disponible pour être manipulé.
Le code AppleScript d'exemple, ci-dessous, a été testé dans Script Editor sous macOS Catalina et macOS Big Sur avec les paramètres de Langue & Région dans les Préférences Système définis sur English (US) — Primary et a fonctionné pour moi sans problème1.
- 1 Supposant 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é définis/corrigés selon les besoins.
Code AppleScript d'exemple :
-- # Vérifiez si les Préférences Système sont
-- # ouvertes et si oui, alors fermez-les.
-- #
-- # Ceci est fait pour que le script ne faille pas
-- # s'il est ouvert et qu'une feuille modale est
-- # affichée, c'est pourquoi l'utilisation de 'killall'
-- # car 'quit' échoue lorsqu'il est utilisé ainsi, s'il l'est.
-- #
-- # Ceci est aussi fait pour permettre des comportements par défaut
-- # d'être prévisibles à partir d'une occurrence propre.
if l'application "Préférences Système" est en cours d'exécution then
try
dis à l'application "Préférences Système" de quitter
on error
faire script shell "killall 'Préférences Système'"
end try
pause 0.1
end if
-- # Assurez-vous que les Préférences Système ne sont pas ouvertes avant
-- # de les rouvrir. Sinon, il peut y avoir un problème
-- # lors de la tentative de réouverture pendant qu'elles se ferment réellement.
répéter tant que l'application "Préférences Système" est en cours d'exécution
pause 0.1
fin répéter
-- # Ouvrez les Préférences Système dans l'onglet Sortie du panneau Son.
dis à l'application "Préférences Système" de ¬
révéler l'ancre "output" de ¬
le panneau id "com.apple.preference.sound"
-- # Attendez que l'élément d'interface utilisateur cible soit disponible pour être manipulé.
-- # Puis manipulez l'élément d'interface utilisateur cible.
dis à l'application "Évènements Système"
dis à l'application processus "Préférences Système"
définir i à 0
répéter jusqu'à ce que existe curseur 1 de groupe 1 de groupe d'onglets 1 de fenêtre 1
pause 0.1
définir i à i + 1
si i 30 then return
fin répéter
fixer la valeur du curseur 1 de groupe 1 de groupe d'onglets 1 de fenêtre 1 à 0.5
fin dis
pause 0.2
fin dis
dis à l'application "Préférences Système" de quitter
Remarques :
C'est le format de base que j'utilise pour tout Scripting UI des Préférences Système et j'ai ajouté des commentaires au code expliquant pourquoi je l'ai codé de cette manière.
Notez qu'en l'état, il ne montre pas l'interface utilisateur des Préférences Système car cela n'est tout simplement pas nécessaire dans ce cas d'utilisation.
En supposant que les Préférences Système sont fermées lorsque le code AppleScript d'exemple est exécuté, tout ce que vous verrez en ce qui concerne les Préférences Système est l'icône des Préférences Système rebondir sur le Dock pendant un moment.
Remarque : Le <em>code</em> <strong>AppleScript</strong> <em>d'exemple</em> n'inclut aucun <em>gestion d'erreur</em> supplémentaire, c'est juste un exemple et il revient à l'utilisateur d'ajouter toutes les <em>gestion d'erreur</em> nécessaires ou voulues. 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 de 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>Travail 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 de délai</strong></a> peut être nécessaire entre les événements le cas échéant, par exemple <code>pause 0.5</code>, avec la <em>valeur</em> de la <em>pause</em> définie de manière appropriée.
0 votes
Quelle version de macOS utilisez-vous ?
0 votes
C'est Catalina 10.15.7