Почему команды AppleScript «скажите» запускают не-GUI экземпляр моего GUI-приложения в фоновом режиме? - PullRequest
0 голосов
/ 24 августа 2009

Я пишу стандартное приложение Какао, и я только начал реализовывать поддержку AppleScript для него. Я определил и реализовал свойство под названием testprop для своего класса сценариев приложения верхнего уровня, и доступ к нему работает просто отлично: если я запускаю экземпляр моего приложения и запускаю следующий AppleScript в Редакторе сценариев, я получаю вывод ожидать:

tell application "MyApp"
    testprop
end tell

Однако, если я запускаю этот же AppleScript в Редакторе сценариев , когда мое приложение не запускается , оно возвращает последнее известное значение для этого свойства и продолжает возвращать его для последующих вызовов. Я не вижу экземпляра моего приложения, запускаемого где-либо в графическом интерфейсе.

После того, как я заметил это, я запустил "ps xawww | grep MyApp" в оболочке, которая сказала мне, что процесс был создан с использованием основного исполняемого файла моего приложения, с аргументом, который выглядит примерно так: -psn_0_323663 (число в конце меняется каждый раз при запуске этого процесса - я понимаю, что это «серийный номер процесса», который AppleScript (среди прочего) использует для отслеживания и контроля процессов).

Что здесь происходит? Как я могу предотвратить это (т. Е. Запустить мое приложение как полноценный, правильный экземпляр с графическим интерфейсом, когда AppleScript «скажет» для него команды)?

Edit:

Вышеуказанное происходит только на моем ноутбуке. Когда я пытаюсь сделать то же самое на моем Mac Mini (версия ОС одинакова для обоих: 10.5.8), я просто получаю сообщение об ошибке:

$ osascript -e "tell application \"MyApp\"" -e "testprop" -e "end tell"
26:40: execution error: The variable testprop is not defined. (-2753)

1 Ответ

2 голосов
/ 24 августа 2009

Я не думаю, что он запускает экземпляр "не-GUI", он просто скрывает приложение. Вы можете добавить строку «активировать» к appleScriptcript, чтобы приложение стало активным, и в этом случае вы увидите окна и меню.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...