Applescript Tell aplicación de instancia específica

1

Si tengo 2 instancias de una aplicación ejecutándose, y quiero apuntar a una de ellas por su PID para ejecutar un fragmento de código de Apple, ¿cómo podría hacerlo? Tengo el PID de la instancia a la que quiero apuntar, pero si ejecuto lo siguiente, se ejecutará en la instancia que se inició la última vez.

tell application "/Applications/Adobe After Effects CC 2018/Adobe After Effects CC 2018.app" to DoScript "alert()"

¿Hay alguna manera de establecer una instancia como la "Delantera" para que sea dirigida, u obtener una aplicación por PID y decírselo específicamente?

¡Gracias!

    
pregunta Justin Taylor 19.10.2018 - 18:26

1 respuesta

0

Enfoque de Scripting Bridge

Con ScriptingBridge , cree una instancia SBApplication con applicationWithProcessIdentifier: y luego puede llamar a los métodos puente de AppleScript en el proceso de su elección.

  

Descripción general

     

Scripting Bridge es una tecnología que le permite controlar aplicaciones de terceros y de Apple con secuencias de comandos mediante la sintaxis estándar de Objective-C. Introducido en OS X versión 10.5 (Leopard), el marco de Scripting Bridge implementa dinámicamente un puente de Objective-C para aplicaciones compatibles con OSA, es decir, aplicaciones que tienen una interfaz de scripting (generalmente definida en un archivo sdef). Como parte de esta implementación, genera implementaciones de clase Objective-C de las clases que encuentra en la interfaz de scripting, incluidos objetos y métodos que representan propiedades, elementos, comandos, etc. Los objetos se derivan de clases definidas en el marco de Scripting Bridge.

Enfoque AppleScript

Una discusión sobre MacScripter sugiere este enfoque:

tell application "System Events"
    set myPID to unix id of process "TextEdit"
    -- ...for every matching process
    -- set myPIDs to the unix id of processes whose name is "TextEdit"

    set myProcess to first process whose unix id is myPID
    set the frontmost of myProcess to true
end tell

Vea también: Cómo ¿Activar la aplicación Mac OS X con un ID de proceso dado?

    
respondido por el Graham Miln 19.10.2018 - 19:12

Lea otras preguntas en las etiquetas