9 votos

Uso de AppleScript para abrir una aplicación sin que ésta robe el foco

Yo uso iA Writer lo suficiente como para que me gustaría que se abriera en pantalla completa al iniciar la sesión, pero desgraciadamente los desarrolladores desprecian las preferencias.

He decidido escribir un AppleScript que pueda añadir a la lista de inicio, pero no consigo que funcione correctamente. Me gustaría abrir un archivo específico utilizando iA Writer en el inicio de sesión, en el modo de pantalla completa de 10.8, pero sin cambiar el enfoque de mi escritorio normal, o al menos devolverme automáticamente a mi escritorio principal después del lanzamiento. EDIT: Aquí está mi código después de las ediciones sugeridas:

set front_application to front window
tell (application "iA Writer") to open (POSIX file "/PATH/TO/FILE.txt")
activate application "iA Writer"
#EDITED# tell application "System Events" to keystroke "f" using {command down, control down}
#ADDED# delay 1
#ADDED# tell application "System Events" to keystroke "1" using control down
end tell
activate front_application

Este código abre con éxito el archivo con iA Writer en pantalla completa, pero cambia al nuevo escritorio controlado por iA Writer, espera un momento y vuelve a mi escritorio principal.

Desde el cambio de OS X de espacios a escritorios, ni siquiera sé si es posible abrir una aplicación en Mountain/Lion a pantalla completa sin que robe el foco y obligue a cambiar de escritorio.

¡Muchas gracias a @Lauri Ranta por su ayuda hasta ahora!

Cualquier otra ayuda, en relación a evitar que iA Writer cambie de escritorio cuando se convierte en pantalla completa, sería muy apreciada. Gracias.

3voto

(He eliminado el script original, pero tampoco se me ha ocurrido nada mejor que esto).

set fw to front window
do shell script "open ~/Notes/todo.txt -Fa iA\\ Writer"
delay 0.1
tell application "System Events" to tell process "iA Writer"
    perform action "AXPress" of (button 1 where subrole is "AXFullScreenButton") of window 1
end tell
delay 1.5
activate fw

WriteRoom tiene una opción para abrir documentos en pantalla completa personalizada de Windows. Si está seleccionada, podrías usar algo como open file.txt -Fjga WriteRoom .

Si alguien más necesita abrir una aplicación en segundo plano, puede utilizar open -jg o launch . launch a veces abre una ventana visible si una aplicación no está abierta y open -jg si una aplicación está abierta pero no tiene Windows.

set b to "com.apple.TextEdit"
tell application "System Events"
    if bundle identifier of processes contains b then
        launch application id b
    else
        do shell script "open -jgb " & b
    end if
end tell

0 votos

No he habilitado la restauración de la aplicación Windows, ya que iA Writer es la única que me gustaría que tuviera este comportamiento. He habilitado el cambio de escritorio con [CONTROL] + teclas numéricas, y he añadido un retraso de 1 antes de enviar la pulsación de [CONTROL] + 1. Esto le da a iA Writer el tiempo suficiente para entrar en pantalla completa antes de cambiar. No es lo ideal, ya que esperaba poder conseguir que creara silenciosamente un segundo escritorio a pantalla completa de Lion sin cambiar automáticamente a él, pero creo que esto es lo mejor que va a ser por ahora. Usaré esto mientras busco una solución más elegante. Gracias.

3voto

James Puntos 106

En caso de que todavía tenga esta pregunta, utilice esto:

do shell script "open -ga 'iA Writer'"

open es un comando de Terminal que abre cosas. El -g abre la aplicación en segundo plano. La página web -a especifica una aplicación para abrir. Si no se proporcionan archivos, como aquí, open simplemente abrirá la aplicación sin archivos. Si quieres abrir un archivo en particular, puedes usar do shell script "open -ga 'iA Writer' myfile.txt"

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