1 votos

Error de AppleScript - No se puede obtener el grupo 1 de la ventana "Centro de control"

Se espera

Ejecuta un AppleScript para activar/desactivar el Bluetooth del Mac.

Actual

Error

La acción "Ejecutar AppleScript" ha encontrado un error: "Eventos del sistema" obtuvo un error: No se puede obtener el grupo 1 de la ventana "Centro de Control" del proceso "ControlCenter". Índice no válido".

script

Este script ha funcionado en versiones anteriores de MacOS como se indica en el post AppleScript para activar el 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 Puntos 5883

El ejemplo AppleScript código que se muestra a continuación, se probó en Script Editor en MacOS Monterey 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.

  • Requiere la [] Mostrar en la barra de menús casilla de verificación para ser registrado: Preferencias del sistema > Muelle y barra de menús > Bluetooth

Ejemplo AppleScript código :

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

Notas:

Apple continúa con cada versión de MacOS para paralizar AppleScript y como tal tuve que usar algunos tratamiento de errores para atrapar el error y pulse el botón Bluetooth casilla de verificación dos veces para que funcione.

Como se indica en la apertura de mi respuesta, como esto fue probado y de hecho funciona para mí en las condiciones establecidas. YMMV

Si no quiere tener el Bluetooth menú en el barra de menús separado del Centro de control puede utilizar lo siguiente ejemplo AppleScript código :

  • El [] Mostrar en la barra de menús casilla de verificación no está registrado: Preferencias del sistema > Muelle y barra de menús > Bluetooth

Ejemplo AppleScript código :

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

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>intente </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 del <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.

0 votos

El primer ejemplo de AppleScript anterior funciona bien para mi caso de uso en el Macbook Pro de 2019 que ejecuta la versión 12.0.1 de MacOS Monterey. ¡Gracias por la solución @user3439894!

0 votos

Parece que dejó de funcionar en Monterey 12.4: System Events obtuvo un error: No se puede obtener la ventana "Centro de Control" del proceso de aplicación "ControlCenter".

0voto

wch1zpink Puntos 11

La siguiente solución requiere Homebrew - El gestor de paquetes que faltaba para MacOS (o Linux) para ser instalado en su sistema.

En Terminal.app la herramienta de línea de comandos - blueutil se puede instalar con este comando: brew install blueutil

Después de la instalación exitosa de Homebrew entonces blueutil El blueutil puede utilizarse en su AppleScript

    do shell script "/usr/local/bin/blueutil -p toggle"
  • No requiere el [√] Mostrar en la barra de menús casilla de verificación para ser registrado: Preferencias del sistema > Muelle y barra de menús > Bluetooth

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