0 votos

¿Cómo pasar a la segunda ventana de una aplicación en ejecución con applescript?

En la experiencia de la nueva reunión de MS Teams, la reunión siempre se abre en una ventana separada, que me gustaría hacer activa a través de apple script para poder activar un acceso directo.

De esta manera puedo estar en cualquier otra aplicación y ejecutar esto para que los comandos de teclas de acceso rápido funcionen.

El título de la ventana de la reunión siempre será único, ya que utiliza el título de la reunión. ¿Podemos simplemente decirle que cambie a la segunda ventana a través de applescript (independientemente del título)?

Test Meeting

EDITAR 1:

Sólo he conseguido utilizar AXRaise y recorrer las ventanas, pero tengo que levantarlas siempre y seleccionar la segunda ventana de la lista. ¿Hay otra manera o tengo que hacer clic en el elemento de menú de alguna manera y utilizar la tecla de flecha hacia abajo?

tell application "System Events"
    perform action "AXRaise" of window 2 of process "Microsoft Teams"
end tell

EDITAR 2 Para que quede claro, tengo que apuntar a la misma segunda ventana cada vez (ya que la tecla de acceso directo sólo funciona en la ventana de la reunión).

También probé la solución sugerida a continuación, que hace lo mismo, recorriendo la ventana, cada vez revelando la siguiente.

tell application "System Events"
    tell application process "Microsoft Teams"
        perform action "AXRaise" of window 2
        set frontmost to true
    end tell
end tell

y

tell application "System Events" to ¬
    perform action "AXRaise" of window 2 of ¬
        application process "Microsoft Teams"

tell application "Microsoft Teams" to activate

EDIT 3 - Solución

La solución de abajo funciona vía UI pero si hay otra forma sin pasar visualmente por el menú del dock sería mejor, ya que una vez que lo ejecute y esté activo en la ventana ya no necesito usarlo. (a no ser que haya una condición if que pueda utilizar para que sólo se active si esa ventana no está ya activa). También he encontrado una mejor solución a través del menú principal de la aplicación ver más abajo.

Sin embargo, me gustaría saber si hay otra o mejor manera de apuntar específicamente a una ventana, es decir, a la segunda ventana de una aplicación sin usar ningún menú.

3voto

Markus Puntos 133

SOLUCIÓN ALTERNATIVA a través del menú de la aplicación

Como MS Teams lista las ventanas en el menú "Ventana" y siempre es la última de la lista hasta donde yo sé, me las arreglé para usar lo siguiente que es mucho más rápido y no muestra ningún menú emergente, dulce.

Añadiendo la solución aquí ya que inicialmente no pedía una solución específica para el menú del dock sino cómo activar la segunda ventana de una app en ejecución y esta solución es mejor.

EDITAR: Resulta que también necesito set frontmost to true ya que la segunda ventana se movió con éxito hacia adelante pero la última aplicación activa se mantuvo al frente e impidió que las teclas de acceso rápido se activaran en la segunda ventana.

enter image description here

tell application "System Events" to tell application process "Microsoft Teams"
    click (last menu item of menu 1 of menu bar item "Window" of menu bar 1)
    set frontmost to true
end tell

1voto

user3439894 Puntos 5883

No tengo Microsoft Teams por lo que no puedo probar el ejemplo AppleScript código mostrar a continuación, sin embargo, funciona en el otro aplicaciones Lo he probado.

Basado en la captura de pantalla en el OP, suponiendo que usted quiere actuar el menú de un Azulejos de muelle y haga clic en un elemento del menú entonces aquí hay una manera de hacerlo.

Ejemplo AppleScript código :

tell application "System Events"
    tell UI element "Microsoft Teams" of list 1 of application process "Dock"
        perform action "AXShowMenu"
        delay 0.1
        click menu item 2 of menu 1
    end tell
end tell

Notas:

El ejemplo AppleScript código utiliza Guiones de interfaz de usuario y puede ser kludgy y depende de que se permita la script para completar antes de realizar cualquier otra acciones manualmente.


Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y sin ningún tipo de inclusión <em>tratamiento de errores </em>no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>intente </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso de la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X