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 se ejecuta la línea tell application "Finder" to activate desktop , activará esa ventana, en lugar del escritorio.

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

(Haciendo esto en El Capitán)

    
pregunta CrazyJony 11.12.2015 - 03:19

2 respuestas

0

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

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" (que significa "ventana" activa del buscador).
Si NO es así, presiona "cmd <" (en un teclado alemán), que es idéntico al buscador:
Menú < "Windows" / "Ventana siguiente" > elemento del menú.
Verá algunas o todas sus ventanas traídas al frente UNA VEZ .

(Intenté todo tipo de "clics", "selecciones" y similares antes de que no haya resultado ...)

    
respondido por el clemsam lang 22.12.2015 - 14:29
0

Podrías decirle a Finder que minimice todas sus ventanas de la siguiente manera:

tell every window
    set collapsed to true
end tell

Luego, activate desktop y lo habitual.

    
respondido por el user14492 11.12.2015 - 21:42

Lea otras preguntas en las etiquetas