1 votos

Activar el escritorio mediante Applescript

Básicamente, tengo este corto 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 ninguna ventana del Finder abierta. Sin embargo, si hay al menos una ventana del Finder, cuando la línea tell application "Finder" to activate desktop hará que esa ventana sea la activa, en lugar del escritorio.

¿A qué se debe? ¿Y cuál es la forma correcta de poner el foco en el escritorio (el mismo efecto que al hacer clic en la imagen del escritorio)?

(Haciendo esto en El Capitán)

0voto

Pejvan Puntos 376

Podrías decirle a Finder que minimice todo lo de Windows:

tell every window
    set collapsed to true
end tell

Entonces activate desktop y lo de siempre.

0voto

zonble Puntos 2925

Aquí hay algo de código que pude 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" (es decir, la "ventana" activa del buscador).
Si NO entonces, teclea "cmd <" (en un teclado alemán), que es idéntico al de finder:
<menu: "Windows" / "Ventana siguiente"> opción de menú.
Verá algunas o todas sus ventanas traído al frente UNA VEZ .

(He probado todo tipo de "clicks", "selects" y similares sin éxito...)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X