О программе «Редактор скриптов» на компьютере Mac
Редактор скриптов позволяет создавать полезные скрипты, инструменты и даже полноценные программы. Скрипты можно использовать для выполнения повторяющихся заданий, для автоматизации сложных рабочих процессов, для контроля отдельных программ и всей системы в целом. Скрипты можно писать на разных языках, включая AppleScript, JavaScript for Automation, язык скриптов командной оболочки UNIX, а также некоторые другие языки скриптования.
В Редакторе скриптов можно создать, отредактировать, провести отладку и скомпилировать скрипт. Готовый скрипт можно сохранить как программу или дроплет.
Библиотека Редактора скриптов открывает доступ к словарю скриптования, элементы которого распознаются всеми программами, поддерживаемыми скрипты, и всеми дополнениями скриптов.
Дополнительную информацию о языке AppleScript Вы найдете в Учебном пособии по языку AppleScript..
Дополнительную информацию о JavaScript For Automation, см. в статье JavaScript for Automation.
Дополнительную информацию о языке AppleScript и Терминале можно найти в разделе Автоматизация задач в программе «Терминал» с помощью AppleScript.
Запуск скрипта в программе «Редактор скриптов» на компьютере Mac
Во время запуска скрипта Редактор проверяет скрипт на наличие ошибок, компилирует его и выполняет каждую команду. Код скрипта при этом можно дальше продолжать редактировать, то есть, Вы можете быстро внести необходимые изменения и запустить скрипт снова. В таком режиме очень удобно проверять результаты изменений, вносимых в код скрипта.
В программе «Редактор скриптов» на компьютере Mac для выполнения команд скрипта нажмите кнопку «Выполнить»
на панели инструментов или нажмите сочетание клавиш Command-R.
Для просмотра журнала действий и результатов в скрипте выберите «Окно» > «Журнал событий» перед запуском скрипта.
Создание программ для Mac OS X. Часть 3: Apple Script
В этой части я расскажу про еще одно интересное средство разработки приложений для Mac OS X — скриптового языка Apple Script.
Apple Script разрабатывался чтобы применяться конечными пользователями, а не программистами, и позволить им контролировать приложения и документы, с которыми они работают. Например, с помощью Apple Script можно открыть фотографию в редакторе изображений, обрезать до нужного размера, записать ссылку на фото в текстовый файл и т.п.
В отличии от того, как пользователь через GUI взаимодействует с приложением, например впечатывает информацию в текстовые поля приложения для работы с базами данных, AppleScript работает совсем иначе, скрипт использует внутреннюю объектную модель приложения, тем самым внося значения в саму базу данных. Это означает, что во время работы скрипта приложение даже не обязательно показывать. Естественно такая модель работы требует того, чтобы ваше приложение было написано с поддержкой Apple Script.
Каждое приложение, которое понимает Apple Script, публикует поддерживаемые комманды в Apple Event словаре, который используется, чтобы определить допустимые комманды.
Язык, очень похожий на натуральный
в подкасте Радио-Т ведущий bobuk говорил что скрипт, написанный на языке Apple Script читается как обычный английский текст. В принцие он прав, т.к. это и есть одна из основополагающих особеннойстей Apple Script.
Движок Apple Script комбинирует глаголы и существительные, чтобы выполнить действия. Например, чтобы напечатать документ, страницу из документа или опеределенный фрагмент, вместо вызова функций printPage, printDocument, printRange, мы берем глагол print и добавляем нужное существительное:
print page 1
print document 2
print pages 1 thru 5 of document 2
tell application «iTunes»
playpause
end tell
tell application «Microsoft Word» to quit
tell application «QuarkXPress»
tell document 1
tell page 2
tell text box 1
set word 5 to «Apple»
end tell
end tell
end tell
end tell
Использовать иерархичность можно следующим образом:
pixel 7 of row 3 of TIFF image «my bitmap»
set pix to 72
set answer to text returned of (display dialog «Enter in the number of inches» default answer «1»)
display dialog answer & «in = » & (answer * pix) & «px»
при исполнии покажет диалоговое окно с запросом ввода кол-ва дюймов, потом это значение конвертируется в пиксели и результат показывается в следующем окне.
Также скрипт можно сохранить чтобы в дальнейшем использовать как полноценное приложение. Обработчик события запуска должен находиться внутри следующей конструкции:
В принципе, его можно и не писать, тогда при запуске обработка скрипта начнется с первой строки в файле.
Если бросить на файл со скриптом пару других файлов, то при запуске будет использован следующий обработчик:
on open theItems
— что-нибудь делаем с этими самыми theItems
end open
Средстав для написания скриптов лежат в /Applications/AppleScript
В качестве редактора/интерпритатора исаользуется ScriptEditor.app
Чтобы открыть Apple Event словарь надо в меню Script Editor нажать File=> Open Dictionary, откроется окно со списком приложений
выбираем нужное(например iTunes) и клацаем OK. Открылось окно с описанием комманд для нужного нам приложения
А теперь напишем простенькое Cocoa приложение, с помощью которого можно контроллировать iTunes
Открываем XCode, File=>New Project, Cocoa Application => в Project Name пишем iTunes_Controller. Добавляем новый Objective-C class «controller». В файле controller.h пишем
interface controller: NSObject <
>
— (IBAction) nextClick:(id)sender;
— (IBAction) prevClick:(id)sender;
— (IBAction) pauseClick:(id)sender;
— (IBAction) playClick:(id)sender;
— (void) executeAppleScript:(NSString*)sctript;
end
В принципе, в этом коде ничего секретно-военного нету. Просто пишем класс, с помощью которого и будем контролировать iTunes. Функции *Click — это обработчики нажатия по соответствующим кнопочкам на форме. А executeAppleScript:(NSString*)sctript — функция, которая будет исполнять скрипт в параметре script.
А теперь клацаем по MainMenu.nib и попадаем в InterfaceBuilder. Добавляем в окно MainMenu.nib новый NSObject и назначем ему класс controller:
Затем разместим на форме четыре кнопки с надписями «next»,«play»,«pause»,«previous» и соеденим их с соотв. обработчиками из класса controller:
Сохраняем все и возвращаемся в XCode. В файле controller.m пишем следующее:
— (void) executeAppleScript:(NSString*)script <
try <
NSAppleScript *ascript = [[NSAppleScript alloc] initWithSource:script];
[ascript executeAndReturnError:nil];
[ascript release];
>
catch (NSException * e) <
NSLog(@«exception:%@»,e);
>
>
— (void) nextClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n next track \n end tell»];
>
— (void) prevClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n previous track \n end tell»];
>
— (void) playClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n play \n end tell»];
>
— (void) pauseClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n pause \n end tell»];
>
В принципе в этом коде ничего сложного тоже нет. Единственная интересная вещь — класс NSAppleScript, с помощью объекта которого и выполняем скрипт. Подробнее про NSAppleScript можно почитать здесь.
В принципе, я думаю, что этого достаточно чтобы получить общее представление о Apple Script и попробавть что-нибудь на нем написать.
Редактирование скриптов в Редакторе скриптов на компьютере Mac
Редактирование скриптов в Редакторе скриптов выполняется почти так же, как редактирование текстовых документов в текстовых редакторах.
Если скрипт был сохранен как компилированный, его можно открыть двойным нажатием на значок (скрипт откроется в Редакторе скриптов) и затем отредактировать.
Примечание. Если скрипт был сохранен как программа, двойное нажатие на значок вызывает запуск скрипта.
В окне Finder на компьютере Mac перетяните значок скрипта на значок или окно Редактора скриптов.
Также можно в Редакторе скриптов выбрать пункт меню «Файл» > «Открыть», а затем выбрать скрипт.
Вы можете копировать текст из другого документа или веб-сайта и вставлять его в Редактор скриптов. Можно также перетянуть выбранный текст из других программ или перетянуть текстовые вырезки из Finder в открытое окно Редактора скриптов.
Чтобы компилировать скрипт, нажмите «Компилировать» .
Во время компилирования Редактор скриптов добавляет в скрипт отступы, чтобы придать скрипту более структурированный вид. Кроме того, к разным элементам Редактор скриптов применяет разные стили.
В случае обнаружения ошибок компилирование прерывается, курсор останавливается в строке с ошибкой и появляется диалоговое окно с информацией об ошибке.