4 votos

¿Cómo rehacer un comando de "Eventos del sistema" en AppleScript, por lo que funciona automáticamente en todas las aplicaciones?

Con el siguiente AppleScript código dentro de una "Ejecutar AppleScript" acción en un Servicio de:

tell application "System Events"
    set theSBounds to {{572, 64}, {332, 515}}
    set position of window "Google Hangouts - myemailaddress@gmail.com" of application process "Google Chrome" to item 1 of theSBounds
    set size of window "Google Hangouts - myemailaddress@gmail.com" of application process "Google Chrome" to item 2 of theSBounds
end tell

el Servicio sólo funciona si la aplicación desde la que ese Servicio se ha llamado ha sido añadido a la lista de solicitudes en virtud de "Permitir que las aplicaciones siguientes para el control de su ordenador." Esta lista se encuentra en Preferencias del Sistema → Seguridad Y Privacidad → Accesibilidad.

Es posible modificar el archivo AppleScript código de alguna manera, de modo que la adición de cada aplicación en un equipo de la lista no es necesario? O, por lo que sólo hay que añadir un elemento a la lista, frente a cada aplicación en un equipo?

Pensé que algo como esto podría funcionar:

do shell script "osascript -e 'tell application \"System Events\"' -e 'set theSBounds to {{572, 64}, {332, 515}}' -e 'set position of window \"Google Hangouts - myemailaddress@gmail.com\" of application process \"Google Chrome\" to item 1 of theSBounds' -e 'set size of window \"Google Hangouts - myemailaddress@gmail.com\" of application process \"Google Chrome\" to item 2 of theSBounds' -e 'end tell'" with administrator privileges

pero este código también se requiere que la aplicación desde la que se ejecute el Servicio se agrega a la Accesibilidad de la lista.

Nota: sólo quiero ejecutar AppleScript como un Servicio, y no en un Automator creado la Aplicación, debido a que el código recibe el texto seleccionado como entrada (todo el sistema).

3voto

rubik's sphere Puntos 31

He encontrado una buena solución (es decir, la solución).

Insertar el Sistema de "Eventos" bloque de código en "Ejecutar AppleScript" acción y guardar como su propio archivo de la aplicación en Automator. Nota: El archivo de la extensión de este código debe ser .aplicación en orden para que esto funcione (más sobre esto en un momento).

Vaya a Preferencias del Sistema → Seguridad Y Privacidad → pestaña de Privacidad → Accesibilidad. Agregar marca de verificación y la aplicación recién creada a la lista de aplicaciones permitidas para el control de su ordenador.

Ejecutar la nueva aplicación desde dentro de su Servicio. Para ello, usted puede agregar la siguiente línea a su archivo AppleScript código:

do shell script "osascript -e 'tell application \"Application Name\" to activate'"

(Yo habitualmente uso osascript a activate aplicaciones cuando se utiliza un "Ejecutar AppleScript" acción en un Servicio, ya que esto evita un error con los Servicios que he descubierto.)

Su Servicio ahora debería funcionar a la perfección en cada aplicación en su equipo, a pesar del hecho de que sólo una aplicación (la que contiene el Sistema de "Eventos" código) explícitamente ha sido otorgado el poder para controlar el equipo.

El archivo debe ser guardado como un .archivo de aplicación, y no como una .scpt o .archivo applescript. Esto es debido a que no es posible agregar .scpt o .applescript archivos a la lista de aplicaciones permitidas para el control de su ordenador; sólo la verdad .archivos de la aplicación se puede seleccionar en el cuadro de diálogo.

Tenga en cuenta que el .archivo de aplicación no tiene que ser creado en Automator. Si va a crear .archivo de aplicación en el Editor de secuencias de Comandos.aplicación y sigue los otros pasos, la .archivo de aplicación funcionará de la misma manera.

Hay una diferencia, sin embargo. Cuando el .la aplicación se crea el archivo en Automator, uno puede utilizar cualquiera de los activate o launch a ejecutar la aplicación en su Servicio. Pero, cuando el .la aplicación se crea el archivo en el Editor de secuencias de Comandos, sólo se puede utilizar activate a ejecutar la aplicación; launch resultará en que no pasa nada.

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