Activar el escritorio usando Applescript

1

Básicamente, tengo este breve script para "limpiar" el escritorio. Este es el código:

tell application "System Events"
    tell application "Finder" to activate desktop
    delay 0.1
    tell process "Finder" to click menu item "Clean Up" of menu "View" of menu bar item "View" of front menu bar
end tell

El script funciona bien cuando no hay ventanas de Finder abiertas. Sin embargo, si hay al menos una ventana del Finder, cuando tell application "Finder" to activate desktopse ejecuta la línea , activará esa ventana, en lugar del escritorio.

¿Cuál es la razón para esto? ¿Y cuál es la forma correcta de enfocar el escritorio (el mismo efecto que hacer clic en la imagen del escritorio)?

(Haciendo esto en El Capitan)

CrazyJony
fuente

Respuestas:

0

Aquí hay un código que podría hacer funcionar en mi "Capitan":

tell application "System Events"
  tell application "Finder" to activate
  repeat while (value of attribute "AXfocused" of group 1 of scroll area of ¬
     process "Finder" is {false})
        keystroke "<" using command down
  end repeat
end tell

El bucle de repetición comprueba si el "grupo 1 del área de desplazamiento", que para mi sorpresa "es" Escritorio " , es" AXFocused "(es decir, la" ventana "activa del buscador).
Si NO es así, pulsa "cmd <" (en un teclado alemán), que es idéntico al elemento de
menú del buscador: <menú: "Windows" / "Ventana siguiente">.
Verá algunas o todas sus ventanas al frente UNA VEZ .

(Intenté todo tipo de "clics", "selecciones" y similares antes sin éxito ...)

clemsam lang
fuente
¡Gracias! Esta es la mejor solución que he visto hasta ahora. keystroke "<" using command downtell process "Finder" to click menu item "Cycle Through Windows" of menu "Window" of menu bar item "Window" of front menu bar
Ordené
0

Puedes decirle a Finder que minimice todas sus ventanas al:

tell every window
    set collapsed to true
end tell

Entonces activate desktopy lo de siempre.

usuario14492
fuente