Откройте Scripting Architecture
Open Scripting Architecture (OSA) обеспечивает стандартный и расширяемый механизм для межсвязи приложений в OS X. Коммуникация имеет место посредством обмена событиями Apple, типа сообщения, разработанного для инкапсуляции команд и данных любой сложности.
События Apple обеспечивают диспетчеризацию события и транспортный механизм данных, который может использоваться в отдельном приложении между приложениями на том же компьютере, и между приложениями на различных компьютерах. OSA определяет структуры данных, ряд распространенных слов и библиотеки функций, так, чтобы приложения могли более легко создать и отправить события Apple, а также получить их и извлечь данные от них.
OSA поддерживает несколько мощных функций в OS X:
возможность создать scriptable приложения (описанный в Приложениях Scriptable)
возможность к пользователям записать сценарии, комбинирующие операции из многократных scriptable приложений
возможность связаться между приложениями с событиями Apple
Части открытой архитектуры создания сценариев
Приложения, для которых нужен полный доступ к Открыть Scripting Architecture, могут получить его путем соединения с платформой Углерода. Некоторые приложения, работающие с событиями Apple (особенно те с минимальными требованиями пользовательского интерфейса) могут быть в состоянии получить все службы, в которых они нуждаются путем соединения с платформой Core Services.
Открыть Scripting Architecture составлен из следующих частей:
Менеджер по корпоративным мероприятиям Apple обеспечивает API для отправки и получения событий Apple и работы с информацией, которую они содержат. Это предоставляет базовую поддержку того, чтобы создать scriptable приложения. Это реализовано в
AE.framework
, подплатформаCoreServices.framework
. (До версии 10.5 OS X,AE.framework
была подплатформаApplicationServices.framework
.)Эта платформа также определяет константы, которые разработчики могут использовать для поддержки стандартного словаря для событий Apple среди различных приложений.
Для документации API посмотрите Ссылку менеджера по корпоративным мероприятиям Apple. Для концептуальной документации и примеров кода, см. Руководство по программированию Событий Apple.
Платформа защиты Углерода включает платформу HIToolbox, поочередно определяющую определенные функции, используемые в обработке и отправке событий Apple (например, в заголовочном файле
Interaction.h
).Открыть платформа Scripting определяет стандартные структуры данных, подпрограммы и ресурсы для создания компонентов сценариев, поддерживающих языки сценариев. Из-за его стандартного интерфейса приложения могут взаимодействовать с любым компонентом сценариев, независимо от его языка. Эта платформа обеспечивает API для компиляции, выполнения, загрузки и хранения сценариев. Это реализовано в
OpenScripting.framework
, подплатформаCarbon.framework
.Для документации посмотрите, Открывают Scripting Architecture Reference.
Компонент AppleScript (в
System/Library/Components
) реализует язык AppleScript, обеспечивающий путь к сценариям для управления scriptable приложениями.Язык AppleScript описан в Руководстве по Языку AppleScript, а также во многих сторонних книгах.
События Apple
Событие Apple является основным сообщением для межпроцессного взаимодействия в открыть Scripting Architecture. С событиями Apple можно собрать все данные, необходимые для выполнения задачи высокого уровня в единственный пакет, который может быть передан через границы процесса, оценил и возвратился с результатами.
Событие Apple состоит из серии вложенных структур данных, каждый идентифицированный одним или более с четырьмя кодами символов (также называемый кодами события Apple). Эти структуры данных, а также коды и заголовочные файлы, в которых они определяются, описаны в Руководстве по программированию Событий Apple. Тот документ также предоставляет концептуальную информацию о событиях Apple и примерах программирования, работающих с ними. Для списка четырех кодов символов и их связанной терминологии, используемой Apple, посмотрите Терминологию AppleScript и Ссылку Кодов события Apple. Ваше приложение может снова использовать эти условия и коды каждый раз, когда оно выполняет эквивалентную функцию.
События Apple, отправленные Mac OS
Mac OS использует в своих интересах события Apple для передачи с приложениями, например, уведомить приложение, что он был запущен или должен открыть или распечатать список документов. Приложения, представляющие графический интерфейс пользователя, должны быть в состоянии ответить на то, какой бы ни из этих событий целесообразны для приложения. Например, все такие приложения могут быть запущены и завершены, но некоторые могут не быть в состоянии открыть или распечатать документы.
Для получения дальнейшей информации на событиях, отправленных Mac OS и как реагировать на них, см.:
Для приложений Углерода: “Обрабатывая События, Отправленные Mac OS” в Ответе на События Apple в Руководстве по программированию Событий Apple.
Для приложений Какао: Как Дескриптор Приложений Какао События Apple в Руководстве по созданию сценариев Какао.
Выполнение сценария в открытой архитектуре создания сценариев
Открыть Scripting Architecture позволяет пользователям управлять многократными приложениями со сценариями, записанными во множестве языков сценариев. Каждый язык сценариев имеет соответствующий компонент сценариев. Компонент AppleScript поддерживает язык AppleScript. Когда компонент сценариев выполняет сценарий, операторы в сценарии могут привести к событиям Apple, отправляемым в приложения.
Несмотря на то, что AppleScript является наиболее широко используемым языком (и единственный, предоставленный Apple), разработчики свободны использовать Открыть Scripting Architecture для создания компонентов сценариев для других языков сценариев. В зависимости от реализации сценарии, записанные на этих языках, могут быть в состоянии связаться с scriptable приложениями.
Рисунок 1 показывает то, что происходит, когда приложение Редактора сценариев выполняет сценарий AppleScript, предназначающийся для Почтового приложения. Редактор сценариев вызывает функции в открыть платформе Scripting. Открыть платформа Scripting связывается через компонент AppleScript, поочередно использующий менеджера по корпоративным мероприятиям Apple для отправки любых требуемых событий Apple в Почтовое приложение. Если ответ требуют, Почтовая информация о возвратах приложения в событии Apple ответа.
Приложения могут также вызвать функции менеджера по корпоративным мероприятиям Apple непосредственно, чтобы отправить события Apple в другие приложения и получить ответы от них (не показанный на рисунке 1).
Расширение AppleScript с приведениями, сценарии дополнений и безликих фоновых приложений
Разработчики могут расширить AppleScript путем создания пакетов, обеспечивающих обработчики команды и обработчики приведения. Пакеты могут быть дополнения сценариев или приложения. Однако во многих случаях лучшее решение для расширения AppleScript состоит в том, чтобы обеспечить функции через безликое фоновое приложение — т.е. своего рода невидимое серверное приложение.
Приведения
Приведение является процессом преобразования информации в событии Apple от одного типа до другого. Обработчик приведения является функцией, обеспечивающей приведение между два (или возможно больше) типы данных. OS X обеспечивает приведение по умолчанию между многими стандартными типами. Для полного списка посмотрите Обработчики Приведения По умолчанию в Руководстве по программированию Событий Apple.
Приведение доступно и сценариям и приложениям. В сценарии, например, следующее утверждение принуждает числовое значение, которое 1234 к строке оценивает «1234».
set myString to 1234 as text |
scriptable приложение может указать тип, когда оно использует функцию менеджера по корпоративным мероприятиям Apple для извлечения данных из события Apple. Если данные уже не будут в указанном типе, то менеджер по корпоративным мероприятиям Apple попытается принудить его к тому типу. Приложение может обеспечить обработчики приведения для своих собственных типов данных, как описано в записи и Установке Обработчиков Приведения в Руководстве по программированию Событий Apple.
Сценарии дополнений
Дополнение сценариев является файлом, или свяжитесь, который обеспечивает команды AppleScript или приведения. Единственное дополнение сценариев может содержать многократные обработчики. Например, Стандартные Дополнения, пишущие сценарий дополнения в OS X (имя файла StandardAdditions.osax
), включает команды для использования Буфера обмена, получая путь к файлу, говорящему тексту, выполняя сценарии оболочки и т.д., команды, предоставленные Стандартными Дополнениями, доступны всем сценариям. Для наблюдения, что обеспечивает терминология дополнение сценариев можно исследовать его словарь, как описано в Отображении Словарей Сценариев.
Термины, введенные путем сценариев дополнений, существуют в том же пространстве имен как условия AppleScript и определенные с помощью приложения условия. В то время как это имеет преимущество создания службы, глобально доступной, это также означает, что условия от сценариев дополнений могут конфликтовать с другими условиями, загрязняя глобальное пространство имен. Отладка дополнений сценариев может также быть трудной. Поскольку Вы не можете просто установить точки останова в своем собственном коде, Вы, возможно, должны использовать выборку, профилирование и различные другие инструменты для определения, где заключается проблема. (См. Безликие Фоновые приложения для подхода, избегающего этих проблем.)
Дополнение сценариев предоставляет свои услуги путем установки обработчиков событий (для команд) или обработчики приведения (для приведений) в системных таблицах отгрузки приложения. Обработчики для Стандартных Дополнений (и для любых других дополнений сценариев, установленных Mac OS в /System/Library/ScriptingAdditions
) будьте установлены, если приложение призывает API открыть платформа Scripting, или если приложение в частности загружает дополнение сценариев. Приложение может также в частности загрузить другие дополнения сценариев из других расположений.
Для получения информации о записи дополнений сценариев посмотрите Техническое примечание TN1164, Собственные Дополнения Сценариев. Для получения информации о загрузке дополнений сценариев посмотрите Технические Вопросы и ответы QA1070, Загрузив Сценарии Дополнений, Не Инициализируя Сценарий Apple в OS X.
Безликие фоновые приложения
Безликое фоновое приложение (теперь более обычно называемый агентом), тот, поскольку его имя подразумевает, работающий в фоновом режиме и не имеющий никакого видимого пользовательского интерфейса. Путем создания scriptable агента можно предоставить услуги без некоторых недостатков сценариев дополнений. Например, можно разработать и отладить в стандартной среде приложения, и любая терминология, которую Вы обеспечиваете, не загрязняет глобальное пространство имен — это доступно только в сценарии tell
оператор, предназначающийся для агента.
Можно установить агент непосредственно, но если он предназначается для использования с другим приложением, можно вставить его Resources
папка приложения это поддерживает. Это продвигает простоту использования путем разрешения процесса установки перетаскивания и минимизирует пользователей, спотыкающихся через агент и спрашивающих, “Для чего это? “Агент будет запущен каждый раз, когда на него ссылаются в a tell
оператор. Этому можно сказать выйти, и можно также установить его до, испытывают таймаут, таким образом, это может быть разгружено, когда это больше не используется.
Apple предоставляет много scriptable услуг через агенты, как описано в Системных событиях и Сценариях GUI, Событиях Изображения и Событиях Базы данных. Например, сценарии могут использовать приложение Системных событий для выполнения операций на файлах списка свойств.