Applescript - повторять до тех пор, пока статический текст не станет равным значению - PullRequest
0 голосов
/ 01 октября 2019

Я буквально только начал использовать Applescript сегодня, пытаясь написать макросы для используемой мной аудиопрограммы, поэтому я действительно многого не знаю и спотыкаюсь об этом.

Все, что мне нужно сделать, это контролировать, когдаопределенное окно открыто в программном обеспечении, и, самое главное, когда оно закрывается.

Когда я экспортирую файл из своего программного обеспечения, появляется окно изображение окна Окно не имеет идентификатора, другогочем статический текст "Bouncing ..." На скриншоте есть кнопка отмены, но это не относится к каждому экземпляру окна (зависит от того, какие параметры выбраны), так что это единственное, с чем мне нужно работать.

Пока у меня есть это:

tell application "System Events"
    tell process "Pro Tools" to set myvalue to value of every static text of front window
    repeat with i from 1 to count of myvalue
        if (item i of myvalue = "Bouncing...") then repeat
        end repeat

        delay 1
    end repeat
end tell

Тестирование с помощью всплывающего окна вместо повторения, заявляющего, что статический текст работает. Так что я на полпути.

Все, что мне нужно сделать, это повторять весь этот процесс снова и снова, пока окно не исчезнет. Очевидно, что когда «myvalue» равно «Bouncing ...», мне нужно вернуться к началу, снова собрать статические текстовые значения из окна и затем выходить из цикла только тогда, когда статическое текстовое значение «Bouncing ...» не 'не существует.

В настоящее время кажется, что выход из цикла происходит до закрытия окна

Спасибо за любую помощь, оказанную здесь, я потратил часы на это, и я просто недостаточно осведомлен, чтобыпонять это.

1 Ответ

0 голосов
/ 02 октября 2019

Нашел другой способ обойти это. Кажется, он по умолчанию "окно 1":

try
    tell application "System Events"
        repeat while (value of first static text of window 1 of application process "Pro Tools" = "Bouncing...")
            delay 1
        end repeat

    end tell
end try
...