1 votos

Acceso al menú de la aplicación con AppleScript

Estoy tratando de crear una tecla de acceso rápido global para una función de una aplicación mediante la construcción de un AppleScript en Automator.app y luego asignar una tecla de acceso rápido a la misma en el Servicio. Pero el AppleScript no funciona.

Específicamente, estoy tratando de hacer clic en el Establecer como proxy del sistema de ClashX.app.

enter image description here

y la ruta del artículo se muestra como abajo:

enter image description here

Mi AppleScript (lo siento IDK la sintaxis corr. destacar):

on run {input, parameters}

    tell application "ClashX" 
        tell process "ClashX"
            click menu item "Set as system proxy" of menu 1 of menu bar item 1 of menu bar 2
        end tell
    end tell
end run

y sale

Syntax Error: Expected end of line but found “"”.

Nota: el nombre del proceso parece ser "ClashX", pero soy novato en el sistema operativo, así que lo pongo aquí para que se sepa.

enter image description here

3voto

user3439894 Puntos 5883

Lo siguiente ejemplo AppleScript código es como se hace clic en ese objetivo elemento del menú :

tell application "System Events" to tell application process "ClashX"
    click menu bar item 1 of menu bar 2
    click menu item "Set as system proxy" of menu 1 of menu bar item 1 of menu bar 2
end tell

Sin embargo, a veces puede haber un retraso de varios segundos, o más, entre el primer haga clic en y el segundo haga clic en . Si lo encuentra así, pruebe lo siguiente ejemplo AppleScript código en su lugar:

ignoring application responses
    tell application "System Events"
        click menu bar item 1 of menu bar 2 of application process "ClashX"
    end tell
end ignoring
do shell script "killall 'System Events'"
ignoring application responses
    tell application "System Events"
        click menu item "Set as system proxy" of menu 1 of menu bar item 1 of menu bar 2 of application process "ClashX"
    end tell
end ignoring

Sin embargo, la asignación de un atajo de teclado global para un Automatizador Servicio/Acción Rápida puede ser difícil, en el mejor de los casos, porque encontrar un atajo de teclado que no pisará una ya asignada atajo de teclado en cada aplicación que podría desencadenar el Automatizador Servicio/Acción Rápida en no será fácil.

Además, cada aplicación se activa con éxito el atajo de teclado en tendrá que añadirse a Preferencias del sistema > Seguridad y privacidad > Privacidad > Accesibilidad y eso puede ser un dolor. Además, es posible que no quieras un aplicación tener privilegios de accesibilidad por razones de seguridad.

Para trabajar en torno a la privilegios de accesibilidad cuestiones en un caso de uso como este evito Automatizador y sólo utilizar un AppleScript script provocado por un atajo de teclado utilizando, por ejemplo FastScripts o un tipo similar de aplicación . Utilizando FastScripts Me parece que normalmente sólo tengo que darle privilegios de accesibilidad y no el aplicación que era más adelante cuando el atajo de teclado se activó.

Esto sigue dejando a la atajo de teclado global Sin embargo, es posible que tenga que utilizar cuatro o cinco llaves y el no modificador clave lo más probable es que tenga que ser un símbolo .


Nota: No estoy afiliado al desarrollador de FastScripts, sólo soy un usuario satisfecho del producto.

1voto

wch1zpink Puntos 11

El click no puede ser realizado por la aplicación ClashX. La página web click puede ser realizado por Eventos del Sistema. Pruebe esto en su lugar

tell application "System Events"
    click menu bar item 1 of menu bar 2 of application process "ClashX"
    click menu item "Set as system proxy" of menu 1 of menu bar item 1 ¬
        of menu bar 2 of application process "ClashX"
end tell

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