¿Detectar cuando una aplicación pasa a pantalla completa?

1

Me gustaría detectar ese evento desde un Applescript. He encontrado la aplicación de línea de comandos lsappinfo , que tiene un comando listen que parece satisfacer exactamente mis necesidades, pero aparecer en pantalla completa aparece en la salida. Aquí es lo que he intentado. Primero corrí en la Terminal

lsappinfo  listen +all forever

Luego hice clic en una ventana de Safari, y luego en el botón verde para hacerla a pantalla completa, luego salí de pantalla completa y volví a la terminal para ver el resultado. Luego lo hice de nuevo, pero sin pasar a pantalla completa, simplemente haciendo clic en una ventana de Safari y luego haciendo clic en la ventana de la Terminal. En ambos casos, la secuencia de eventos es

  1. FrontApplicationPresentationModeChanged, recibido por Safari
  2. PresentationModeChangedBecauseFrontApplicationChanged, recibido por Safari
  3. BecameFrontmost, recibido por Safari
  4. LostFrontmost, recibido por Terminal
  5. Barra de menús adquirida por Safari
  6. MenuBarLost, recibido por Terminal
  7. FrontApplicationPresentationModeChanged, recibido por Terminal
  8. PresentationModeChangedBecauseFrontApplicationChanged, recibido por Terminal
  9. BecameFrontmost, recibido por Terminal
  10. etc

El "evento de pantalla completa" debería haber aparecido entre 6 y 7 en esta lista, ¡pero está ausente!

Esto está en MacOS 10.12.6. Se siente como un error para mí. ¿Alguien sabe si funciona en otras versiones de MacOS? ¿Hay alguna otra manera de lograr mi objetivo?

    
pregunta frapadingue 04.12.2017 - 11:41

1 respuesta

-1

No estoy seguro de si esto resuelve su problema o no, pero la forma más fácil de detectar si una ventana está en pantalla completa sería comparar sus dimensiones de ventana con las dimensiones de la ventana de su "escritorio". Vea abajo:

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
    
respondido por el Howard Designs 30.12.2017 - 09:24

Lea otras preguntas en las etiquetas