980 2
980 2

A veces, para realizar tareas con una aplicación, es necesario invocar opciones de menú que no tienen un atajo de teclado asociado. Aunque ésta opción es más rápida y sencilla, el problema es que en el caso de una reinstalación es necesario volver a crear esos atajos de teclado personalizados y no siempre te vas a acordar de todos ellos, por lo que tienes que editar el script... muchos scripts.... vamos a usar otra opción.

El plan B, que se integra mucho mejor a lo largo del tiempo, es decirle al Applescript que aceda directamente las opciones de menú. De hecho, es factible configurar un entorno completo para una aplicación en forma de combo invocando varias acciones seguidas que normalmente deberían ser disparadas usando atajos de teclado (preconfigurados o no) o opciones de menú.

Para invocar una opción de menú directamente desde Applescript usaríamos el siguiente código 1

tell application "System Events"
tell process "iTunes"
click menu item "Minirreproductor" of menu "Ventana" of menu bar 1
end tell
end tell

Hay que hacer algunas puntualizaciones a este código para que luego no se disparen errores:

  • Si te fijas bien, las referencias a las opciones de menú, es decir, el nombre del menú y la opción de menú están tal como se muestran en el idioma por defecto del sistema.
  • Si quieres seguir enganchado acciones dentro de la misma aplicación, solo has de añadirlas, una detrás de otra, debajo de la línea de acción de esa aplicación, por ejemplo este nuevo acceso al menú Ventana:
    click menu item "iTunes" of menu "Ventana" of menu bar 1
  • Si quieres saltar a otra aplicación, para invocar a continuación una opción de menú, tienes que llamarla después del primer end tell, por ejemplo2:
tell application "System Events"
tell process "iTunes"
click menu item "Minirreproductor" of menu "Ventana" of menu bar 1
end tell
tell process "Finder"
click menu item "Nueva ventana del Finder" of menu "Archivo" of menu bar 1
end tell
end tell

Repeticiones

Imagina que necesitas que esta acción se repita un número determinado de veces porque, por ejemplo, necesitas que se acepten una numero de opciones determinado que usan esa misma opción de menú. Para esto vamos a usar un bucle.

tell application "System Events"
tell process "Finder"
repeat 3 times
click menu item "Nueva ventana del Finder" of menu "Archivo" of menu bar 1
end repeat
end tell
end tell

Cuyo resultado es 3 nuevas ventanas del Finder.

Usando estos métodos puedes crear combos de acciones para realizar tareas complejas con una estructura relativamente sencilla de Applescript que además funcionará en todos tus Mac puesto que la estructura de menús es invariable entre ellos.

Notas

  1. Este es un ejemplo para el minirreproductor de iTunes
  2. Posteriores acciones irían colocadas después del cierre de la anterior con su end tell
In this article


Join the Conversation

2 comments

  1. Alquimista

    Muy interesante y ¿opciones del botón secundario sobre archivos del Finder? Por ejemplo, seleccionar un archivo y ‘Comprimir archivo xxx’.

    1. Carlos Burges Ruiz de Gopegui

      Un poco más difícil me parece esto. 😉