Откройте Scripting Architecture

Open Scripting Architecture (OSA) обеспечивает стандартный и расширяемый механизм для межсвязи приложений в OS X. Коммуникация имеет место посредством обмена событиями Apple, типа сообщения, разработанного для инкапсуляции команд и данных любой сложности.

События Apple обеспечивают диспетчеризацию события и транспортный механизм данных, который может использоваться в отдельном приложении между приложениями на том же компьютере, и между приложениями на различных компьютерах. OSA определяет структуры данных, ряд распространенных слов и библиотеки функций, так, чтобы приложения могли более легко создать и отправить события Apple, а также получить их и извлечь данные от них.

OSA поддерживает несколько мощных функций в OS X:

Части открытой архитектуры создания сценариев

Приложения, для которых нужен полный доступ к Открыть Scripting Architecture, могут получить его путем соединения с платформой Углерода. Некоторые приложения, работающие с событиями Apple (особенно те с минимальными требованиями пользовательского интерфейса) могут быть в состоянии получить все службы, в которых они нуждаются путем соединения с платформой Core Services.

Открыть Scripting Architecture составлен из следующих частей:

События Apple

Событие Apple является основным сообщением для межпроцессного взаимодействия в открыть Scripting Architecture. С событиями Apple можно собрать все данные, необходимые для выполнения задачи высокого уровня в единственный пакет, который может быть передан через границы процесса, оценил и возвратился с результатами.

Событие Apple состоит из серии вложенных структур данных, каждый идентифицированный одним или более с четырьмя кодами символов (также называемый кодами события Apple). Эти структуры данных, а также коды и заголовочные файлы, в которых они определяются, описаны в Руководстве по программированию Событий Apple. Тот документ также предоставляет концептуальную информацию о событиях Apple и примерах программирования, работающих с ними. Для списка четырех кодов символов и их связанной терминологии, используемой Apple, посмотрите Терминологию AppleScript и Ссылку Кодов события Apple. Ваше приложение может снова использовать эти условия и коды каждый раз, когда оно выполняет эквивалентную функцию.

События Apple, отправленные Mac OS

Mac OS использует в своих интересах события Apple для передачи с приложениями, например, уведомить приложение, что он был запущен или должен открыть или распечатать список документов. Приложения, представляющие графический интерфейс пользователя, должны быть в состоянии ответить на то, какой бы ни из этих событий целесообразны для приложения. Например, все такие приложения могут быть запущены и завершены, но некоторые могут не быть в состоянии открыть или распечатать документы.

Для получения дальнейшей информации на событиях, отправленных Mac OS и как реагировать на них, см.:

Выполнение сценария в открытой архитектуре создания сценариев

Открыть Scripting Architecture позволяет пользователям управлять многократными приложениями со сценариями, записанными во множестве языков сценариев. Каждый язык сценариев имеет соответствующий компонент сценариев. Компонент AppleScript поддерживает язык AppleScript. Когда компонент сценариев выполняет сценарий, операторы в сценарии могут привести к событиям Apple, отправляемым в приложения.

Несмотря на то, что AppleScript является наиболее широко используемым языком (и единственный, предоставленный Apple), разработчики свободны использовать Открыть Scripting Architecture для создания компонентов сценариев для других языков сценариев. В зависимости от реализации сценарии, записанные на этих языках, могут быть в состоянии связаться с scriptable приложениями.

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

Рисунок 1  , Как части OSA сотрудничают в выполняющихся сценариях
How parts of the OSA work together in executing scripts.How parts of the OSA work together in executing scripts.

Приложения могут также вызвать функции менеджера по корпоративным мероприятиям 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, Событиях Изображения и Событиях Базы данных. Например, сценарии могут использовать приложение Системных событий для выполнения операций на файлах списка свойств.