El servicio se bloquea cuando se usa AppleScript para hacer clic en el icono de la barra de menú [duplicar]

0

El siguiente código AppleScript hace clic en el ícono de WiFi que se encuentra en la barra de menú (fuente) :

tell application "System Events" to tell process "SystemUIServer" to tell (menu bar item 1 of menu bar 1) to click

Complete los siguientes pasos para reproducir el error:

  1. En Automator.app, haga clic en File New Service.

  2. Arrastre una acción Ejecutar AppleScript al flujo de trabajo.

  3. Pegue la línea de código anterior en el cuerpo de AppleScript.

  4. Guarda y titula Service.

  5. Ejecuta el Servicio.

Nunca se hace clic en el ícono de WiFi y, en cambio, aparece el siguiente mensaje de error (dolorosamente ambiguo):

Observaciones sobre este error:

  • El código funciona correctamente cuando se compila y prueba en Script Editor o Automator.

  • El Servicio funciona correctamente cuando el Servicio se activa desde Automator (es decir, cuando la aplicación más avanzada es Automator).

  • El error persiste sin importar qué icono de la barra de menú esté especificado.

  • Agregar privilegios de administrador no resuelve el problema: do shell script "osascript -e 'tell application \"System Events\" to tell process \"SystemUIServer\" to tell (menu bar item 1 of menu bar 1) to click'" password "thePassword" with administrator privileges

¿Sabe qué podría causar este conflicto?

¿Existe una solución alternativa, de modo que un icono Servicio de AppleScript haga clic en el icono de la barra de menú?

OS X El Capitan, versión 10.11.6.

pregunta rubik's sphere 14.03.2018 - 04:54

1 respuesta

1

Esto me funciona en la última versión de macOS Sierra.

Seguí tus pasos exactamente. Sin embargo, este código que publicaste tenía que ser ajustado para funcionar correctamente en mi sistema. Aquí está el código que usé y coloqué en una acción de AppleScript ejecutada por Automator

tell application "System Events"
    click menu bar item 3 of menu bar 1 of application process "SystemUIServer"
end tell

También recibí el mismo mensaje de error que recibiste cuando intenté ejecutar el servicio desde Finder (después de ejecutar correctamente el script en Automator y ScriptEditor)

En una corazonada, agregué la aplicación Finder a la lista de aplicaciones permitidas para controlar mi computadora.

Luego volví al menú de servicios del Finder e intenté ejecutar el servicio nuevamente. ¡Bingo! Funcionó. Hice lo mismo con otras aplicaciones que tenía abiertas y no produjo el mensaje de error

    
respondido por el wch1zpink 14.03.2018 - 05:39

Lea otras preguntas en las etiquetas