эпл скрипт библиотека на русском языке
Applescript: язык автоматизации для macOS
AppleScript — скриптовый язык, который используется для управления системой, приложениями и файлами в Mac OS X. Наиболее общий принцип применения следующий: открыть приложение и передать ему набор инструкций для выполнения. Причем это не обязательно приложения из стандартного комплекта поставки операционки, многие сторонние приложения также предоставляют API для обращения к ним через AppleScript.
Для редактирования и запуска скриптов есть небольшой редактор, который находится в Application > Utilites > AppleScript Edtior. Редактор довольно минималистичный и не имеет богатых возможностей, но для написания небольших скриптов его обычно оказывается вполне достаточно. Условно его можно разделить на две части: в первой пишется непосредственно сам код, а в нижней части, показывается результат выполнения твоих трудов. Если вдруг возникнет необходимость сделать более или менее серьезный проект, то удобнее будет воспользоваться какой-нибудь сторонней разработкой, например Script Debugger.
Applescript имеет очень простой синтаксис, который был максимально приближен к обычному английскому языку, давай быстро пробежимся по основным операторам, чтобы понимать, как нам выполнять самые базовые вещи.
Чтобы задать переменную нужно воспользоваться оператором set. Делается это так:
Имя переменной не должно совпадать с зарезервированными словами (beep, say и т.д.), а также нельзя начинать имя переменной с цифры.
Условия задаются при помощи оператора if, как и в других языках:
Оператор say произносит переданный ему текст. Вместо «is» можно писать привычный знак равенства.
Задать цикл можно оператором repeat. В самом простом случае достаточно написать:
Этот цикл 2 раза воспроизведет стандартный системный звук. Если нужны итерационные циклы, то их можно задать используя until или while, например:
Арифметический цикл можно задать при помощи with таким образом:
Я думаю, понятно, что этот код будет произносить числа от 1 до 20 с шагом 2. Сейчас я быстро прошелся по основным «школьным» азам, чтобы было понятно что это за язык и с чем его едят. Как видишь, разработчики старались делать его таким, чтобы пользователи с разным уровнем подготовки могли «говорить» с компьютером практически человеческим языком. Я не буду подробно останавливаться на всех особенностях синтаксиса, если возникнут вопросы, ты всегда сможешь найти ответы в документации на сайте Apple.
Диалоги с пользователем
AppleScript не был бы так интересен, если бы не возможность легко создавать различные диалоговые окна, что дает нам возможность сделать наши скрипты более user-friendly.
Давай начнем с вызова стандартного системного диалога выбора файла. Делается это при помощи команды choose file.
В данном примере, будет вызван диалог выбора файла в котором включена фильтрация по типу (pdf или mobi) и разрешен выбор нескольких файлов. Если ты выполнишь этот код, то заметишь, что путь к файлу запишется, как alias:
Такой формат понимают стандартные приложения в Mac OS, но часто требуется использовать привычный нам POSIX-вид, делается это легко:
В переменную posixFilePath путь запишется в виде: /Users/UserName/file.pdf.
Аналогичным способом выбирается папка при помощи choose folder. Чтобы показать свое, кастомное сообщение пользователю, нужно воспользоваться командой:
Если не было передано никаких параметров, то будет выведен стандартный диалог с кнопками «ОК» и «Cancel». Тут стоит отметить, что после вывода диалога скрипт приостановит выполнение, и продолжит выполняться после нажатия «ОК», а вот после «Cancel» выполнение скрипта будет прервано с соответствующей ошибкой «User canceled.». Если такое поведение в твои планы не входит, то самое простое, — воспользоваться обработчиком ошибок:
Естественно, может такое случиться, что потребуются другие кнопки, кроме «Cancel» и «OK», и ты конечно же волен добавить любые, которые захочешь (но не больше трех). Делается это следующим образом:
А как быть, если требуется дать пользователю выбрать что-нибудь из списка? Легко:
В случае если нужно будет просто ввести какие-либо данные воспользуйся такой строчкой:
Диалоги с софтом
Например, очистим корзину:
Чтобы узнать какие действия доступны для того или иного приложения, в AppleScript имеется средство, которое называется Dictionary, оно доступно в меню File > Open dictionary.
Также имеется возможность передачи команд на удаленный компьютер. Для начала, нужно включить опцию Remote Apple Events на машине, где требуется выполнить какие-либо действия в System Preferences > Sharing. Теперь, чтобы выполнить код на другой машине, нужно использовать следующую конструкцию:
Будь готов, что для выполнения действия на удаленной машине скрипт запросит логин и пароль, так что если ты потираешь руки, чтобы творить беспредел, придется придумать что-то еще :).
Командная строка
После прочтения предыдущих двух разделов у тебя наверняка должна была зародиться мысль о том, что неплохо было бы соединить удобство AppleScript с мощью shell-скриптов. Первое, что приходит в голову, — воспользоваться знаниями из предыдущего раздела и скормить необходимые команды приложению Terminal.
Такой способ имеет право на существование и в отдельных случаях он может быть даже предпочтительнее, но есть другой вариант: воспользоваться командой do shell script, при помощи которой можно также выполнять консольные команды, что гораздо более удобно, так как дает возможность записать результат выполнения команды в переменную и оперировать с ней дальше средствами AppleScript.
Использование AppleScript для автоматизации задач в iWork для Mac
AppleScript используется для автоматизации часто выполняемых задач в программах iWork для Mac с целью повышения производительности и сокращения количества ошибок.
В программах iWork для Mac улучшена поддержка AppleScript для Numbers 3.1 и более поздних версий, Pages 5.2 и более поздних версий и Keynote 6.2 и более поздних версий.
Словарь AppleScript содержит доступные команды AppleScript для программ Pages, Numbers и Keynote. Чтобы просмотреть словарь, выполните следующие действия:
Дополнительная информация
Дополнительные сведения об использовании AppleScript в программах iWork для Mac можно найти на сторонних веб-сайтах, таких как Mac OS X Automation (Автоматизация Mac OS X) и iWork Automation (Автоматизация iWork).
Сведения об использовании функции «Рассылка писем» с помощью AppleScript в Pages 5.5 и более поздней версии или Numbers 3.5 и более поздней версии см. в разделе, посвященном функции «Рассылка писем», на веб-сайте iWork Automation.
Информация о продуктах, произведенных не компанией Apple, или о независимых веб-сайтах, неподконтрольных и не тестируемых компанией Apple, не носит рекомендательного или одобрительного характера. Компания Apple не несет никакой ответственности за выбор, функциональность и использование веб-сайтов или продукции сторонних производителей. Компания Apple также не несет ответственности за точность или достоверность данных, размещенных на веб-сайтах сторонних производителей. Обратитесь к поставщику за дополнительной информацией.
Создание программ для 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 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
Scrtipting.sdef
Добавим к проекту файл Scripting.sdef следующего содержания:
Итак, из AppleScript’а у нас доступно одно свойство — myprop. Осталось написать ObjC-код, который будет обрабатывать чтение данного свойства из скриптов. Для этого нужно создать категорию NSApplication, поскольку именно этот класс мы выбрали в качестве получателя сообщений от скриптов.
Eсли мы теперь из AppleScript обратимся к свойствам нашего приложения, то увидим среди них свое свойство и его значение:
tell application «Scripting»
properties
end tell
Заключение
Конечно, описать здесь все возможности AppleScript и его взаимодействия с Cocoa-приложениями невозможно. Да это и не нужно — для этого есть мануалы. А мы со своей стороны продолжим цикл статей о кодинге под эппловские платформы и расскажем тебе еще много нового и интересного.
Справочник по командам AppleScript
Команды, описанные в этом разделе, доступны для любого сценария, они либо встроены в язык AppleScript или добавлены к нему через стандартные дополнения сценариев.
Команда | Описание |
---|---|
AppleScript suite | |
activate | Переносит приложение на передний план, и открывает его, если оно находится на локальном компьютере и не запущено. |
log | В Script Editor, отображает значение в окне журнала истории событий или в панели журнала событий окна сценария. |
Команды буфера обмена | |
clipboard info | Возвращает сведения о буфере обмена. |
set the clipboard to | Помещает данные в буфер обмена. |
the clipboard | Возвращает содержимое буфера обмена. |
Команды для файлов | |
info for | Возвращает информацию для файла или папки. |
list disks | Возвращает список текущих смонтированных томов. |
localized string | Возвращает локализованную строку для указанного ключа. |
offset | Поиск одного фрагмента текста внутри другого. |
summarize | Суммирует указанный текст или текстовый файл. |
Взаимодействие с пользователем | |
beep | Сигналы один или более раз. |
choose application | Позволяет пользователю выбрать программу. |
choose color | Позволяет пользователю выбрать цвет. |
choose file | Позволяет пользователю выбрать файл. |
choose file name | Позволяет пользователю указать новую ссылку на файл. |
choose folder | Позволяет пользователю выбрать папку. |
choose from list | Позволяет пользователю выбрать один или несколько элементов из списка. |
choose remote application | Позволяет пользователю выбрать запущенное приложение на удаленной машине. |
choose URL | Позволяет пользователю указать URL. |
delay | Останавливается на определенное количество времени. |
display alert | Выводит предупреждение. |
display dialog | Отображает диалоговое окно, при необходимости запрашивает пользовательский ввод. |
say | Говорит указанный текст. |
activate
Переносит приложение на передний план, запустив его в случае необходимости.
Аргументы:
Возвращаемое значение:
Рассмотрение:
ASCII character
Возвращает символ с указанным номером.
ASCII character integer
Аргументы:
Возвращаемое значение:
Вызывает ошибку если integer находится вне диапазона.
ASCII number
Возвращает число, связанное с указанным символом.
Аргументы:
, содержащий хотя бы один символ. Если содержит более одного символа, только первый из них используется.
Возвращаемое значение:
Рассмотрение:
Воспроизведение звуковой системой оповещения один или несколько раз.
Аргументы:
Возвращаемое значение:
choose application
Позволяет пользователю выбрать программу.
choose application [with title] [with prompt] [multiple selections allowed] [as]
Аргументы:
Возвращаемое значение:
Сигнализирует об ошибке «user canceled», если пользователь отменяет диалог.
Рассмотрение:
choose color
Позволяет пользователю выбрать цвет из диалога выбора цвета.
choose color [default color]
Аргументы:
default color | Цвет, который будет показан, когда диалоговое окно выбора цвета открывается в первый раз. Значение по умолчанию <0, 0, 0>: black |
Возвращаемое значение:
Сигнализирует об ошибке «user canceled», если пользователь отменяет диалог.
choose file
Позволяет пользователю выбрать файл.
choose file [with prompt] [of type] [default location] [ invisibles] [multiple selections allowed] [showing package contents]
Аргументы:
Возвращаемое значение:
Сигнализирует об ошибке «user canceled», если пользователь отменяет диалог.
choose file name
Позволяет пользователю указать новое имя файла и расположение. Это не создает файл, а скорее возвращает описатель файла, который можно использовать для создания файла.
choose file name [with prompt] [default name] [default location]
Аргументы:
Возвращаемое значение:
Сигнализирует об ошибке «user canceled», если пользователь отменяет диалог.
Рассмотрение:
choose folder
Позволяет пользователю выбрать каталог, например, папку или диск.
choose folder [with prompt] [default location] [ invisibles] [multiple selections allowed] [showing package contents]
Аргументы:
Возвращаемое значение:
Сигнализирует об ошибке «user canceled», если пользователь отменяет диалог.
choose from list
Позволяет пользователю выбирать элементы из списка.
choose from list [with title] [with prompt] [default items] [OK button name] [cancel button name] [multiple selections allowed] [empty selection allowed]
Аргументы:
Возвращаемое значение:
Рассмотрение:
choose remote application
Позволяет пользователю выбрать запущенные приложения на удаленной машине.
choose remote application [with title] [with prompt]
Аргументы:
Возвращаемое значение:
Сигнализирует об ошибке «user canceled», если пользователь отменяет диалог.
choose URL
Позволяет пользователю указать URL.
choose URL [showing] [editable URL]
Аргументы:
Возвращаемое значение:
Сигнализирует об ошибке «user canceled», если пользователь отменяет диалог.
clipboard info
Возвращает информацию о текущем содержимом буфера обмена.
clipboard info [ for]
Аргументы:
Возвращаемое значение:
close access
close access fileSpecifier
Аргументы:
Рассмотрение:
Копии одного или более значений, сохраняя результат в одной или более переменных. Эта команда копирует только AppleScript значения, а не определенные приложением значения объектов.
copy expression to variablePattern
Аргументы:
expression | Выражение, значение которого должно быть скопировано. |
variablePattern | Имя переменной или структуры переменных, в которую сохранится значение или шаблон значений. Шаблоны могут быть списками или записями. |
Возвращаемое значение:
Рассмотрение:
count
Подсчет количества элементов в другом объекте.
(count | number of) expression
Аргументы:
Возвращаемое значение:
current date
Возвращает текущую дату и время.
Возвращаемое значение:
delay
Ожидает заданное количество секунд.
Аргументы:
Рассмотрение:
display alert
Отображение стандартизированного предупреждения содержащего сообщение, объяснение, и от одной до трех кнопок.
display alert text [message text] [as alertType] [buttons list] [default button buttonSpecifier] [cancel button buttonSpecifier] [giving up after integer]
Аргументы:
text | Текст предупреждения, которое отображается подчеркнутым шрифтом системы. |
message text | Поясняющее сообщение, которое выводится мелким шрифтом системы, ниже текста предупреждения. |
as alertType | Тип предупреждениедля отображения. Вы можете указать один из следующих типов предупреждения: |
informational : стандартный диалог предупреждения (значение по умолчанию).
warning : диалог предупреждения с иконкой Warning.
critical : В настоящее время такой же, как стандартный диалог предупреждения.
Если указать одно имя, кнопка с таким именем служит по умолчанию и отображается в правой стороне диалога предупреждения. Если указать два имени, две кнопки отображается справа, со второй, служащей в качестве кнопки по умолчанию. Если указать три имени, первое отображается слева, а следующие две справа, как и в случае с двумя кнопками.
Значение по умолчанию <"OK">. Одна кнопка «OK», которая является кнопкой по умолчанию.
Значение по умолчанию: Самая правая кнопка.
Возвращаемое значение:
Сигнализирует об ошибке «user canceled», если пользователь нажимает заданную кнопку отмены диалога.
display dialog
Отображает диалоговое окно, содержащее сообщение, от одной до трех кнопок и, необязательно, значок и поле, в которое пользователь может вводить текст.
display dialog text [default answer text] [hidden answer boolean] [buttons list] [default button labelSpecifier] [cancel button labelSpecifier] [with title text] [with icon resourceSpecifier] [with icon iconTypeSpecifier] [with icon fileSpecifier] [giving up after integer]
Аргументы:
Значение по умолчанию:
Если вы не указали ни одной кнопки, по умолчанию, Отмена и ОК выводятся, с кнопкой ОК, как кнопкой по умолчанию.
Если вы определите кнопки, то нет кнопки по умолчанию или кнопки отмены, если вы не используете следующие параметры, чтобы указывать их.
Возвращаемое значение:
Если диалог не позволяет ввод текста, text returned отсутствует в возвращаемой записи.
Сигнализирует об ошибке «user canceled», если пользователь отменяет диалог.
Если display dialog указывает giving up after значение и диалог закрыт по тайм-ауту, прежде чем пользователь нажимает кнопку, он возвращает запись о том, что ни одна кнопка не была возвращена и команду отказа:
do shell script
Выполняет сценарий оболочки sh оболочки.
do shell script text [as class] [administrator privileges boolean] [user name text] [password text] [altering line endings boolean]
Аргументы:
text | Скрипт для выполнения. |
as class | Задает нужный тип результата. Число байтов, возвращаемых командой будет интерпретироваться как из указанного класса. |
Значение по умолчанию: «class utf8» UTF-8 текст. Если отсутствует в качестве параметра, а выход не принимает UTF-8, выход будет интерпретироваться как текст в основной кодировке.
Возвращаемое значение:
Сигнализирует об ошибке, если оболочка выходит из сценария с ненулевым статусом. Номером ошибки будет статус, сообщение об ошибке будет содержимым stderr.
Оценивает спецификатор объекта и возвращает результат.
Аргументы:
specifier | Объект спецификатор для оценки. Если спецификатор относится к определенному приложением объекту, get команда обращается к этому приложению. Технически, все значения, чтобы получить ответ, но и для всех значений, отличных от объекта спецификатора get тождественная операция: в результате которой точно такое же значение. |
as class | Необходимый класс для возвращаемых данных. Если данные не того типа, AppleScript пытается привести их к этому типу. |
Значение по умолчанию: Нет, какое-либо приведение не выполняется.
Возвращаемое значение:
get eof
Возвращает длину файла в байтах.
get eof fileSpecifier
Аргументы:
Возвращаемое значение:
get volume settings
Возвращает настройки громкости звука выходного и входного сигнала.
get volume settings
Возвращаемое значение:
output volume (как integer ) : Громкость основного выхода.
input volume (как integer ) : Громкость основного входа.
alert volume (как integer ) : Громкость сигнала предупреждения. 100 для этого параметра означает «так громко, как основная громкость».
info for
Получает сведения о файлах или папках.
info for fileSpecifier [size boolean]
Аргументы:
(alias | file) | Псевдоним или файловый спецификатор для файла или папки. |
size boolean | Возвращает размер файла или папки? Для файла, его «размером» является его длина в байтах; для папки, сумма размеров всех файлов, содержащихся в папке. |
Возвращаемое значение:
launch
Аргументы:
Рассмотрение:
list disks
Возвращает имена смонтированы в данный момент томов.
Возвращаемое значение:
Рассмотрение:
list folder
Возвращает имена элементов в указанной папке.
list folder fileSpecifier [invisibles boolean]
Аргументы:
Возвращаемое значение:
Рассмотрение:
load script
load script fileSpecifier
Аргументы:
Возвращаемое значение:
Рассмотрение:
localized string
Возвращает локализованный текст для указанного ключа.
localized string text [from table text] [in bundle fileSpecifier]
Аргументы:
Возвращаемое значение:
В Script Editor, отображает значение в окне истории журнала событий или в панели журнала событий окна сценария.
Аргументы:
value | Значение отображается. Выражения вычисляются но объекты спецификаторы не вычесляются. Отображаемое значение заключено в блок комментариев символов, например, ( *window 1* ). Если вы не указать значение, журнал будет отображать только символы комментария: ( ** ). |
mount volume
Монтирует указанный сетевой том.
mount volume text [on server text] [in AppleTalk zone text] [as user name text] [with password text]
Аргументы:
text | Имя или URL-адрес (например, afp://server/volume/ ) тома для монтирования. |
on server text | Сервер, на котором находится том, пропускается, если URL путь в указывает параметр. |
in AppleTalk zone text | Зона AppleTalk, в которой находится сервер; пропускается, если предоставляется URL путем. |
as user name text | Имя, с которым войти в систему на сервере и опуcкается для гостевого доступа. |
with password text | Пароль для имени пользователя и опускаtncz для гостевого доступа. |
Рассмотрение:
offset
Поиск одного фрагмента текста внутри другого.
Аргументы:
of text | Исходный текст, чтобы найти позицию. |
in text | Целевой текст для поиска |
Возвращаемое значение:
Рассмотрение:
open for access
Открывает файл для чтения и записи.
open for access fileSpecifier [write permission boolean]
Аргументы:
(alias | file) | alias или file спецификатор, который определяет файл для открытия. Вы можете использовать псевдоним, если файл существует. |
write permission boolean | Должна запись в файл быть разрешена? |
write и set eof команды на этот файл потерпят неудачу с ошибкой.
Возвращаемое значение:
Рассмотрение:
Один файл может быть открыт более чем один раз, и, следовательно, иметь несколько различных дескрипторы файлов. Каждый дескриптор файла поддерживает свой собственный файловый указатель, и каждый должен быть закрыт отдельно. Если вы откроете более одного канала одновременно, имееющего право записи, поведение не определено.
Одним из них является производительность: если вы выполняете несколько операций с одним файлом, открытие и закрытие ее несколько раз может стать дорогим. Дешевле, явно открыть файл, сделать работу, а затем явно закрыть его.
Вторым является простота последовательных операций чтения и записи: потому что указатель файла отслеживает проход через файл, чтения или записи нескольких фрагментов данных из одного файла является простым делом. Чтобы сделать то же самое без использования указателя файла потребуется расчет размера данных самостоятельно, что даже может не представляться возможным в некоторых случаях.
open location
Открывает URL с соответствующей программой.
open location text [error reporting boolean]
Аргументы:
text | URL для открытия. |
error reporting boolean | Этот параметр существует только в силу исторических причин, она никогда больше не поддерживается. |
path to (application)
Возвращает местоположение указанного приложения.
path to [application] [as class]
Аргументы:
application | Приложение для поиска. Вы также можете использовать один из следующих идентификаторов: |
current application Приложение выполняющее сценарий, такое как редактор сценариев.
frontmost application переднее приложение.
it Приложение текущей цели.
Возвращаемое значение:
path to (folder)
Возвращает расположение указанной специальной папки.
path to folder constant [from domain constant] [as class] [folder creation boolean]
Аргументы:
folder constant | Специальная папка, для которой возвращается путь. Вы можете указать одну из следующих папок: |
Следующие папки также определены, но имеют смысл только при использовании с from Classic domain:
Возвращаемое значение:
path to resource
Возвращает местоположение указанного ресурса.
path to resource text [in bundle fileSpecifier] [in directory text]
Аргументы:
text | Имя запрашиваемого ресурса. |
in bundle (alias | file) | alias или file спецификатор, который определяет bundle пакет, содержащий ресурс. Значение по умолчанию: Текущее расслоение скрипта для работы с документами на основе сценария ( scptd пакет), в противном случае, текущее приложение. |
in directory text | Имя подкаталога в каталоге Resources в bundle пакете. |
Возвращаемое значение:
random number
Возвращает случайное число.
random number [from number] [to number] [with seed number]
Аргументы:
from number | Наименьшее число для возврата. Может быть отрицательным. Значение по умолчанию 0.0 |
to number | Наибольшее число для возврато. Может быть отрицательным. Значение по умолчанию 1.0. |
with seed integer | Первоначальное заполнение для генератора случайных чисел. Ранее известный с любым конкретным начальным значением, random number всегда будет генерировать ту же последовательность чисел. Это может быть полезно при тестировании рандомизированных алгоритмов: вы можете заставить его вести себя одинаково каждый раз. |
Возвращаемое значение:
Рассмотрение:
Генерируемые чисела только псевдослучайны, и не рассматриваются криптографически безопасными.
Читает данные из файла.
read fileSpecifier [from integer] [for integer] [to integer] [before text] [until text] [using delimiters text] [as class]
Аргументы:
Возвращаемое значение:
Рассмотрение:
read не может автоматически определять кодировку используемую для текстового файла. Если файл находится не в первичной кодировке, необходимо предоставить соответствующую в as параметре.
При чтении двоичных данных, read всегда использует большие с обратным порядком байтов. Это является проблемой, только, если вы читаете двоичные файлы, созданные другими приложениями.
round
Округляет число до целого.
round real [rounding roundingDirection]
Аргументы:
Возвращаемое значение:
Рассмотрение:
Выполняет run обработчик в указанной цели.
Аргументы:
runTarget script | script или application объект. Значение по умолчанию it (текущая цель). |
Возвращаемое значение:
Рассмотрение:
run script
Выполняет указанный сценарий или файл сценария.
run script scriptTextOrFileSpecifier [with parameters listOfParameters] [in text]
Аргументы:
Возвращаемое значение:
Говорит указанный текст.
say text [displaying text] [using text] [waiting until completion boolean] [saving to fileSpecifier]
Аргументы:
scripting components
Возвращает список имен всех имеющихся в настоящее время компонентов сценариев, таких как компоненты AppleScript.
Возвращаемое значение:
Рассмотрение:
Присваивает одно или более значений в одну или более переменных.
set variablePattern [to expression]
Аргументы:
variablePattern | Имя переменной или структуры переменных, в которой хранится значение или шаблон значений. Шаблоны могут быть списками или записями. |
to expression | Выражение, значение которого должно быть установлено. Может вычисляться в любой тип объекта или значения. |
Возвращаемое значение:
Рассмотрение:
set eof
Устанавливает длину файла в байтах.
set eof fileSpecifier to integer
Аргументы:
Возвращаемое значение:
set the clipboard to
Помещает данные в буфер обмена.
set the clipboard to anything
Аргументы:
Рассмотрение:
set volume
Установка звукового сигнала, выход, вход и громкости оповещений.
set volume [number] [output volume integer] [input volume integer] [alert volume integer] [output muted boolean]
Аргументы:
store script
Сохраняет объект script в файл.
store script script [in fileSpecifier] [replacing replacingConstant]
Аргументы:
summarize
Суммирует указанный текст или текстовый файл.
summarize textSpecifier [in integer]
Аргументы:
textSpecifier | text или alias на текстовый файл, для суммирования. |
in integer | Количество предложений желаемых проссумировать. |
Возвращаемое значение:
system attribute
Получить переменные среды или атрибуты этого компьютера.
system attribute [attribute]
Аргументы:
attribute | Атрибут для тестирования: либо Gestalt значение или имя переменной среды оболочки. (Gestalt менеджер и другие программные средства системы позволяют исследовать операционную среду. Вы должны знать об операционной среде, если ваше приложение использует возможности аппаратного или программного обеспечения, которое доступно не на всех компьютерах Macintosh.) |
Если этот атрибут не задан, system attribute вернет список имен всех в настоящее время определенных переменных окружения.
Возвращаемое значение:
Если указанный атрибут является переменной среды, значение этой переменной, или пустую строку («»), если он не определен.
Если атрибут не указан, список всех определенных переменных среды.
system info
Получает сведения о системе.
Возвращаемое значение:
the clipboard
Возвращает содержимое буфера обмена.
the clipboard [as class]
Аргументы:
Возвращаемое значение:
Рассмотрение:
time to GMT
Возвращает разницу между местным временем и GMT (Greenwich Mean Time) или Universal Time, в секундах.
Возвращаемое значение:
write
Записывает данные в указанный файл.
write anything to fileSpecifier [starting at integer] [for integer] [as class]
Аргументы:
Возвращаемое значение:
Сигнализирует об ошибке, если файл открыт без разрешения на запись, или если есть любая другая проблема, которая мешает записи в файл, например, нехватки места на диске.