0 votos

AppleScript click Ui Element con teclas modificadoras

Quiero hacer clic en un botón de elemento Ui con las teclas modificadoras pulsadas.

Aquí está mi código:

tell application "System Events"
    tell process "Pro Tools"
        tell (1st window whose title contains "Edit: ")
            tell table "Group List"
                tell row 2
                    tell UI element 2

                        click       

                    end tell
                end tell
            end tell
        end tell
    end tell
end tell

He probado a añadir la tecla abajo (opción) y la tecla arriba (opción) entre las líneas de clic, pero no funciona.

0 votos

Vainilla básica AppleScript no tiene una disposición para pre key down y mouse click simultáneamente. Puede intentar utilizar una utilidad de terceros como bluem.net/jump/cliclick envuelto en un do shell script comando . Tendría que determinar mediante programación la posición de UI element 2 para luego hacer clic en él con cliclick .

2voto

user3439894 Puntos 5883

No tengo Pro Tools Así que sólo puedo ofrecerte algo de información que puede ayudarte.

Primero tengo que decir que Guiones de interfaz de usuario puede ser poco fiable y no siempre funciona de forma consistente dependiendo de cómo se codificado y el UI element que es el objetivo. Siempre es mejor si uno puede encontrar una manera de hacer algo sin recurrir a Guiones de interfaz de usuario primero.

Como te dije originalmente en un comentario... Vainilla básica AppleScript no tiene una disposición para pre key down y mouse click simultáneamente. Puedes intentar utilizar una utilidad de terceros como Haga clic en envuelto en un do shell script comando . Tendría que determinar mediante programación la posición de UI element 2 para luego hacer clic en él con cliclick .

Sin Pro Tools Voy a utilizar Safari como ejemplo, y el Mostrar barra lateral UI element en su Barra de herramientas junto con cliclick en un do shell script comando .

El propósito de seguir ejemplo AppleScript código es demostrar cómo obtener mediante programación el position y size del objetivo UI element con el fin de calcular dónde haga clic en . También supone que Safari ya se está ejecutando con una ventana estándar abierta a, por ejemplo, esta pregunta que has publicado.

activate application "Safari"
delay 1

tell application "System Events" to ¬
    set ps to {position, size} ¬
        of UI element 2 ¬
        of toolbar 1 ¬
        of window 1 ¬
        of application process "Safari"

set p to item 1 of ps
set s to item 2 of ps

set x to (item 1 of p) + (item 1 of s) / 2 as integer
set y to (item 2 of p) + (item 2 of s) / 2 as integer

do shell script "$HOME/bin/cliclick c:" & x & "," & y

       - Cambio $HOME/bin/cliclick según corresponda: /path/to/cliclick

Cuando se ejecuta en script Editor , esto hizo clic en el Mostrar barra lateral UI element en el Barra de herramientas en Safari .

Ahora sé que has dicho que quieres pinchar con el opción clave sin embargo para un ejemplo práctico voy a modificar el ejemplo AppleScript código que se muestra arriba, a control-clic a la derecha del Mostrar barra lateral UI element en el Barra de herramientas en Safari , lo que hará que aparezca el Personalizar la barra de herramientas menú.

Cambios:

set x to (item 1 of p) + (item 1 of s) / 2 as integer

Para:

set x to (item 1 of p) + (item 1 of s) * 2 as integer
  • En lugar de dividir el x tamaño del eje por dos para obtener el centro del objetivo UI element en su x eje multiplicaremos su x tamaño del eje por dos para que haga clic en el Barra de herramientas sí mismo.

También cambiar:

do shell script "$HOME/bin/cliclick c:" & x & "," & y

Para:

do shell script "$HOME/bin/cliclick kd:ctrl c:" & x & "," & y & " ku:ctrl" 

Ahora, cuando se ejecuta en script Editor , este control-clic a la derecha del Mostrar barra lateral UI element en el Barra de herramientas en Safari y se ha puesto en marcha el Personalizar la barra de herramientas menú.


Con todo esto en mente, tal vez lo siguiente ejemplo AppleScript código te funcionará, sin embargo recuerda que no está probado ya que no tengo Pro Tools y puede requerir que se rehaga el tell application "System Events" ... declaración :

activate application "Pro Tools"
delay 1

tell application "System Events" to ¬
    set ps to {position, size} ¬
        of UI element 2 ¬
        of row 2 ¬
        of table "Group List" ¬
        of (first window whose title contains "Edit: ") ¬
        of application process "Pro Tools"

set p to item 1 of ps
set s to item 2 of ps

set x to (item 1 of p) + (item 1 of s) / 2 as integer
set y to (item 2 of p) + (item 2 of s) / 2 as integer

do shell script "$HOME/bin/cliclick -r kd:alt c:" & x & "," & y & " ku:alt"

       - Cambio $HOME/bin/cliclick según corresponda: /path/to/cliclick


Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y no contiene ningún <em>error </em>manipulación, según proceda. Es responsabilidad del 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>.

Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>para su uso con <strong>Safari </strong>y <code>cliclick</code> se probó y funcionó como se presenta en <strong>MacOS Catalina </strong>.

Nota: No estoy afiliado al desarrollador de <code>cliclick</code> , sólo un usuario satisfecho con el producto.

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