He descubierto un error muy extraño con los Servicios.
Para presenciar este comportamiento, haga lo siguiente:
-
Asegúrese de que Safari está en su Dock.
-
Abre Automator. Crea un nuevo servicio.
-
Configura el servicio para que reciba "ninguna entrada" en "cualquier aplicación".
-
Inserta una acción "Ejecutar AppleScript".
-
Pegue lo siguiente en la acción:
on run {input, parameters} delay 5 display dialog "Hello" tell application "Safari" to activate return input end run
-
Guarda el servicio.
-
Cerrar el servicio.
-
Vuelva a abrir el Servicio.
-
Automator debería presentarle un cuadro de diálogo que le pregunta: "¿Desea instalar el servicio" ServiceName "?" Haz clic en "Instalar".
-
Cuando aparezca el cuadro de diálogo "Instalación completa", haz clic en "Listo".
Ahora, ejecuta el servicio. Para hacer esto, haga clic en el título de la aplicación actual en la esquina superior izquierda de la pantalla (el segundo elemento en la barra de menú). Luego haga clic en el título del servicio.
Notarás que Safari se abrirá inmediatamente (evidenciado por el punto negro debajo de su logotipo en el Dock). Safari abrirá antes del retraso de 5 segundos y antes de que se muestre el cuadro de diálogo "Hola".
Colocar la declaración activate
en una subrutina no soluciona el problema.
¿Puede alguien confirmar que esto es un error? Estoy convencido de que se trata de un error en la función Servicios porque cuando ejecuta el Servicio desde Automator (haciendo clic en el botón "jugar" en la esquina superior derecha de la ventana de Automator), el código se ejecuta correctamente.
Si se trata de un error, ¿alguien tiene una solución para que la aplicación no se abra antes de que se ejecute el código anterior?
Mi Macbook Pro está ejecutando OS X El Capitan, 10.11.6.
El error podría estar relacionado con otro comportamiento extraño que noté:
-
Salga de Safari.app y Automator.app, si se están ejecutando.
-
Abra la carpeta donde están almacenados los Servicios de la computadora (/ Users / Me / Library / Services /) en Finder.
-
Haga clic con el botón derecho en el archivo de Servicio y abra el archivo con Automator.
Observará que al abrir el archivo .workflow con Automator se activará Safari. No debería hacer eso.