Wie kann ich ein Fenster ganz nach vorne bringen, ohne es mit Applescript in OS X 10.8 zu fokussieren?

9

Ich möchte ein Fenster (z. B. QuickTime) ganz nach vorne bringen, ohne es zu fokussieren . Ich kann es in OS X 10.7 mit dem folgenden Code in Applescript tun.

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

Dies ist ein Python-Äquivalent.

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

Aber es funktioniert nicht, nachdem ich auf OS X 10.8 aktualisiert habe. Gibt es eine Möglichkeit, es zum Laufen zu bringen?

Yuxiao Zeng
quelle

Antworten:

12

Wenn eine Anwendung geöffnete Fenster hat, sollten diese über den Fenstern anderer Anwendungen angehoben werden, aber unter denen der aktuellen Anwendung bleiben.

tell application "System Events"
    perform action "AXRaise" of window 1 of process "QuickTime Player"
end tell
Lri
quelle
Das ist, was ich will. Vielen Dank. Wo finde ich übrigens die Dokumentationen der Aktionen?
Yuxiao Zeng
1
Referenz zu Eingabehilfen und Attributen: Aktionen . Sie können sehen, welche Aktionen UI-Elemente mit actions ofoder mithilfe von Accessibility Inspector unterstützen.
Lri
1
AXRaise ist in OS X 10.10 (Yosemite) und 10.11 (El-Capitan) nur zulässig, wenn Sie die aufrufende Anwendung (die das AppleScript ausführt) zum Abschnitt "Barrierefreiheit" auf der Registerkarte "Datenschutz" der Registerkarte "Sicherheit und Datenschutz" hinzugefügt haben "Systemeinstellungen". Dies bedeutet, dass Sie beim ersten Versuch eine Systembenutzeroberfläche erhalten, die Ihnen vorschlägt, zu den Einstellungen zu gelangen. Ich kann es wegen des Umweges in der Benutzererfahrung nicht verwenden. Gibt es eine andere Möglichkeit, das Fenster ohne Verwendung von AX (Accessibility APIs) zu öffnen?
Motti Shneor
-1

Nach dem, was ich aus Ihrem Beitrag erfahre, versuchen Sie, eine Anwendung mit Applescript sichtbar zu machen? Wenn ja, ist der Code dafür in Mountain Lion eigentlich ziemlich einfach! Hier ist es:

tell application "Quicktime Player"
activate
end tell

Ich hoffe das funktioniert! Wenn es nicht das ist, was Sie wollten, lassen Sie es mich wissen und ich werde es für Sie aktualisieren. :) :)

Benson475
quelle
2
Nun, aktivieren wird Quicktime fokussieren, also ist es nicht das, was ich will. Ich meine, wenn Sie die Applescript-Anwendung öffnen, Ihren Code eingeben und ausführen, wird der Fensterfokus auf Quicktime verschoben. Daher können Sie keinen Code eingeben, bevor Sie beispielsweise auf das Applescript-Fenster klicken.
Yuxiao Zeng