0

 AppleScript: Simplificando el acceso a la barra de menús

Me encanta AppleScript por lo fácil que es de programar y las cosas que podemos hacer con él, como os demostré la semana pasada con un pequeño programa para activar Bonjour y los permisos de escritura en Coda.

En dicho programa hice uso de una ayuda inestimable cuyo mérito corresponde a los chicos de Mac OS X Hints, ayuda que os paso a explicar tras el salto pormenorizadamente.

Esto es muy sencillo: si queréis crear un AppleScript para acceder a la barra de menús de un programa primero debéis poner este código en AppleScript Editor:

on menu_click(mList)
    local appName, topMenu, r

    -- Validate our input
    if mList's length < 3 then error "Menu list is not long enough"

    -- Set these variables for clarity and brevity later on
    set {appName, topMenu} to (items 1 through 2 of mList)
    set r to (items 3 through (mList's length) of mList)

    -- This overly-long line calls the menu_recurse function with
    -- two arguments: r, and a reference to the top-level menu
    tell app "System Events" to my menu_click_recurse(r, ((process appName)'s ¬
        (menu bar 1)'s (menu bar item topMenu)'s (menu topMenu)))
end menu_click

on menu_click_recurse(mList, parentObject)
    local f, r

    -- `f` = first item, `r` = rest of items
    set f to item 1 of mList
    if mList's length > 1 then set r to (items 2 through (mList's length) of mList)

    -- either actually click the menu item, or recurse again
    tell app "System Events"
        if mList's length is 1 then
            click parentObject's menu item f
        else
            my menu_click_recurse(r, (parentObject's (menu item f)'s (menu f)))
        end if
    end tell
end menu_click_recurse

Y una vez que esté puesto ya podéis poner vuestra función. Yo por ejemplo le voy a decir al Finder que seleccione todo:

tell app "Finder" to activate
menu_click({"Finder", "Edición", "Seleccionar todo"})

Grabamos el AppleScript, lo guardamos como aplicación (o como queráis) y listo.

Noticias Relacionadas

Comenta esta noticia
Se el primero
Puntua esta noticia
Me gustaNo me gusta (sin puntuar)
Categoría: Apple, Mac OS X

¿Te ha parecido interesante la noticia? ¡Déjanos tu comentario!

Publicidad
Publicidad