AppleScript: Verwenden Sie Lion Fullscreen

8

In der offiziellen Apple-Dokumentation scheint es dazu keine Informationen zu geben. Wie verwenden Sie eine Anwendung, die Lions neue Vollbildfunktion über AppleScript verwendet?

    
Abdulla 21.11.2011, 16:59
quelle

4 Antworten

4

Wenn Sie zwischen Vollbildmodus und Normalmodus wechseln möchten, verwenden Sie diesen Hinweis

%Vor%     
Prashant Bhate 21.11.2011, 22:28
quelle
12

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:

  • Geben Sie an, ob das aktive Fenster in der aktiven (vordersten) Anwendung im Vollbildmodus ist.
  • Schalten Sie den Vollbildstatus des aktiven Fensters in der aktiven Anwendung um.
  • Geben Sie an, ob eine spezifizierbare Anwendung über Vollbildfenster verfügt.
  • Ein Skript für das allgemeine Vollbild-Management, das auf eine spezifizierbare Anwendung abzielen kann; das ist viel komplexer, als es sein sollte.

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.

Gibt an, ob das aktive Fenster in der aktiven (vordersten) Anwendung im Vollbildmodus ist

%Vor%

Schaltet den Vollbildstatus des aktiven Fensters in der aktiven Anwendung um

%Vor%

Gibt an, ob eine spezifizierbare Anwendung über Vollbildfenster verfügt

** Hinweis: Diese Subroutine funktioniert nur mit AppleScript-fähigen Anwendungen. **

%Vor%

Mehrzweck-Vollbild-Verwaltungsskript, das auf eine spezifizierbare Anwendung abzielen kann

** Hinweis: Diese Subroutine funktioniert nur mit AppleScript-fähigen Anwendungen. **

%Vor%

Weitere Hintergrundinformationen:

  • 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.

mklement0 12.09.2012 20:10
quelle
5

Sie können den Vollbildmodus in Lion erkennen:

%Vor%

(aus Ссылка ).

    
gadgetmo 26.11.2011 10:12
quelle
0

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.)

    
George WS 14.06.2017 22:29
quelle