Jak mogę ustawić okno na pierwszym planie, nie ustawiając go za pomocą Applescript w OS X 10.8

9

Chcę przesunąć okno (na przykład QuickTime) na wierzch, bez ustawiania ostrości . Mogę to zrobić w OS X 10.7 za pomocą następującego kodu w Applescript.

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

To jest odpowiednik Pythona.

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

Ale to nie działa po aktualizacji do OS X 10.8. Czy jest jakiś sposób, aby to zadziałało?

Yuxiao Zeng
źródło

Odpowiedzi:

12

Jeśli aplikacja ma otwarte okna, powinno to podnieść je ponad okna innych aplikacji, ale nie powinny przekraczać tych z bieżącej aplikacji.

tell application "System Events"
    perform action "AXRaise" of window 1 of process "QuickTime Player"
end tell
Lri
źródło
To jest to czego chce. Dzięki. A tak przy okazji, gdzie mogę znaleźć dokumentację działań?
Yuxiao Zeng
1
Dostępność Role i atrybuty Odniesienia: Działania . Możesz zobaczyć, jakie akcje interfejsu użytkownika obsługują za pomocą actions oflub za pomocą Inspektora dostępności.
Lri
1
AXRaise nie jest dozwolony w OS X 10.10 (Yosemite) i 10.11 (El-Capitan), chyba że dodałeś aplikację wywołującą (tę, która wykonuje AppleScript) do sekcji „Dostępność” karty „Prywatność” w zakładce „Bezpieczeństwo i prywatność” „Panel Preferencje systemowe. Oznacza to, że po raz pierwszy spróbujesz to zrobić - zostanie wyświetlony systemowy interfejs użytkownika, który sugeruje przejście do preferencji. Nie mogę go użyć z powodu objazdu doświadczenia użytkownika. Czy istnieje inny sposób na podniesienie okna bez korzystania z AX (API dostępu)?
Motti Shneor
-1

Więc z tego, co zbieram z twojego postu, próbujesz wyświetlić aplikację za pomocą Applescript? Jeśli tak, kod tego w Mountain Lion jest w rzeczywistości dość prosty! Oto on:

tell application "Quicktime Player"
activate
end tell

Mam nadzieję, że to zadziała! Jeśli nie tego chciałeś, daj mi znać, a ja go zaktualizuję. :)

Benson475
źródło
2
Cóż, aktywacja skupi Quicktime, więc nie tego chcę. Mam na myśli, że jeśli otworzysz aplikację Applescript, wpisz kod i uruchom go, fokus zostanie przeniesiony do Quicktime. W rezultacie nie można wpisać żadnego kodu przed kliknięciem na przykład okna Applescript.
Yuxiao Zeng