Как получить список окон приложений только с текущего рабочего стола с applecript?

1

Нужно сделать что-то вроде следующего

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

Abowe работает нормально, и открывается ВСЕ открытое окно Safari.

Как получить окна только с рабочего стола? Так что нужно несколько изменить линию

    set AllWindows to every window

что-то вроде

    set AllWindows to ONLY FROM THE CURRENT desktop windows :)

Любая идея?

jm666
источник
Что вы подразумеваете под текущим пространством ?
Роб
@Robuust space = рабочий стол. У меня 9. Текущий = активный. (На самом деле отображается). Термин «пространство» происходит от старого приложения, когда «несколько рабочих столов» не встроены в OS X ... Отредактировал вопрос. Смотрите тег "пробелы".
jm666

Ответы:

1

Системные события включают только окна в текущем пространстве / рабочем столе:

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

Я не знаю, как преобразовать объект окна системных событий в объект окна Safari, кроме таких хаков, как этот:

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"не соответствует tell application "Safari" to id of window 1.

LRI
источник