Wenn Sie zwischen Vollbildmodus und Normalmodus wechseln möchten, verwenden Sie diesen Hinweis
%Vor%Es ist nicht nur nicht dokumentiert, sondern das Verhalten ist geradezu byzantinisch. Folgendes gilt für Mountain Lion (ab 10.8.1), aber ich vermute, dass es für Lion gleichermaßen gilt.
Kurz gesagt:
Sie können nur den Status eines Vollbildfensters prüfen, wenn es das aktive Fenster der vordersten Anwendung ist. Daher müssen Sie zuerst aktivieren jedes Fenster, das Sie untersuchen möchten.
Wenn sich dieses Fenster tatsächlich im Vollbildmodus befindet, aber nicht im aktiven, dauert die Aktivierung etwas länger - die Dauer der Übergangsanimation - nur nach , auf das das Programm programmatisch zugreifen kann.
Solange Sie nur am aktiven (Front-) Fenster der aktiven (vordersten) Anwendung interessiert sind, ist alles gut; Sonst hast du Schmerzen.
Nachfolgend finden Sie Skripts, die Folgendes ausführen:
Endlich gibt es am Ende noch ein paar zusätzliche Hintergrundinformationen - viel Spaß.
Beachten Sie, dass die folgenden Skripte Zugriff für die Aktivierung von Hilfsgeräten erfordern über System Preferences
& gt; Accessibility
oder über folgenden Befehl: tell application "System Events" to set UI elements enabled to true
; Administratorrechte sind erforderlich.
** Hinweis: Diese Subroutine funktioniert nur mit AppleScript-fähigen Anwendungen. **
%Vor%** Hinweis: Diese Subroutine funktioniert nur mit AppleScript-fähigen Anwendungen. **
%Vor% Die Anwendung Windows-Sammlung - die im Kontext eines tell application ...
-Blocks zugreifbare - gibt immer die Gesamtzahl der Fenster an, unabhängig davon, ob sie sich im Vollbildmodus befinden oder nicht. Leider können solche Fensterobjekte NICHT zum Bestimmen oder Einstellen des Vollbildmodus verwendet werden - dies muss über die Fensterobjekte erfolgen, die von process -Objekten im Kontext der Anwendung "System Events" gemeldet werden, da sie nur die relevantes Attribut "AXFullScreen". Es ist wichtig zu beachten, dass die Anwendungsfenster-Sammlung - im Gegensatz zur Prozessfenster-Sammlung - nur mit Anwendungen funktioniert, die AppleScript-Unterstützung haben .
Leider verhält sich die Fenstersammlung, die von process -Objekten im Kontext der Anwendung "System Events" verfügbar gemacht wird, seltsam:
○ Wenn eine Anwendung nicht im Vordergrund oder eines der Nicht-Vollbildfenster aktiv ist, enthält sie nur die Nicht-Vollbildfenster
○ Wenn dagegen eine Anwendung ganz vorne liegt und eines ihrer Vollbildfenster aktiv ist, enthält sie nur dieses einzige Vollbildfenster , auch wenn andere Fenster (unabhängig davon, ob sie Vollbild oder Vollbild sind) nicht) existieren.
○ Die Korrelation von Anwendungs- und Prozessfenstern ist schwierig, da nur Anwendungsfenster die Eigenschaft 'id' haben; die einzige Eigenschaft, die die zwei Typen direkt teilen, ist "Name" (d. h. der Fenstertitel); beide Typen enthalten auch Größeninformationen, jedoch nicht im selben Format.
○ (Prozessfenster enthalten auch keine versteckten Fenster, wohingegen die Anwendungsfenster-Sammlung mit whose visible is true
gefiltert werden muss, um versteckte Fenster auszuschließen.)
Wenn Sie also alle Fenster einer bestimmten Anwendung verarbeiten wollen, lautet der grundlegende Ansatz wie folgt:
○ Aktivieren Sie die Anwendung.
○ Schleife über alle (sichtbaren) Anwendungen Fensterobjekte.
○ Machen Sie jedes Fenster zum Frontfenster.
○ Warten Sie, bis das entsprechende -Prozess -Fenster programmgesteuert erreichbar ist; Dies dauert eine ganze Weile, wenn die Fensteraktivierung einen Vollbildübergang beinhaltet.
○ Überprüfen oder ändern Sie den Vollbildstatus des Prozessfensters ( value of attribute "AXFullScreen"
).
Wenn eine Anwendung nur Vollbild -Fenster hat, kann AppleScript verwirrt werden über was das Frontfenster ist: Was es meldet, wie das Frontfenster nicht sein darf der, der aktiv ist, wenn Sie die Anwendung mit AppleScript oder Cmd-Tab aktivieren.
Wenn Sie activate
zum Aktivieren einer Anwendung verwenden, wird ein Nicht-Vollbild-Fenster der Zielanwendung aktiviert, falls vorhanden, auch wenn zuvor ein Vollbildfenster dieser Anwendung aktiv war.Sie können jedoch das index of
-Fullscreen-Fenster auf 1 setzen, um es zu aktivieren.
Eine andere Möglichkeit, dies unter der Annahme zu tun, dass Sie die Standardtastaturverknüpfung für "Vollbildmodus" nicht geändert haben, besteht einfach darin, dass Systemereignisse diese Verknüpfung aufruft (^⌘F). Wie bei der wunderbar gründlichen Antwort von mklement0 muss dazu das entsprechende Fenster aktiviert werden.
Um beispielsweise den Vollbildmodus des vordersten Fensters in Safari umzuschalten, führen Sie:
%Vor%(Da es sich bei der Frage um Lion handelte: Ich betreibe macOS Sierra, aber wenn "Vollbildmodus" und "Vollbildmodus beenden" in Lion nicht als Menüoptionen verfügbar sind, würde dies in Lion funktionieren Wenn die Menüoptionen in Lion verfügbar sind, aber nicht mit einer Tastenkombination verknüpft sind, sollte es möglich sein, eine Verknüpfung unter den Tastatureinstellungen in den Systemeinstellungen hinzuzufügen.)
Tags und Links osx-lion applescript fullscreen