1 votes

Erreur AppleScript - Impossible d'obtenir le groupe 1 de la fenêtre "Centre de contrôle".

Attendu

Exécutez un AppleScript afin d'activer/désactiver le Bluetooth du Mac.

Réel

Erreur

L'action "Exécuter AppleScript" a rencontré une erreur : "System Events got an error : Can't get group 1 of window "Control Center" of process "ControlCenter". Invalid index."

script

Ce script a fonctionné sur les versions précédentes de MacOS comme indiqué dans le post AppleScript pour activer le Bluetooth .

Bluetooth Toggle.workflow

tell application "System Events"
    tell process "ControlCenter"
        set BluetoothButton to menu bar item "Bluetooth" of menu bar 1
        click BluetoothButton
        delay 1
        set OnSwitch to checkbox "Bluetooth" of group 1 of window "Control Center"
        click OnSwitch
    end tell
    key code 53
end tell

2voto

user3439894 Points 52496

El exemple AppleScript code montré ci-dessous, a été testé dans scriptÉditeur sous MacOS Monterey avec Langue et région paramètres dans Préférences du système réglé sur Anglais (US) - Primaire et a fonctionné pour moi sans problème 1 .

  • 1 Assume les paramètres nécessaires et appropriés dans <strong>Préférences du système </strong>> <strong>Sécurité et confidentialité </strong>> <strong>Vie privée </strong>ont été fixés/réglés selon les besoins.

  • Il faut que le [Afficher dans la barre de menu case à cocher pour être enregistré : Préférences du système > Dock et barre de menu > Bluetooth

Exemple AppleScript code :

tell application "System Events"
    tell application process "Control Center"
        click menu bar item "Bluetooth" of menu bar 1
        tell window "Control Center"
            try
                click checkbox "Bluetooth"
            on error
                click checkbox "Bluetooth"
            end try
        end tell
    end tell
    key code 53 -- # escape key
end tell

Notes :

Apple se poursuit avec chaque version de MacOS pour paralyser AppleScript et en tant que tel, j'ai dû utiliser des traitement des erreurs pour piéger l'erreur et cliquez sur le bouton Bluetooth case à cocher deux fois pour qu'il fonctionne.

Comme indiqué dans l'ouverture de ma réponse, comment cela a été testé et fonctionne effectivement pour moi dans les conditions énoncées. YMMV

Si vous ne voulez pas avoir le Bluetooth menu sur le barre de menu séparé de la Centre de contrôle vous pouvez utiliser les éléments suivants exemple AppleScript code :

  • El [Afficher dans la barre de menu case à cocher n'est pas enregistré : Préférences du système > Dock et barre de menu > Bluetooth

Exemple AppleScript code :

tell application "System Events"
    tell application process "Control Center"
        click menu bar item "Control Center" of menu bar 1
        click checkbox "Bluetooth" of window "Control Center"
    end tell
    key code 53 -- # escape key
end tell

Note : Le <em>exemple </em><strong>AppleScript </strong><em>code </em>est juste cela et sans aucune inclusion <em>traitement des erreurs </em>ne contient pas d'autres <em>gestion des erreurs </em>le cas échéant. C'est à l'utilisateur qu'il incombe d'ajouter toute <em>traitement des erreurs </em>selon ce qui est approprié, nécessaire ou souhaité. Consultez le <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>essayez </strong></a><em>déclaration </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>erreur </strong></a><em>déclaration </em>dans le <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guide du langage AppleScript </strong></a>. Voir aussi, <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 des erreurs </strong></a>. En outre, 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>retarder </strong></a><em>commande </em>peut être nécessaire entre les événements, le cas échéant, par ex. <code>delay 0.5</code> avec le <em>valeur </em>de la <em>retarder </em>définis de manière appropriée.

0 votes

Le premier exemple AppleScript ci-dessus fonctionne bien pour mon cas d'utilisation sur le Macbook Pro 2019 exécutant MacOS Monterey Version 12.0.1. Merci d'avoir résolu le problème @user3439894 !

0 votes

Il semble qu'il ait cessé de fonctionner sur Monterey 12.4 : System Events got an error : Impossible d'obtenir la fenêtre "Control Center" du processus d'application "ControlCenter".

0voto

wch1zpink Points 6067

La solution suivante nécessite Homebrew - Le gestionnaire de paquets manquant pour MacOS (ou Linux) à installer sur votre système.

Sur Terminal.app l'outil en ligne de commande - blueutil peut être installé avec cette commande : brew install blueutil

Après une installation réussie de Homebrew puis blueutil le blueutil peut être utilisé dans votre AppleScript

    do shell script "/usr/local/bin/blueutil -p toggle"
  • N'exige pas le [Afficher dans la barre de menu case à cocher pour être enregistré : Préférences du système > Dock et barre de menu > Bluetooth

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