Con AppleScript podemos enviar y manipular aplicaciones para conseguir realizar tareas pero para que estas aplicaciones puedan realizar dichas tareas deben estar abiertas. Por esta razón, en muchas ocasiones, debemos asegurarnos dentro del código de nuestro script si la aplicación está abierta y de no ser así abrirla para poder operar con ella.
Preguntando si la aplicación está en ejecución
Ya vimos en el artículo estructuras condicionales en AppleScript cómo crear una estructura condicional para hacer preguntas con nuestro script.
Con una sentencia if then podemos preguntar a una aplicación si está activa o no. Por ejemplo, el siguiente código pregunta si la aplicación Mensajes est´ activa:
if application "Messages" is running then
-- código a ejecutar cuando mensajes está abierto
end if
También podemos consultar si la aplicación no está disponible:
if application "Messages" is not running then
-- código a ejecutar cuando la aplicación no está disponible
end if
Abriendo la aplicación
En AppleScript con el comando tell podemos enviar diversos comandos a las aplicaciones. Uno de estos comandos es ordenarle que se abra. Por ejemplo, abramos la aplicación mensajes:
tell application "Messages" to activate
Con tell también podemos crear bloques de código para enviar una serie de comandos a una aplicación. Su sintáxis es la siguiente:
tell application "Nombre de aplicación
-- Código a ejecutar con la aplicación
end tell
En muchas ocasiones es recomendable incluir pausas (comando delay) entre una operación y otra que enviemos a una aplicación para darle tiempo a la aplicación a procesar el comando y obtener un resultado.
Cerrando la aplicación
También podemos ordenar a una aplicación que se cierre. El comando en lugar de activate es quit. El código es el siguiente:
tell application "Messages" to quit
Ejemplo completo
En un script real que quisiera utilizar la aplicación mensajes para algo la estructura del código debería seguir la siguiente lógica:
- Si la aplicación no está activa
- Entonces abre la aplicación
- Opera con la aplicación mensajes con la tranquilidad de que se sabe que recibirá nuestros comandos porque sabemos que está abierta
Nuestro script final quedaría de la siguiente forma:
if application "Messages" is not running then
tell application "Messages" to activate
end if
Esta práctica de seguridad es muy recomendable para asegurarnos de que nuestros scripts funcionan siempre como se espera.