Come posso portare una finestra in primo piano senza focalizzarla usando Applescript in OS X 10.8


9

Voglio portare una finestra (QuickTime ad esempio) in primo piano, senza focalizzarla . Posso farlo in OS X 10.7 usando il seguente codice in Applescript.

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

Questo è un equivalente di Python.

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

Ma non funziona dopo l'aggiornamento a OS X 10.8. C'è un modo per farlo funzionare?

Risposte:


12

Se un'applicazione ha finestre aperte, ciò dovrebbe sollevarle sopra le finestre di altre applicazioni, ma mantenerle al di sotto di quelle dell'applicazione corrente.

tell application "System Events"
    perform action "AXRaise" of window 1 of process "QuickTime Player"
end tell

È quello che voglio. Grazie. A proposito, dove posso trovare la documentazione delle azioni?
Yuxiao Zeng,

1
Riferimenti ai ruoli e agli attributi di accessibilità: azioni . Puoi vedere quali azioni supportano gli elementi dell'interfaccia utente con actions ofo utilizzando Accessibilità Inspector.
Lri,

1
AXRaise non è consentito in OS X 10.10 (Yosemite) e 10.11 (El-Capitan) a meno che non sia stata aggiunta l'applicazione chiamante (quella che esegue AppleScript) alla sezione "Accessibilità" della scheda "Privacy" della scheda "Sicurezza e privacy" "Pannello Preferenze di Sistema. Ciò significa che la prima volta che proverai a farlo, ti verrà presentata l'interfaccia utente del sistema che ti suggerirà di portarti alle preferenze. Non posso usarlo a causa della deviazione nell'esperienza utente. C'è un altro modo per alzare la finestra senza usare AX (API di accessibilità) ???
Motti Shneor,

-1

Quindi, da quello che raccolgo dal tuo post, stai provando a visualizzare un'applicazione usando Applescript? In tal caso, il codice per questo in Mountain Lion è in realtà abbastanza semplice! Ecco qui:

tell application "Quicktime Player"
activate
end tell

Spero che funzioni! Se non è quello che volevi, fammi sapere e lo aggiornerò per te. :)


2
Bene, attivare focalizzerà Quicktime, quindi non è quello che voglio. Voglio dire, se apri l'applicazione Applescript, digita il tuo codice ed eseguilo, lo stato attivo della finestra verrà spostato su Quicktime. Di conseguenza, non è possibile digitare alcun codice prima di fare clic sulla finestra Applescript, ad esempio.
Yuxiao Zeng,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.