Operaciones básicas con Aplicaciones MacOS y diccionarios de AppleScript

Ya hemos visto que muchas de las aplicaciones para MacOS incluyen diccionarios para AppleScript para realizar operaciones específicas con cada aplicación pero existen comandos y propiedades comunes para todas las aplicaciones.

En este artículo veremos algunas funciones comunes para todas las aplicaciones de MacOS que incluyan diccionario.

Pero antes de empezar debemos aprender a comunicarnos con las aplicaciones. Esta operación de comunicarnos con una aplicación se realiza mediante el bloque tell. Su sintaxis es sencilla.


tell "Nombre de aplicación entre comillas"
-- lista de operaciones
end tell

Cuando decimos comunicarnos con una aplicación nos referimos tanto a enviar órdenes a la aplicación como a consultar propiedades y variables que posee la aplicación o utilizar objetos y elementos de operación que la aplicación ofrece para ser utilizados con AppleScript.

Abrir la ventana de la aplicación

El comando activate abre la aplicación con la que nos estemos comunicando y si ya estaba abierta pasa su ventana a primer plano.


tell application "TextEdit"
activate
end tell

Cerrar una aplicación

Con el comando quit podemos cerrar la aplicación que queramos.


tell application "Mail"
quit
end tell

Diccionarios en AppleScript

Ya hemos visto en artículos anteriores que AppleScript nos permite realizar ciertas operaciones sobre el sistema operativo y, en algunas ocasiones, también podemos utilizar o manipular algunas aplicaciones a través de AppleScript. Esto se consigue gracias a los diccionarios de AppleScript.

Los diccionarios de AppleScript son manuales que indican al motor de AppleScript cómo poder interactuar con una aplicación utilizando AppleScript.

Estos diccionarios son creados por los propios desarrolladores de las aplicaciones para MacOS X. Las aplicaciones más comunes y todas las de Apple para MacOS X poseen sus diccionarios.

Para ver qué diccionarios tenemos disponible en nuestro equipo debemos abrir la aplicación del Editor de scripts y en el menú Archivo encontraremos la opción Abrir diccionario.

Al pulsar esa opción se nos abrirá un cuadro de diálogo que nos permite abrir un diccionario para consultar su documentación para poder escribir nuestro script de AppleScript.

En esa lista encontraremos aplicaciones ya conocidas como Automator, Finder, Pages, Keynote, Microsoft Word, xCode, System events o Safari.

Todos los diccionarios suelen estar escritos en inglés ya que es el idioma oficial para AppleScript.

Explorando un diccionario

Al abrir un diccionario nos encontraremos una barra de herramientas, una zona de selección de categorías (identificada por VoiceOver como Explorador) y una zona de lectura (identificada por VoiceOver como Contenido web).

En el explorador se encuentran las suites de comandos y los tipos y elementos disponibles. en el contenido web se puede leer la documentación del diccionario o del elemento seleccionado en el Explorador.

En la barra de herramientas encontraremos elementos para buscar términos, cambiar el tamaño de letra, cambiar el lenguaje de programación para consultar el diccionario o cambiar el modo de visualización del explorador.

Un pequeño ejemplo con Finder

El Finder es una de las aplicaciones más poderosas de MacOS X y su diccionario es muy interesante. Buscando entre sus comandos y propiedades podemos crear sin demasiada complicación un script que nos permita expulsar todas las unidades y memorias USB que estén conectadas a nuestro ordenador en ese momento. El código sería algo así:


tell application "Finder"
eject (disks whose ejectable is true)
end tell

Mejorando el ejercicio

Aunque el script anterior puede ser muy útil es mejor que el usuario pueda seleccionar qué unidad expulsar. Con los conocimientos que ya hemos visto en artículos anteriores podemos hacer ese script.

A continuación veremos un código inicial no terminado para dar pistas de cómo se podría hacer ese script.


tell application "Finder"
set unidades to (disks whose ejectable is true) as text
choose from list unidades with title "Expulsar una unidad" with prompt "Selecciona la unidad que quieras expulsar" OK button name "Expulsar"
end tell

Puedes compartir tu propuesta de solución con otros lectores en los comentarios de este artículo.