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

У меня настроено правило Mail для запуска следующего приложения:

using terms from application "Mail"
    on perform mail action with messages theMessages for rule theRule
        tell application "Mail"

            -- do stuff, including...
            CheckAddressBook(theName, theAddress)

        end tell
    end perform mail action with messages
end using terms from

on CheckAddressBook(theName, theAddress)
    tell application "Address Book"
        -- do stuff
    end tell
end CheckAddressBook

Каждый раз, когда выполняется это почтовое правило, запускается адресная книга. Он не активирован, но внезапно появляется на моем рабочем столе. Мой вопрос: можно ли указать блокам, что нужно запускать приложение без вывода сообщений и закрывать его по завершении?


person eykanal    schedule 17.02.2011    source источник
comment
Вы хотите, чтобы адресная книга оставалась открытой после запуска сценария? В противном случае вы можете использовать tell application "Address Book" to quit.   -  person Fábio Perez    schedule 17.02.2011
comment
@ Fábio Perez - Мне все равно, мне больше любопытно, почему он всегда явно запускается, а не просто запускает процесс без графического интерфейса.   -  person eykanal    schedule 17.02.2011
comment
Я думаю, это происходит потому, что Адресная книга не открывается, когда вы ее вызываете. Затем сценарий просто открывает приложение, и когда вы открываете приложение, он получает фокус.   -  person Fábio Perez    schedule 17.02.2011


Ответы (2)


AppleScript не может управлять приложением, если оно не запущено. Так оно и работает. Существуют и другие методы, которые вы можете использовать для доступа к базе данных адресной книги без запуска приложения, но если вы используете AppleScript для получения данных из базы данных адресной книги, приложение должно быть запущено. Я бы порекомендовал просто добавить команду выхода, как предложил Фабио.

person Chuck    schedule 17.02.2011

Чтобы читать базу данных адресной книги, не запуская "Address Book.app", я бы посоветовал взглянуть на инструмент командной строки "contacts", доступный бесплатно здесь. Затем вы запустите его из Applescript, например do shell script "/usr/bin/contacts Peter", и обработайте возвращенные значения.

person Asmus    schedule 18.02.2011