En el sistema operativo MacOS se suele tener un buen acceso a la funcionalidad de las aplicaciones a través del teclado ya que, por norma, las aplicaciones permiten el uso de atajos de teclado.
La gestión de los atajos de teclado se realiza desde el sistema operativo por lo que es posible utilizar estos atajos de teclado para poder crear scripts de AppleScript específicos para una aplicación y crear nuestras propias personalizaciones de uso de una aplicación utilizando nuestros propios scripts de AppleScript
Esto también permite que una aplicación no compatible con AppleScript pueda ser manipulada por un script utilizando los propios elementos y controles de interfaz de la aplicación no compatible.
La aplicación System Events
La aplicación System Events es un servicio del sistema operativo que permite realizar ciertas operaciones a otras aplicaciones y programas en ejecución. System Events no tiene interfaz de usuario por lo que hay que utilizarlo a través de otra aplicación o un script de AppleScript
Con System events podemos controlar el teclado, el ratón, el volumen de nuestro Macbook y muchas cosas más. Veremos en más detalles a System Events en otros artículos.
Dentro del diccionario de System Events para AppleScript se encuentra el comando keystroke el cual nos permite simular una pulsación de teclas desde nuestro script.
El comando keystroke para ser utilizado sobre una aplicación requiere que dicha aplicación esté siendo ejecutada en ese momento. Pero si el comando es un atajo de teclado general de MacOS entonces el comando keystroke puede ser utilizado sin ningún requisito previo.
Para el comando keystroke debemos indicar qué teclas queremos pulsar pero hay que identificar entre teclas alfanuméricas y teclas modificadoras. Las teclas modificadoras son la tecla de mayúsculas, comando, control, alt, etc.
La forma de usar el comando keystroke es la siguiente:
tell application "System Events" to keystroke "letra a pulsar" using teclas modificadoras
También podemos utilizar el código numérico de la tecla en lugar de su representación literal. Su sintaxis es la siguiente:
tell application "System Events" to key code número de la tecla using teclas modificadoras
Unos ejemplos simples
En un editor de textos vamos a escribir la frase Hola mundo simulando las pulsaciones de teclado. El código es:
tell application "System Events" to keystroke "Hola mundo!"
Vamos a enviar el atajo de teclado Comando+n para abrir una nueva ventana en la aplicación que esté activa en ese momento. El código es el siguiente:
tell application "System Events" to keystroke "n" using command down