Запрос состояния приложения в цикле предотвращает выход - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь запросить свойство playerState в iTunes, пока оно открыто.Вот начальная версия:

var itunes = Application('iTunes')

while (true) {
    if (itunes.running()) {
        console.log(itunes.playerState())
    }
    delay(0.01)
}

Проблема с приведенным выше кодом заключается в том, что он препятствует правильному закрытию iTunes (как при щелчке правой кнопкой мыши -> Выйти).Я считаю, что это происходит потому, что получение свойства playerState вызывает вызов для запуска iTunes.(Без защиты itunes.running() iTunes запустится сразу после запуска скрипта.)

Увеличение delay - это обходной путь, который уменьшает вероятность того, что iTunes останется открытым после выхода, но не заставляетноль или действительно решить проблему.

Я вижу два пути решения:

  1. Есть ли способ получить доступ к свойствам приложения без побочного эффекта запуска приложения?(Достоверно уверен, что ответ на этот вопрос в настоящее время нет.)
  2. Может ли AppleScript запросить, получило ли приложение сигнал SIGTERM / SIGKILL?Или знаете, что приложение находится в фазе «выхода»?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...