Básicamente se trata de no complicarse la existencia con el muy amplio y profundo diccionario de Applescript y trabajar directamente con el interfaz de las aplicaciones siguiendo una regla muy básica y sencilla:
Si se puede hacer con atajos de teclado, se puede escriptar
Realmente, utilizando la técnica Applescript Combo, lo que transmitimos a la aplicación son secuencias de atajos de teclado de todo tipo que nos permiten crear un combo de acciones.
Hay muy pocas sentencias que aprender en Applescript Combo: básicamente solo hay 2, la primera para indicar que queremos escribir algo:
tell application "System Events" to keystroke "escribir algo"
con una variante, para escribir símbolos ASCII:
tell application "System Events" to keystroke (ASCII character 31)
y la segunda, para pulsar teclas:
tell application "System Events" to key code 48
Esta segunda tiene una serie de variaciones al respecto del uso de teclas modificadoras, por ejemplo:
tell application "System Events" to key code 28 using {option down, shift down}
Si nos fijamos, entre los {} tenemos las teclas modificadoras a pulsar:
- option (opción o ⌥)
- shift (mayúsculas o ⇧)
- command (comando o ⌘)
- control (ctrl o ⌃)
Applescript Combo tiene una ventaja adicional: permite hacer llamadas a Aplicaciones que no tienen soporte de Applescript y forzarlas a ejecutar órdenes a través de los atajos de teclado.
Crear Applescripts Combo es muy fácil: solo tienes que apuntar los atajos de teclado que tienes que realizar para completar la acción que quieres realizar para a continuación trasladarlos con las sentencias de arriba al editor de scripts para crear tu Applescript.
Trucos y recursos
Imagina que quieres crear un Applescript Combo en el que abres Safari, le dices que cree tres pestañas y ponga Safari a pantalla completa. En el siguiente Applescript vamos a ver cómo llamar a una aplicación, como establecer una repetición de comandos y evidentemente, el uso de las pulsaciones de teclado.
tell application “Safari” to activate
repeat 3 times
tell application “System Events” to key code 17 using {command down}
end repeat
tell application “System Events” to key code 3 using {command down, control down}
Si necesitas, en algún momento, establecer una pausa entre acciones, por ejemplo para esperar que se cargue algo, la línea de código Applescript es:
pause X
donde X es la cantidad de segundos que necesitas de pausa en el script
Y ahora los recursos:
Para saber qué teclas tienes que pulsar usando key code tienes este enlace donde se referencian la mayoría de ellas. Si lo que necesitas es ASCII, lo tienes aquí. Y si necesitas pulsar la barra espaciadora[note]Que es el equivalente a hacer clic cuando trabajas con un interfaz y el teclado[/note] puedes usar:
tell application "System Events" to keystroke space