2 votos

Ahorro de Applescript elimina caracteres

He escrito un Applescript para el lanzamiento y la posición de dos instancias de una Aplicación. La secuencia de comandos se ejecuta perfectamente bien en el editor de utilizar este código:

tell application "App" to activate
tell application "System Events" to tell application process "App"
    set position of window 1 to {8, 22}
end tell
tell application "App 2" to activate
tell application "System Events" to tell application process "App 2"
    set position of window 1 to {914, 22}
end tell

No es una secuencias de comandos de la aplicación, así que estoy usando el Sistema de eventos (también he cambiado el CFBundleName de la segunda aplicación, de manera que incluya el 2 diferenciar los procesos). Todo esto funciona bien en el editor cuando lo ejecuto. Sin embargo, al guardar la secuencia de comandos como una Aplicación coherente de él, se quita el "2" de "App 2" cada vez que me guarde la aplicación, aunque se compila bien. ¿Alguien tiene alguna idea de por qué esto está sucediendo, soy bastante nuevo en Applescript.

1voto

Johnsyweb Puntos 45395

Puede evitar el problema en la compilación eligiendo dinámicamente las aplicaciones en los eventos del sistema.

tell application "System Events"
    set App1 to (first process whose name is "App")
    tell App1
        set frontmost to true
        set position of window 1 to {8, 22}
    end tell
end tell

Luego hacer lo mismo de App2.

0voto

konqui Puntos 531

El principal Problema es que Apple Editor de secuencias de Comandos no conozco a ninguno de los Nombres de "App" ni "App 2" de modo que si se ejecuta la secuencia de comandos se le pide que seleccione donde la Aplicación se almacenan y, a continuación, reemplaza "App" con el Nombre Real de la Aplicación. Esto también ocurre para "App 2".

Así que si usted dos veces, seleccione la misma Aplicación (que es lo que estamos tratando de hacer, de acuerdo a sus menciones) es dos veces quitar los Nombres de "Aplicación" y "App 2" con el mismo Nombre de la Aplicación Real.

O si el uso de la Aplicación como una Abreviación para el Nombre Real de la Aplicación, se sabe que la Aplicación en la Primera Declaración, pero no en el Segundo, así que Pregunte solo una vez y basta con sustituir el "anexo 2".

Para hacer lo que quieres te recomiendo cambiar la secuencia de Comandos para algo como esto y tratar de hacerlo de esa manera (no probado):

tell application "<Name of Application>" to activate --open first Window
tell application "<Name of Application>" to activate --open second Window

tell application "System Events" to tell application process "<Name of Application>"
    set position of window 1 to {8, 22}
    set position of window 2 to {914, 22}
end tell

si esto no funciona, tal vez usted puede adoptar esta secuencia de Comandos que se mueve dos abrir el Buscador de Windows al Lado del otro.

property monitor_width : 980
property monitor_height : 768

set the startup_disk to (path to startup disk)

tell application "Finder" activate
    set visible of (every process whose visible is true and frontmost is false) to false
    -- BOTTOM WINDOW
    set this_window to make new Finder window
    set the target of this_window to the startup_disk
    set the bounds of this_window to {0, (monitor_height * 0.55) div 1, monitor_width, monitor_height}
    set the current view of this_window to column view
    -- TOP WINDOW
    set this_window to make new Finder window
    set the target of this_window to the startup_disk
    set the bounds of this_window to {0, (monitor_height * 0.06) div 1, monitor_width, (monitor_height * 0.53) div 1}
    set the current view of this_window to column view
end tell

Fuente: http://hints.macworld.com/article.php?story=20011127022706921

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