Yo respondí una pregunta similar en Stack Overflow, en la época en que todavía trabajaba principalmente en High Sierra. Probándolo hoy, todavía funciona en Catalina.
Esta es la parte más destacada de la respuesta:
tell application id "com.apple.systemevents" to set the value of ¬
attribute "AXMinimized" of every window of every process ¬
to true
Desgraciadamente, no va a minimizarlas todas simultáneamente, lo que sería encantador. Los hace uno a uno, sin necesidad de empezar por el que tienes delante. Por lo tanto, si tienes muchas ventanas abiertas, al principio puede parecer que no está haciendo nada, pero en realidad está minimizando las ventanas oscurecidas por la que está más adelante), y se minimizarán a su vez, lo que es divertido de ver la primera vez, pero molesto cada vez que quieres que se haga ahora.
Otro punto que me ha recordado amablemente @user3439894 es que Eventos del sistema sólo conoce los objetos que existen en el escritorio actualmente activo. Por lo tanto, este método no será para minimizar las ventanas que están en otros escritorios/espacios están fuera de la pantalla.
Sin embargo, si no está buscando específicamente minimizar Windows, sino más bien sacarlo de la vista, entonces puede elegir ocultar los procesos en su lugar:
tell application id "com.apple.systemevents" to ¬
set visible of every process to false
La mayor molestia aquí es que Buscador sigue siendo visible, y tendrá que tener una línea extra de código después de deshacerse de su Windows, que sugiero debe ser:
tell application id "com.apple.Finder" to set ¬
miniaturized of every window to true
Los beneficios, sin embargo, son que todos los Windows de todos los escritorios/pantallas desaparecerán, no sólo los de su escritorio actual; y esto tiene lugar muy rápidamente, casi instantáneamente (aparte de Buscador ). Activar la aplicación haciendo clic en su icono del dock, por ejemplo, hace que el proceso sea visible de nuevo; normalmente, esto significa que la aplicación y todas sus ventanas que estaban visibles anteriormente volverán a aparecer en masa. Que esto sea positivo o negativo dependerá de tus necesidades.
La razón por la que tu código no funciona es porque miniaturised
no es una propiedad del window
perteneciente al conjunto de procesos de Eventos del sistema". Diccionario AppleScript. Es es una propiedad de window
objetos que pertenecen a la estándar suite de cualquier scriptable el diccionario AppleScript de la aplicación (incluyendo SystemEvents aunque no tiene Windows propio); a pesar de compartir un nombre común, estos dos window
Los objetos de clase son objetos distintos y no relacionados en AppleScript.
0 votos
¿No quieres decir "minimizado"?
1 votos
@benwiggy No, la propiedad es:
miniaturized