¿Cómo obtener una lista de ventanas de aplicaciones solo desde el escritorio actual con applecript?

1

Necesito hacer algo como lo siguiente

tell application "Safari"
activate
    set AllWindows to every window
    set WinCount to number of items in AllWindows

    repeat with i from 1 to WinCount
        set this_window to item i of AllWindows
        -- do something with the this_window
    end repeat
end tell

El siguiente trabajo funciona bien, y al abrir TODO se abre la ventana de Safari.

¿Cómo puedo obtener las ventanas solo desde el escritorio actual? Así que necesito cambiar un poco la línea

    set AllWindows to every window

a algo como

    set AllWindows to ONLY FROM THE CURRENT desktop windows :)

¿Alguna idea?

    
pregunta jm666 21.03.2014 - 16:10

1 respuesta

1

Los eventos del sistema solo incluyen ventanas en el espacio / escritorio actual:

tell application "System Events" to windows of process "Safari"

Sin embargo, no conozco ninguna forma de convertir un objeto de la ventana de Eventos del sistema en un objeto de la ventana de Safari, aparte de hacks como este:

tell application "System Events" to tell window 1 of process "Safari"
    set {x, y} to position
    set {w, h} to size
    set b to {x, y, x + w, y + h}
    set t to title
end tell
tell application "Safari"
    set found to missing value
    repeat with w in windows
        if bounds of w is b and name of w is t then
            set found to w
            exit repeat
        end if
    end repeat
    found
end tell

tell application "System Events" to value of attribute "AXIdentifier" of window 1 of process "Safari" no corresponde a tell application "Safari" to id of window 1 .

    
respondido por el user495470 22.03.2014 - 22:57

Lea otras preguntas en las etiquetas