¿Cómo puedo poner una ventana en primer plano sin enfocarla usando Applescript en OS X 10.8?

9

Quiero llevar una ventana (QuickTime, por ejemplo) al primer plano, sin enfocarla . Puedo hacerlo en OS X 10.7 usando el siguiente código en Applescript.

tell application "System Events"
    set visible of process "QuickTime Player" to true
end tell

Este es un equivalente de Python.

from ScriptingBridge import *
process = SBApplication.applicationWithBundleIdentifier_('com.apple.systemevents').processes().objectWithName_('QuickTime Player')
process.setVisible_(True)

Pero no funciona después de actualizar a OS X 10.8. ¿Hay alguna manera de hacer que funcione?

Yuxiao Zeng
fuente

Respuestas:

12

Si una aplicación tiene ventanas abiertas, esto debería elevarlas por encima de las ventanas de otras aplicaciones, pero mantenerlas por debajo de las de la aplicación actual.

tell application "System Events"
    perform action "AXRaise" of window 1 of process "QuickTime Player"
end tell
Lri
fuente
Eso es lo que quiero. Gracias. Por cierto, ¿dónde puedo encontrar la documentación de las acciones?
Yuxiao Zeng
1
Referencia de Roles y Atributos de Accesibilidad: Acciones . Puede ver qué acciones soportan los elementos de la interfaz de usuario con actions ofo mediante el Inspector de accesibilidad.
Lri
1
AXRaise no está permitido en OS X 10.10 (Yosemite) y 10.11 (El-Capitan) a menos que haya agregado la aplicación de llamada (la que ejecuta AppleScript) a la sección "Accesibilidad" de la pestaña "Privacidad" de la "Seguridad y privacidad "Panel de preferencias del sistema. Esto significa que la primera vez que intente hacerlo, se le presentará una interfaz de usuario del sistema que le sugerirá que lo lleve a las preferencias. No puedo usarlo debido al desvío en la experiencia del usuario. ¿Hay otra forma de elevar la ventana sin usar AX (API de accesibilidad) ???
Motti Shneor
-1

Entonces, de lo que deduzco de su publicación, ¿está tratando de mostrar una aplicación usando Applescript? Si es así, ¡el código para esto en Mountain Lion es realmente bastante simple! Aquí está:

tell application "Quicktime Player"
activate
end tell

¡Espero que esto funcione! Si no es lo que quería, avíseme y lo actualizaré por usted. :)

Benson475
fuente
2
Bueno, activar enfocará Quicktime, por lo que no es lo que quiero. Es decir, si abre la aplicación Applescript, escribe su código y lo ejecuta, el foco de la ventana se moverá a Quicktime. Como resultado, no puede escribir ningún código antes de hacer clic en la ventana Applescript, por ejemplo.
Yuxiao Zeng