¿Cómo llevar una aplicación hecha en Automator al primer plano después del lanzamiento?

3

He creado una aplicación con AppleScript en Automator.

Creé un Servicio en Automator que lanza la aplicación mencionada anteriormente.

El servicio se activa mediante un atajo de teclado.

El problema es que al iniciarse, el cuadro de diálogo de la aplicación tiene una barra superior gris claro. Tengo que hacer clic en cualquier parte del cuadro de diálogo para que el cuadro de diálogo cambie al gris más oscuro, lo que muestra que la aplicación ahora está seleccionada.

¿Es posible que mi aplicación haga esto automáticamente?

esfera de rubik
fuente
¿Tiene un activate comando después del inicio del on run controlador ? (En la aplicación, no en el servicio)
User3439894
No, no hay activate comando en toda la aplicación. Además, el problema ocurre con cada uno de mis Servicios y ocurre incluso si ejecuto el Servicio manualmente (a través del menú "Servicios" en la esquina superior izquierda de la pantalla).
esfera de rubik

Respuestas:

2

Eche un vistazo al comando en la Referencia de comandos de la Guía del lenguaje AppleScript .activate

activar Trae una aplicación al frente y la abre si está en la computadora local y aún no se está ejecutando.

Añadiría activate medespués del inicio del on run controlador .

usuario3439894
fuente
activate meresuelve el problema Me pregunto por qué este no es el comportamiento predeterminado de las aplicaciones AppleScript.
esfera de rubik
2

Yo veo que la pregunta del OP dice "una solicitud presentada en Automator."

Pero, aparte, y dado que esta pregunta tiene la mayoría de las palabras clave correctas para resolver el problema que estaba teniendo (aplicaciones iniciadas desde una acción "Ejecutar Shell Script" de Automator que aparece detrás de otras aplicaciones abiertas) ...

Si está iniciando una aplicación GUI desde una acción de script de shell en Automator y descubre que no está llegando a primer plano y recibiendo foco, intente algo como

open -a ProgramName.app --args "$@"

y establezca "Pasar entrada" a "como argumentos". Se "$@"expandirá como una lista de argumentos de entrada entre comillas, separados por espacios en blanco (esta es una característica del shell de Unix, no de Automator).

Esto funciona muy bien, por ejemplo, para crear una aplicación Automator "Writer" que inicia LibreOffice Writer ( open -a LibreOffice.app --args --writer "$@"), y también acepta archivos arrastrados y soltados.

Si todavía tiene problemas para que la aplicación aparezca en primer plano (tal vez ya esté abierta, por ejemplo), intente agregar estas líneas a la acción en Automator:

sleep 1  # adjust as you see fit
osascript <<<'tell application "ProgramName.app" to activate'
El tipo respeta
fuente