cocoa applescript applet что это

AppleScript in Lion

The focus of AppleScript in Lion is about bringing the power of AppleScript/Objective-C to the desktop.

Cocoa-AppleScript Applets. The AppleScript Editor can now create and edit Cocoa-AppleScript applets that provide direct access to the Cocoa frameworks from within their AppleScript code, by using the AppleScript/Objective-C bridge first introduced in Snow Leopard. Accordingly, applets can now display custom interfaces, such as progress windows, programmatically, taking advantage of the standard Cocoa interfaces available in the OS.

Script Templates. New for AppleScript Editor is a template menu, containing a variety of useful script templates, including scripts for creating file processing droplets, Aperture import actions, Mail rule actions, and iChat message responders.

Global Script Application Targets. In addition, the AppleScript Editor now has the ability to globally target a script to a specific application through a new optional “tell application” popup menu. Targeted scripts are excellent for quick development as they do not require the use of tell blocks or using terms clauses.

Cocoa-AppleScript Applets

AppleScript in Mac OS X v10.6 (Snow Leopard) introduced AppleScript/Objective-C and the ability to create AppleScript applications in Xcode that could directly access any part of the Cocoa frameworks. In Mac OS X v10.7 (Lion) the power of AppleScript/Objective-C has been made accessible to scripters with the introduction of Cocoa-AppleScript Applets in the AppleScript Editor.

For the first time, AppleScript can access the Cocoa Foundation and AppKit frameworks directly within applet code, augmenting AppleScript’s legendary ability to communicate with and control applications, with Cocoa’s powerful routines for text, number, window, and image manipulation. Combine this new Cocoa integration with AppleScript’s existing access to the UNIX command-line, and you’ve got a fantastic automation powerhouse.

Selecting the Cocoa-AppleScript Applet script template from the AppleScript Editor’s New From Template menu.

Cocoa-AppleScript Applet Template

The new Cocoa-AppleScript applet is available as a script template via the AppleScript Editor’s New From Template menu. Once selected, you will be prompted to name and save the new applet. This applet accepts most standard AppleScript constructs and code, as well as statements and routines written in AppleScript/Objective-C.

Using AppleScript/Objective-C in an AppleScript applet, to transform text to uppercase.

Caveats

AppleScript/Objective-C Updates

In Mac OS X Lion, two important changes were made to AppleScript/Objective-C

Script Templates

Finally, an easy way to quickly create your favorite types of scripts! AppleScript Editor in Lion introduces a New from Template menu that contains a variety of useful script templates, including templates for creating Mail rule actions, iChat response scripts, Aperture import actions, and file processing droplets. You can add your own templates by placing the template scripts in the Home > Library > Application Support > Script Editor > Templates folder.

Selecting an iChat template from the AppleScript Editor New from Template menu.

Selecting a template from the menu will prompt you for a name and location for the duplicated template file. Once provided the duplicated script file will open in the AppleScript Editor:

An iChat event handler script for automatically responding to specified buddies.

Global Script Application Targets

For scripters wanting a simple way to target scripts at a particular application, AppleScript Editor in Lion implements a target application menu, beneath the toolbar in a script window, from which you can select the application that will be the target of all the script statements.

This feature can be enabled in the AppleScript Editor editing preference pane by selecting the checkbox titled: Show tell application pop-up menu

When a script is targeted at a specific application, you don’t need to include tell blocks or tell statements for the targeted applicaiton.

LEARN APPLESCRIPT/OBJ-C

AppleScriptObjC Explored by Shane Stanley is the definitive resource on AppleScript Objective-C.

In addition to documenting how to build applications using AppleScriptObjC, this PDF book comes with fully-editable and annotated example projects for you to explore in detail.

COCOA-APPLESCRIPT EXAMPLES

The AppleScript Editor application in Mac OS X v10.7 (Lion) comes with a set of Cocoa-AppleScript example templates. You can download these additional examples and make them available in the AppleScript Editor by placing them in the Home > Library > Application Support > Script Editor > Templates folder.

RELATED LINKS

Developer documentation for some of the Cocoa classes available for use with the Cocoa-AppleScript applets:

APPLESCRIPT ACTIONS

Two Xcode projects have been posted demonstrating how to use the new AppleScript/Objective-C templates to creating Automator actions using lists. The automated publishing example can be viewed here.

Источник

Скриптинг для Mac OS X: начинаем программировать на AppleSсriрt

Содержание статьи

Из этой статьи ты узнаешь, что такое AppleScript, зачем и кому он нужен, как можно автоматизировать чужие приложения и добавлять возможность автоматизации в свои.

Автоматизируй это

Часто встречаются такие задачи, для решения которых делать отдельный проект на компилируемом языке нерационально. Например, когда нужно быстро слепить на коленке код, который должен просто выполнять конкретную работу — без всяких GUI-украшений, обработки всевозможных исключительных ситуаций, оптимизации и прочего. Здесь на помощь и приходят языки сценариев — известные тебе shell, Perl, PHP и так далее. Все они (ну или почти все) доступны и под Mac OS X. Но в этой операционке в дополнение к общепринятым скриптовым языкам есть и специальный язык сценариев, ориентированный именно на Mac OS X и тесно с ней связанный. Это AppleScript.

AppleScript идет вместе с системой начиная с System 7. Выросший из проекта HyperCard (который содержал скриптовый язык HyperTalk, очень похожий на естественный английский), AppleScript первоначально создавался для того, чтобы обеспечить обмен данными между задачами, а также для управления работой сторонних приложений. Сам по себе AppleScript обладает довольно скромной функциональностью: на этом языке даже сценарии для выполнения сравнительно простых задач часто выглядят как обращение к другим приложениям. Впрочем, после существенной перестройки системы при переходе к линейке Mac OS X язык AppleScript стал боле гибким и мощным, а новый фреймворк Cocoa позволил разработчикам встраивать в свои приложения возможность автоматизации с помощью AppleScript’а с минимальными усилиями.

Простой сценарий

Для редактирования и исполнения скриптов мы будем использовать стандартный Script Editor. Найти его можно в папке /Application/AppleScript. Для начала напишем простой «HelloWorld’ный» скрипт.

display alert «Hello World!» # Покажем диалог
say «Hello World» # Вывод в колонки

Объяснять тут, думаю, ничего не нужно, но хочется отметить крайне простой доступ к синтезатору речи из AppleScript c помощью команды say. Вот это и есть настоящее общение с пользователем в стиле Apple :). Конечно же, этот диалог можно легко кастомизировать. Например, добавить нужные кнопки:

Панель с дополнительными кнопками

display alert «Hello World!» buttons <"Hello", "Bye">
set answer to button returned of the result
if answer is «Hello» then
.
else
.
end if

Теперь напишем что-нибудь более полезное. Например, дадим пользователю выбрать файл и прочитаем его содержимое:

Читайте также:  что делать если давит кашель

# Панель выбора файла
set theFile to (choose file with prompt «Select a file to read:» of type <"TEXT">)
open for access theFile

Читаем контент

set fileContents to (read theFile)
close access theFile

На этих примерах хорошо видна основная идея AppleScript — он очень близок к живому английскому языку. Поэтому читать скрипты легко даже для человека, далекого от кодинга. Каждая командаглагол может быть дополнена существительными-модификаторами и параметрами.

Взаимодействие c приложениями

Для взаимодействия с другими приложениями AppleScript использует механизм сообщений:

tell application «Microsoft Word»
quit
end tell

C помощью команды tell выбираем приложение, которому мы будем отправлять сообщение. В данном случае мы просим MS Word завершиться. В блоке «tell — end tell» может быть отправлено любое количество команд. Сообщения, которые отсылаются приложению, могут быть и более специфичными. Все зависит от того, какие команды реализовали его разработчики. iTunes, например, экспортирует довольно много команд и свойств в среду AppleScript:

Запускаем нужный плейлист в iTunes

tell application «iTunes»
play the playlist named «My Favorite»
end tell

Чтобы тебе было проще работать с классами и командами, которые экспортирует приложение, они организованы в разделы. Все приложения, которые поддерживают скриптинг, имеют хотя бы два раздела: один стандартный и один из более специфичных для данного приложения разделов. Стандартный раздел содержит набор стандартных команд, которые поддерживает любое Mac-приложение: open, print, close и quit. Содержание остальных разделов зависит от фантазии разработчиков.

Выполнение AppleScript из своего приложения

Если ты пишешь приложение на Objective-C/Cocoa, то возможно, что некоторые вещи будет удобнее сделать с помощью AppleScript. Для создания и выполнения в Cocoa-приложениях скриптов существует класс NSAppleScript. Вот простой пример его использования — реализация получения у приложения iChat строки статуса пользователя.

NSAppleScript *iChatGetStatusScript = nil;
iChatGetStatusScript = [[NSAppleScript alloc] initWithSource: @»tell application «iChat» to get status message»];
NSString *statusString = [[iChatGetStatusScript executeAndReturnError:&errorDict] stringValue];

Возможно, то же самое можно сделать и другим путем, не используя созданный во время выполнения скрипт, но вряд ли альтернативный код будет выглядеть проще, чем этот. Если скрипты большие, можно хранить их в ресурсах бандла и читать при необходимости.

Автоматизация в Cocoa-приложении

Содержимое файла scriptTermonology отображается в Script Editor’е при просмотре словаря приложения. Этот файл содержит описание экспортируемых в AppleScript объектов.

Открыв scriptSuite-файл в Plist Editor’е, можно видеть, что он содержит следующие основные разделы:

Разбирать внутреннее устройство этих файлов особого смысла нет, так как тебе скорее всего придется иметь дело только с sdef-файлами.

Пример sdef-файла

.
NSAppleScriptEnabled
OSAScriptingDefinition
Scrtipting.sdef

Добавим к проекту файл Scripting.sdef следующего содержания:

Итак, из AppleScript’а у нас доступно одно свойство — myprop. Осталось написать ObjC-код, который будет обрабатывать чтение данного свойства из скриптов. Для этого нужно создать категорию NSApplication, поскольку именно этот класс мы выбрали в качестве получателя сообщений от скриптов.

Eсли мы теперь из AppleScript обратимся к свойствам нашего приложения, то увидим среди них свое свойство и его значение:

tell application «Scripting»
properties
end tell

Заключение

Конечно, описать здесь все возможности AppleScript и его взаимодействия с Cocoa-приложениями невозможно. Да это и не нужно — для этого есть мануалы. А мы со своей стороны продолжим цикл статей о кодинге под эппловские платформы и расскажем тебе еще много нового и интересного.

Источник

Что такое AppleScript? Написание вашего первого скрипта для Mac

Если вы чувствуете себя комфортно в мире сценариев и работаете на Mac, AppleScript может стать для вас решением для автоматизации. AppleScript — это мощный язык, который дает вам возможность управлять любым приложением, если он предоставляет библиотеку AppleScript.

Используйте его для таких повседневных задач, как автоматическое изменение размеров фотографий в Photoshop, переименование папок и блокировка файлов с помощью пароля. Мы покажем вам, как начать его использовать.

Что такое AppleScript?

AppleScript расширился с появлением Mac OS X. Платформа Cocoa значительно упростила разработчикам приложений включение совместимости AppleScript. Эта повышенная гибкость в сочетании со способностью AppleScript напрямую взаимодействовать с командной строкой делает AppleScript одним из лучших инструментов для тинкеров. Это также дает MacOS преимущество над iOS, когда дело доходит до автоматизации.

Обзор предустановленных сценариев AppleScripts

Прежде чем мы начнем разбирать то, что говорит AppleScript, давайте взглянем на сценарии, которые предустановлены с помощью Script Editor, и как вы можете их использовать.

Вы можете просто запустить один из этих сценариев из строки меню.

Давайте посмотрим на действия с папками. Папка Действие — это AppleScript, который прикреплен к папке. Если этот параметр включен, сценарий будет запускаться для любого файла, добавляемого в эту папку.

Поэкспериментируйте со строкой меню Scripts, чтобы понять, что еще AppleScript может сделать для вас. Чтобы взглянуть на то, что происходит под капотом, перейдите в папку « Сценарии », щелкните правой кнопкой мыши любой сценарий и откройте его в редакторе сценариев.

Понимание Сказать Заявление

AppleScript использует читабельный синтаксис. Это означает, что по сравнению со многими другими языками программирования он написан в понятном формате. Поскольку он использует полные слова и предложения для отправки команд, его легко понять и легко изучить.

Давайте посмотрим на начальный синтаксис добавления нового элемента alert.scpt в действиях с папками. Это даст представление о самом фундаментальном утверждении в AppleScript: утверждении Tell.

«Сказать заявление» состоит из трех частей:

С точки зрения непрофессионала, оператор Tell выше говорит: «Скажите Finder, чтобы он использовал имя папки, к которой присоединен этот скрипт, всякий раз, когда скрипт запрашивает« this_folder ».

Цель AppleScript состоит в том, чтобы автоматизировать задачи для вас, сообщая приложениям о выполнении задач, которые вы не хотите выполнять самостоятельно. Таким образом, команда «рассказать» имеет важное значение. Вы можете продвинуться далеко в мире AppleScript с помощью только одного «рассказать».

Написание вашего первого AppleScript

Если у вас есть некоторый опыт программирования и вы знакомы с такими понятиями, как переменные, циклы выполнения и условные выражения, вы можете многое узнать об AppleScript за рамками этого введения. Сейчас мы просто покажем вам, как создавать, писать, запускать и сохранять базовый сценарий:

С этим простым синтаксисом вы можете сказать почти любому приложению Mac делать практически что угодно. Чтобы просмотреть доступные команды для данного приложения, выберите « Файл»> «Открыть словарь» и выберите приложение. Оттуда вы можете увидеть все доступные команды AppleScript.

Для более простой автоматизации Mac, используйте Automator

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

Хотя Automator не так настраиваем или сложен, как AppleScript, его проще и сложнее взломать. Взгляните на некоторые рабочие процессы Automator, которые сэкономят ваше время. Экономичные по времени рабочие если вам интересно.

Источник

Основы AppleScript

Приложение Script Editor

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

Читайте также:  honor killing что это

Словарь (dictionary) является частью сценариумных приложений, который определяет условия сценариев, которые оно понимает. Вы можете выбрать File > Open Dictionary в Script Editor для отображения словаря сценариев приложения или скриптового добавления на вашем компьютере. Или вы можете перетащить значок приложения на значок редактора сценариев, чтобы отобразить его словарь (если он есть).

Чтобы отобразить список, который включает только сценарии приложений и сценарии дополнений предоставляемых OS X, выберите Window > Library. Дважды щелкните элемент в списке, чтобы отобразить его словарь. Рисунок ниже показывает словарь для применения в Finder OS X 10.8. Словарь помечен как «Finder.sdef».

Есть также сторонние редакторы для AppleScript.

AppleScript и объекты

AppleScript определяет классы для логических значений, сценариев, текстов, чисел и других видов объектов для работы в сценарии;

Части OS X и приложений с поддержкой сценариев, распространяемых с ним, такие как Finder, системные события и события баз данных (находится в /System/Library/CoreServices), определяют много полезных классов.

Сторонние приложения с поддержкой сценариев определяют классы, которые поддерживают широкий спектр функций.

Что включено в script объект

Объект script может содержать следующее:

Свойство это именованный контейнер, в котором хранится значение.

Обработчик run содержит заявления AppleScript выполняемые при запуске сценария.

Неявный обработчик run состоит из любых заявлений вне любого содержащегося обработчика или script объекта.

Обработчик является эквивалентом подпрограммы.

Второе заявление в run обработчике вызывает greetClient() напрямую, с аргументом «Joe Jones».

Свойства

Свойство объекта является характеристикой, которая имеет единственное значение и метку, такую ​​как name свойство окна или month свойство даты. Определение для любого класса AppleScript включает в себя имя и класс для каждого из его свойств. Имена свойств должны быть уникальными в классе. Значений свойств могут быть для чтения/записи или только для чтения.

Большинство классов поддерживают только предопределенные свойства. Тем не менее, для script класса, AppleScript позволяет определить дополнительные свойства.

Элементы

Элемент представляет собой объект, содержащийся внутри другого объекта. Определение для любого класса AppleScript включает типы элементов, которые он может содержать. Обычно объект может содержать ноль или болшее количество каждого из его элементов.

Объект спецификаторов

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

Приложения обычно возвращают объект спецификаторов в ответ на команды. Например, если вы спросите Finder для окна, он возвращает информацию, которая определяет объект окна, который запросил сценарий (если он существует). Контейнер верхнего уровня в объекте спецификаторе обычно само приложение.

Разница между спецификатором объекта и объектом это, как разница между адресом здания и самим зданием. Адрес представляет собой набор слов и цифр, например, «Санкт-Петербург, Коммунистический проспект 16», который идентифицирует расположение (на улице, в городе, в районе). Он отличается от самого здания. Если здание в этом месте рушится и возводится новое здание, адрес остается прежним.

Что внутри объекта спецификатора

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

Контейнеры

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

Вы также можете использовать притяжательные формы (‘ s ), чтобы указать контейнеры. В следующем примере, самый внутренний контейнер является first window и объект, который представляет собой свойство name :

В этом примере, целю заявления tell («TextEdit») является внешний контейнер для объекта спецификатора.

Абсолютные и относительные спецификаторы объекта

Абсолютный спецификатор объекта имеет достаточно информации, чтобы идентифицировать объект или объекты однозначно. Он может быть использован в любом месте в сценарии. Для ссылки на объект приложения, чтобы быть абсолютным, его внешний контейнер должен быть самим приложением, например:

В противоположность, относительной спецификатор объекта не определяет достаточно информации, чтобы идентифицировать объект или объекты однозначно, например:

По умолчанию цель заявления tell является объектом, который получает команды, если никакой другой объект не указан. Например, следующее заявление tell говорит Finder, получить имя с помощью относительного предыдущего спецификатора объекта.

Когда AppleScript встречает относительный спецификатор объекта за пределами любого tell заявления, он пытается завершить объект спецификатор, просматривая по цепочке наследования.

Объект Спецификаторов в ссылочных объектах

Вы могли бы вместо этого создать ссылку с более конкретным объектом спецификатором:

Если вы запустите этот сценарий после открытия второго документа, он все равно будет возвращать имя исходного документа, «New Report.rtf», если документ существует.

Следует отметить, что в результате команды get вернется объект спецификатор ссылки, а не спецификатор к объекту, который он определяет.

Когда он это может, AppleScript неявно разыменовывает ссылки на объект (без использования свойства contents ), как в следующем примере:

Приведение (преобразование объекта)

Приведение (также известный как объект преобразования) представляет собой процесс преобразования объектов из одного класса в другой. AppleScript преобразует объект в другой класс в любом из следующих случаев:

Не все классы могут быть приведены ко всем другим типам классов. Таблица ниже суммирует приведения, которые поддерживает AppleScript для часто используемых классов.

Оператор as указывает конкретное приведение. Например, следующее заявление приводит целое 2 в текстовое «2» перед его сохранением в переменной myText :

Если вы предоставляете параметру команды или операнда неправильный класс, AppleScript автоматически приводит операнд или параметр к ожидаемому классу, если это возможно. Если преобразование не может быть выполнено, AppleScript сообщает об ошибке.

Поддерживаемые приведения AppleScript по умолчанию:

Сценарии дополнений

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

Многие из команд, описанных в данном руководстве определены в стандартных добавочных сценариях в OS X. Эти команды хранятся в файле StandardAdditions.osax в /System/Library/ScriptingAdditions и доступны любому сценарию. Вы можете изучить терминологию для стандартных дополнений, открыв этот файл в редакторе сценариев.

/Library/ScriptingAdditions так, чтобы редактор сценариев мог их найти.

Обзор команд

Команды часто возвращают результаты. Например, команда display dialog возвращает записи, которые могут содержать текст, название кнопки, и другую информацию. Сценарий может изучить эту запись, чтобы определить, что делать дальше. Вы можете присвоить результат команды переменной, которую вы определяете, или получить доступ к нему через предопределенную переменную result AppleScript.

Типы команд

Сценарии могут использовать следующие виды команд:

Приложения с поддержкой скриптов, которые поставляются с OS X, такие как Finder и System Events (находится в /System/Library/CoreServices ), предоставляют множество полезных скриптовых команд.

Когда цель команды приложение, результатом может быть объект приложения. Если это так, последующие заявления, ориентированны на объект из результа, и отправлятся в приложение.

Прямой параметр

Прямым параметром является значение, как правило, объект спецификатор, который появляется сразу после команды и указывает цель команды. Не все команды имеют прямой параметр. Если команда может иметь прямой параметр, его следует отметить в определении команды.

Читайте также:  что делать если вас заблокировали в тик токе навсегда

В следующее заявлении, объект спецификатор last file of window 1 of application «Finder» является прямым параметром команды duplicate :

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

Параметры, определяющие расположение

Многие команды имеют параметры, которые определяют положение. Положение может быть или точкой вставки или другим объектом.Точка вставки находится в месте, где объект может быть добавлен.

Фразы paragraph 1 и before paragraph 4 называют индексом и относительными ссылками, соответственно.

AppleScript Обработка ошибок

В ходе выполнения скрипта могут возникать ошибки из-за взаимодействия с OS X, проблемы, возникающие в командах сценариев приложений или проблем, связанных с заявлениями в самом скрипте. При возникновении ошибки, AppleScript останавливает выполнение в текущем местоположении, сигнализирует об ошибке, и смотрит в вызывающей цепочке операторов скрипта, обработчик который может обрабатывать ошибки. То есть, он ищет ближайший блок кода обработки ошибок, который окружает место, где произошла ошибка.

Сценарии могут обрабатывать ошибки, заключив заявления, в которых могут возникнуть ошибки в try заявление. Заявление try включает в себя on error секцию, которая вызывается в случае ошибки. AppleScript передает информацию об ошибках, в том числе номер ошибки и сообщение об ошибке, в on error секцию. Это позволяет изучить скрипту номер ошибки и отображать информацию о ней.

Глобальные константы в AppleScript

AppleScript определяет ряд глобальных констант, которые можно использовать в любом месте скрипта.

Глобальная константа AppleScript обеспечивает доступ к свойствам, которые вы можете использовать на протяжении всего скриптаы.

В следующих разделах описываются дополнительные свойства AppleScript.

Математическое значение числа пи = 3.14159265359.

result

Текстовые константы

text item delimiters

AppleScript предоставляет свойство text item delimiters для использования в обработке текста. Это свойство состоит из списка строк, используемых в качестве разделителей на AppleScript, когда приводится список к тексту или получает текстовый элемент из текстовых строк. AppleScript в настоящее время использует только первый разделитель из списка.

Свойство text item delimiters может быть использовано для извлечения отдельных имен из файлового пути. Например, сценарий

Сценарии обычно используют обработчик ошибок, чтобы сбросить свойство text item delimiters до его прежнего значения в случае ошибки

version

current application

Константа current application относится к приложению, в котором выполняется текущий скрипт AppleScript (например, Script Editor). Поскольку текущее приложение является родителем AppleScrip, оно получает возможность обрабатывать команды, которые не обрабатываются текущим сценарием или AppleScript.

missing value

Постоянная missing value является заполнителем для отсутствующей или неинициализированной информации.

Например, следующие заявления используют постоянную missing value для определения, является ли переменная измененной:

true, false

Ключевые слова it и me

Если сценарий не был чей-то целью, it и me остановятся на одном и том же-сценарии, как показано в следующем примере:

Заявление tell определяет цель по умолчанию. В следующем примере, целью по умолчанию является приложение Finder:

Псевдонимы и файлы

Для ссылки на пункты и места в файловой системе OS X, вы используете alias объекты и file объекты.

Объект alias является динамической ссылкой на существующий объект файловой системы. Так как он динамический, он может поддерживать связь с назначенным объектом файловой системы, даже если этот объект будет перемещен или переименован.

Ниже приводится рекомендуемое использование для этих типов:

Указание путей

Вы можете создать alias объект и file объект, предоставляя имя спецификатор, где имя, это путь к элементу в файловой системе.

«, чтобы указать домашний каталог не поддерживается.

Работа с псевдонимами

AppleScript определяет класс alias для представления псевдонимов. alias может быть сохранен в переменной и использоваться во всем сценарии.

Следующий сценарий сначала создает псевдоним для существующего файла в переменной notesAlias ​​, а затем использует переменную в tell заявлении, которое открывает этот файл. Он использует try заявление для проверки существования псевдонима, прежде чем создавать его, так что псевдоним создается только один раз, даже если скрипт запускается повторно.

Как только вы запустите предыдущий пример создастся псевдоним, и сценарий сможет найти исходный файл, когда вы запустите его снова, даже если имя файла или место измененятся. (Однако, если вы запустите скрипт снова после перекомпиляции, это приведет к созданию нового псевдонима.)

Вы можете получить HFS путь из псевдонима путем приведения его к тексту:

Вы можете использовать свойство POSIX path для получения пути в POSIX-стиле к элементу на который ссылается псевдоним:

Работа с файлами

Удаленные приложения

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

Включение удаленного приложения

Чтобы сценарий мог посылать команды удаленному приложению, должны быть удовлетворены следующие условия:

eppc-стиль спецификаторов

Спецификатор в eppc стиле имеет следующий формат:

Ниже приведены примеры правильных спецификаторов в eppc стиле. Если указать имя пользователя и пароль, проверка подлинности не требуется. Если вы их не предоставляете, может потребоваться аутентификация.

Таргетинг удаленного приложения

Можно настроить таргетинг для приложения, которое выполняется на удаленном компьютере, и вы можете запускать приложения на удаленных машинах, которые в данный момент не запущены.

В следующем примере используются спецификатор в eppc стиле c целью Finder на удаленном компьютере. Он включает в себя имя пользователя и пароль, так что проверка подлинности не требуется.

Если опустить пароль ( pwd ) в предыдущем сценарии, вы будете иметь запрос на аутентификацию при запуске сценария.

Отладка сценариев AppleScript

AppleScript не включает в себя встроенный отладчик, но он дает несколько простых механизмов для отладки сценариев или простошо наблюддения, за тем, как они работают.

Обратная связь от ваших сценариев

Вы можете вставлять различные заявления в сценарий, чтобы указать текущее местоположение и другую информацию. В простейшем случае, вы можете вставить команду звукового сигнала интересующем Вас месте:

Команда display dialog может отображать информацию о происходящем в сценарии, и, как точки останова, она останавливает выполнение, пока вы не закроете (или до истечения времени, в зависимости от передаваемых параметров). Следующий пример отображает текущее местоположение сценария и значение переменной:

Команда say может привлечь ваше внимание, говоря заданный текст. В следующем примере, currentClient текстовый объект, который хранит имя клиента:

Логинг

Script Editor может отобразить журнал событий компании Apple, которые отправляются во время выполнения скрипта. В настройках редактора сценариев, вы можете также выбрать, сохранять историю последних результатов или журнал событий.

Кроме того, вы можете вставить операторы log в сценарий. Вывод log показан в окне сценария в панели журнал событий, и в истории окна Журнала событий, если он открыт.

Следующий простой пример записывает текущие слово в repeat with loopVariable (in list) заявление

Ниже показано, как слова появляются в журнале, когда запускается скрипт:

Если вам нужны полнофункциональные возможности отладки, есть мощные, сторонние отладчики AppleScript.

Источник

Сказочный портал