2010-05-12 18 views
7

¿Hay alguna manera de obtener un AppleScript para acceder a los elementos del menú que aparecen cuando hace clic derecho en el icono del dock?Acceso al icono del dock Opciones de menú del botón derecho con AppleScript

En concreto, esto es lo que quiero hacer:

Yo uso Google Chrome como navegador web en MacOS X Leopard. Soy un adicto al atajo de teclado y utilizo QuickSilver para crear atajos de teclado para todo lo que pueda. Una de las cosas más comunes que hago es abrir una nueva ventana del navegador web. Pero utilizo Spaces frecuentemente para particionar mis tareas en las que estoy trabajando actualmente, y cuando abro un navegador web o página web con un activador QuickSilver, los espacios cambian al último espacio en el que usé Chrome y abre una nueva pestaña, que a menudo me distrae por horas porque me lleva a un espacio diferente y por lo tanto una tarea diferente. Puedo solucionarlo haciendo clic con el botón derecho en el icono de Google Chrome y haciendo clic en la opción "Nueva ventana", que abre una nueva ventana en el espacio actual. Pero en AppleScript, para hacer cualquier cosa con Google Chrome, lo primero que tengo que hacer es activarlo, lo que me lleva de vuelta al problema original. ¿Alguien puede pensar en una solución a este problema, AppleScript o de otra manera? Se ha convertido en un problema serio. Cuando usaba Firefox, resolvía el problema cambiando un elemento de preferencia que decía "Siempre abrir enlaces emergentes en una ventana nueva" o algo así, que era una especie de mazo, pero funcionó. Siempre puedo volver a Firefox, pero pensé que haría mi pregunta aquí primero. ¿Alguien con alguna idea?

+0

acaba de encontrar esta en la búsqueda de botón derecho del ratón ejemplos AppleScript - por exactamente la misma razón que se . –

Respuesta

3

Para cualquiera que esté interesado, creo que tengo una solución de trabajo razonable para este problema, pero no implica hacer clic derecho en los iconos de dock.

Primero, debe desmarcar "Al cambiar a una aplicación, cambie a un espacio con ventanas abiertas para la aplicación" en el panel de preferencias de Espacios de Preferencias del Sistema. Entonces escribí el siguiente AppleScript:

tell application "Google Chrome" to activate 

tell application "System Events" 
    tell process "Google Chrome" 
     try 
      set var to get name of window 1 
     on error 
      set var to "no window exists!!!" 
     end try 
    end tell 
end tell 

if var is "no window exists!!!" then 
    tell application "System Events" 
     tell process "Google Chrome" 
      click menu item "New Window" of menu "File" of menu bar 1 
     end tell 
    end tell 
else 
    tell application "System Events" 
     tell process "Google Chrome" 
      click menu item "New Tab" of menu "File" of menu bar 1 
     end tell 
    end tell 
end if 

lanzo este AppleScript usando Spark, lo que me permite asignar una tecla de acceso directo a ella.

Es un poco lento, particularmente cuando el sistema está bajo carga, pero generalmente no toma más de un segundo en ejecutarse. También evita el problema que estaba teniendo con Firefox, donde terminaría con docenas de ventanas abiertas al final del día.

+0

Nunca había visto esa opción en el panel de pref antes (oculto en la parte inferior) - tan genial. –

3

Las versiones nocturnas Chromium ahora contienen compatibilidad con AppleScript, y esto debería llegar a Chrome muy pronto. Esto significa que ahora se puede hacer:

tell application "Chromium" 
    make new window 
    activate 
end tell 
+0

¡gracias por el aviso! Espero que esto llegue pronto a la versión estable; No soy mucho para nightlies en algo tan fundamental como un navegador web. –

14

No estoy seguro si usted todavía está interesado, pero ...

tell application "Dock" 
    activate 
end tell 
tell application "System Events" 
    tell process "Dock" 
     set frontmost to true 
     activate 
     tell list 1 
      perform action "AXShowMenu" of UI element "Google Chrome" 
      delay 1 
      repeat 4 times -- count number of items to the one you want 
       key code 126 -- up arrow 
       -- key code 125 -- down arrow 
      end repeat 
      delay 1 
      repeat 2 times 
       key code 36 -- return key 
      end repeat 
     end tell 
    end tell 
end tell 
+0

en realidad, bastante útil. Gracias –

+0

no hay problema. Tuve que hacer algo similar para el trabajo y cuando estaba investigando encontré su pregunta, pero no estaba seguro de si seguiría viéndola. – George

+0

¡Agradable! Esto me ayudó a controlar Wimp, una aplicación de Adobe Air que no exportará sus elementos de menú a Quicksilver a menos que sea la aplicación principal. –

Cuestiones relacionadas