Rileva quando un'applicazione va a schermo intero?

1

Vorrei rilevare quell'evento da un oggetto Applescript. Ho trovato l'app della riga di comando lsappinfo , che ha un comando listen che sembra riempire esattamente la mia esigenza, ma la visualizzazione a schermo intero appare nell'output. Ecco cosa ho provato. Per prima cosa ho eseguito il terminale

lsappinfo  listen +all forever

Poi ho fatto clic su una finestra di Safari, quindi ho fatto clic sul pulsante verde per renderlo a schermo intero, quindi sono uscito a schermo intero e sono tornato al terminale per vedere l'output. L'ho fatto di nuovo, ma senza andare a schermo intero, semplicemente facendo clic su una finestra di Safari e quindi facendo nuovamente clic sulla finestra di Terminale. In entrambi i casi, la sequenza di eventi è

  1. FrontApplicationPresentationModeChanged, ricevuto da Safari
  2. PresentationModeChangedBecauseFrontApplicationChanged, ricevuto da Safari
  3. BecameFrontmost, ricevuto da Safari
  4. LostFrontmost, ricevuto dal Terminale
  5. MenuBarAcquirato, ricevuto da Safari
  6. MenuBarLost, ricevuto dal Terminale
  7. FrontApplicationPresentationModeChanged, ricevuto dal Terminale
  8. PresentationModeChangedBecauseFrontApplicationChanged, ricevuto dal Terminale
  9. BecameFrontmost, ricevuto dal Terminale
  10. etc

L'"evento a schermo intero" dovrebbe apparire tra 6 e 7 in questa lista, ma è assente.

Questo è su MacOS 10.12.6. Mi sembra un insetto. Qualcuno sa se funziona su altre versioni di MacOS? C'è un altro modo per raggiungere il mio obiettivo?

    
posta frapadingue 04.12.2017 - 11:41
fonte

1 risposta

-1

Non sono sicuro che questo risolva il problema o meno, ma il modo più semplice per rilevare se una finestra è a schermo intero sarebbe confrontare le dimensioni della finestra con le dimensioni della finestra della "finestra del desktop". Vedi sotto:

tell application "Finder" to set screenSize to bounds of window of desktop

tell application "Safari" to set windowBounds to bounds of front window

if windowBounds is equal to screenSize then
    return "It's Full Screen"
else
    return "Not Full Screen"
end if
    
risposta data 30.12.2017 - 09:24
fonte

Leggi altre domande sui tag