0 votos

Applescript para mover una ventana respecto a su posición actual

Quiero mover la posición de una ventana actual 5 píxeles hacia arriba, y 5 píxeles hacia la derecha.
He encontrado un código para mover una ventana a una posición fija.
He encontrado un código para obtener la posición de una ventana.
No sé cómo hacer que todo funcione.
Me imagino que se puede hacer esto, ya sea obteniendo la posición de la ventana en una variable y utilizando el resultado, o por un comando de posición relativa si hay uno.
Esto es lo que tengo hasta ahora, que funciona pero utiliza una posición fija solamente.

set delta to 5
set screenOneXOffset to -120
set screenOneYOffset to -1300
tell application "System Events"
    set position of first window of application process "Google Chrome" to ¬  
    {screenTwoXOffset + delta, screenOneYOffset + delta}
end tell

Cómo obtener la posición de una ventana (pero luego no se sabe cómo usarla):

tell application "System Events" to get properties of window 1 of application process "RStudio"

1voto

user3439894 Puntos 5883

Quiero mover la posición de una ventana actual 5 píxeles hacia arriba, y 5 píxeles hacia la derecha.

No tengo RStudio Sin embargo, aquí hay una ejemplo utilizando Google Chrome .

Ejemplo AppleScript código :

if not running of application "Google Chrome" then return
tell application "System Events"
    tell application process "Google Chrome"
        if not (exists window 1) then return
        set |position| to position of window 1
        set position of window 1 to ¬
            {((item 1 of |position|) + 5), ((item 2 of |position|) - 5)}
    end tell
end tell

Notas:

Dado que no has indicado cómo pretendes implementar el AppleScript código He incluido algunos tratamiento de errores que puede no ser necesario, por ejemplo if not running of application "Google Chrome" then return (O lo que sea aplicación para el que lo has fijado).

Una vez que un ventana había sido reposicionada hasta donde se encuentra el fondo de la barra de menús o en la parte superior de la pantalla si el barra de menús está oculto, ya no se moverá hacia arriba y sólo seguirá avanzando hacia el a la derecha .


Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y sin ningún tipo de inclusión <em>tratamiento de errores </em>no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al 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>. Además, el uso del <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

1voto

Tetsujin Puntos 23061

Conseguí lo mismo de una manera más torpe ;))
He utilizado Safari en lugar de Chrome o RStudio.

properties es una lista enorme, la mayoría de la cual no necesitas. Puedes simplemente conseguir position que es una simple lista de dos enteros {x, y}
Puede capturar cualquier resultado utilizando result
Mi lucha fue capturar ambas cosas, item 1 & item 2 de result que me ha fallado por completo, hasta que los he puesto en una variable Pos desde el que podría llamar. Estoy seguro de que alguien más podría averiguar cómo evitar eso en un solo paso.

tell application "System Events" to get position of window 1 ¬
    of application process "Safari"

set Pos to result
set posX to item 1 of Pos
set posY to item 2 of Pos
set delta to 5

tell application "System Events"
    set position of first window of application process "Safari" to ¬
        {(posX + delta), (posY - delta)}
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