Applescript — как мне повлиять на «главное» окно приложения, если оно не находится спереди?

#applescript

#эпплскрипт

Вопрос:

Логика имеет «главное окно», которое не всегда технически находится спереди (могут быть меньшие плавающие окна и т.д.). Так что я не могу этого сделать:

 tell application "System Events" to tell process "Logic Pro"
    get value of UI element [xyz] of the front window
end tell
 

Главное окно не имеет последовательного имени (изменяется в зависимости от имени сохраненного проекта), поэтому я не могу этого сделать:

 tell application "System Events" to tell process "Logic Pro"
    get value of UI element [xyz] of window "my project"
end tell
 

Есть ли какой-то способ последовательно ссылаться на «главное окно»?

Ответ №1:

Есть как минимум два способа:

  1. Проверьте, является ли окно главным окном
     tell application "System Events" to tell process "Logic Pro X"
        tell (first window whose value of attribute "AXMain" is true)
            -- do something
        end tell
    end tell
     
  2. Проверьте, является ли окно окном документа
     tell application "System Events" to tell process "Logic Pro X"
        tell (first window whose value of attribute "AXDocument" starts with "file://")
            -- do something
        end tell
    end tell