главная каталог как купить контакты
Статьи >> Mac OS X Leopard >> Введение в AppleScript

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

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

Программы AppleScript (называемые сценариями, или скриптами) можно считать программными роботами. Простой сценарий AppleScript может выполнять какие-то повседневные задачи вроде создания резервной копии папки Documents. Более сложный сценарий может занимать несколько страниц. В профессиональных издательствах, где сценарии AppleScript наиболее популярны, сценарий может подключиться по Интернету к жесткому диску фотографа, получить фотографию из указанной папки, выполнить цветокоррекцию в Photoshop, вставить результат в указанный документ верстки, распечатать черновой макет, отправить уведомление по электронной почте редактору – и все это выполняется автоматически.

Даже не зная об этом, пользователь постоянно применяет базовую технологию AppleScript. Многочисленные компоненты Мака за кадром общаются посредством событий Apple Events, т. е. сообщений, передающих инструкции или данные от программы к программе. Если к псевдониму применяется команда Show Original (Показать оригинал) или к файлу (папке) – команда Get Info (Свойства), то событие Apple Event подскажет Finder, как следует откликнуться на это.

AppleScript в ряде отношений превосходит Automator, не в последнюю очередь – изза своей мощи. И еще: AppleScript – столь глубокая тема, что ему следовало бы посвятить отдельную книгу. Эта глава – всего лишь аппетитная закуска: книга типа «AppleScript: основное руководство» была бы обедом из семи блюд.

Совет Можно загрузить целую главу об AppleScript – появившуюся в предыдущем издании этой книги – со страницы Missing CD на сайте www.missingmanuals.com.

Меню сценариев   К оглавлению страницы

Для того чтобы вкусить плодов этой технологии, необязательно создавать сценарии AppleScript. В состав Mac OS X входит несколько десятков готовых сценариев, которые действительно полезны, а чтобы выполнить любой из них, достаточно выбрать его имя в меню. Такое «воспроизведение» сценария AppleScript требует ровно столько же технических навыков, сколько нажатие кнопки в лифте.

Опробовать какие-то из этих классных начальных сценариев можно, если добавить меню сценариев в строку меню (рис. 7.16, справа).

В меню сценариев есть 16 готовых категорий, объединяющих около 100 сценариев; чтобы запустить сценарий, просто выберите его имя. Вот перечень наиболее полезных и интересных сценариев.

Рис. 7.16. Слева: Сценарии, включенные в Leopard, сгруппированы по категориям.

Справа: Чтобы появилось меню сценариев, откройте Applications> AppleScript>Apple-Script Utility; установите флажок Show Script Menu in menu bar (Показывать меню скриптов в строке меню). Программа AppleScript Utility держит все настройки AppleScript в одном месте.


Совет Если во время выбора имени сценария в меню нажата клавиша Shift, Mac OS X перенесет вас прямо туда, где этот сценарий находится в Finder (например, в папку Home>Library>Scripts). Более того, если при выборе имени нажать клавишу Option, сценарий откроется в Script Editor, где его можно изучить или отредактировать.

Address Book Scripts   К оглавлению страницы

Это подменю содержит только сценарий Import Addresses, предназначенный для копирования в программу Address Book имен и адресов из Entourage, Outlook Express, Palm Desktop, Eudora, Claris Emailer или Netscape. Если у вас много друзей, воспользуйтесь этим сценарием, и тогда вам не придется заново вводить все их имена, номера телефонов и почтовые адреса. (Сопутствующая подпапка Address Importers предлагает сценарии для импорта из трех конкретных программ.)

Basics   К оглавлению страницы

Подменю Basics содержит три маленьких удобных сценария, относящихся к AppleScript: AppleScript Help (открывает Help Viewer и ищет слово AppleScript); AppleScript Website (открывает веб-страницу AppleScript в вашем веб-броузере); Open Script Editor (открывает программу Script Editor, предназначенную для чтения и редактирования сценариев AppleScript).

ColorSync   К оглавлению страницы

В этой папке находится группа сценариев ColorSync типа droplet (такой сценарий запускается, если вы перетаскиваете что-либо на его пиктограмму), представляющих интерес для художников, дизайнеров веб-сайтов, издателей и т. д.

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

Другие действуют немедленно; например, сценарий Mimic PC monitor настраивает цвета экрана так, чтобы они близко соответствовали немного отличающимся оттенкам на мониторе компьютера сWindows. Это очень удобно, если вы работаете над

КУРСЫ ОПЫТНЫХ ПОЛЬЗОВАТЕЛЕЙ
Тайны меню скриптов
В меню скриптов отражается содержимое двух разных папок Scripts: одна из них – это Home>Library>Scripts, а другая находится в главной папке Library. Те сценарии, которые взяты из вашей личной папки, в меню сценариев отделены пунктирной линией.

Эти сценарии можно не только запускать. Они также идеальны для того, чтобы открыть их в редакторе Script Editor (просто двойным щелчком) и проанализировать строка за строкой, как они работают. Разобравшись в синтаксисе, вы можете копировать фрагменты кода и, изменив, использовать в своих сценариях. (Script Editor – это программа, находящаяся в папке Applications> AppleScript, с помощью которой можно создавать собственные сценарии.)



фотографией или веб-страницей и хотите узнать, как они будут выглядеть в глазах непросвещенных масс. (Чтобы восстановить исходные цвета, зайдите на вкладку Color (Цвет) пульта Display (Мониоры) в окне System Preferences (Системные настройки).)

Finder Scripts   К оглавлению страницы

Все эти сценарии относятся к работе в Finder – скажем, к манипуляциям с файлами и окнами. Вот наиболее полезные из них:

• Add to File Names, Add to Folder Names. Эти сценарии прикрепляют префикс или суффикс к имени каждого файла или папки в переднем (активном) окне Finder (или, если нет открытых окон, на рабочем столе). С помощью этих сценариев можно к именам всех файлов некоторой папки добавить слово «черновой» или «окончательный», или «старый».

• Replace Text in Item Names позволяет выполнить поиск с заменой в именах файлов, папок или тех и других сразу. Если один издатель отклонил предлагаемую вами книгу из 45 глав, с помощью этого сценария можно переименовать все 45 глав: скажем, была «История ковриков для мыши – предложение для Random House, глава 1», а стала «История ковриков для мыши – предложение для Simon & Schuster, глава 1».

• Trim File Names, Trim Folder Names. Если вы ошиблись, когда запускали сценарий Add to File Names, то всегда сможете все исправить с помощью Trim File Names. Этот сценарий удаляет расширения файлов, суффиксы или префиксы по выбору пользователя.

Допустим, вы только что создали сразу несколько новых папок. Mac OS X дает таким папкам имена «untitled folder», «untitled folder 2» и т. д. Но что если вас больше устраивают имена «folder 1», «folder 2» и т. д.? Запустите сценарий Trim Folder Names; в диалоговом окне наберите untitled и нажмите кнопку OK.

Folder Actions   К оглавлению страницы

Едва ли вы будете активно пользоваться сценариями Folder Actions (Действия папки), поскольку точно такой же доступ к операциям над папками предоставляет Control-щелчок на папке (или внутри ее окна)

Font Book   К оглавлению страницы

Эти сценарии демонстрируют, каким образом можно автоматизировать некоторые задачи, связанные со шрифтами.

FontSync Scripts   К оглавлению страницы

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

Идея FontSync в том, чтобы заранее уведомить пользователя о возможных нестыковках. Сценарий Create FontSync Profile за несколько минут создает файл профиля FontSync. Этот документ содержит ошеломляющее количество информации о дизайне, разрядке и завитушках всех шрифтов, установленных в системе. В типографии такой документ можно обработать дополнительным сценарием Match FontSync Profile. Он скрупулезно выявит различия шрифтов на Маке пользователя и машинах типографии.

Разумеется, технология эта неявно предполагает слишком многое: что в типографии установлены компьютеры Макинтош, что там умеют обращаться с FontSync, и еще – что пользователь не забудет предварительно создать и передать в типографию профиль FontSync.

iChat   К оглавлению страницы

iChat подвергся в 10.5 существенной переработке – Apple добавила массу интересных (хотя иногда бесполезных) функций. В том числе стало возможным запускать в качестве сигналов сценарии AppleScripts, когда происходит некое событие, связанное с вашими контактами. Например, можно автоматически принимать приглашения в чат от отдельных контактов или даже отвечать им заранее заготовленным приветствием. Можно даже управлять воспроизведением музыки на одном Маке, вводя команды в окно iChat другого Мака, находящегося у вас дома. Детали в главе 21.

Info Scripts   К оглавлению страницы

Польза этих двух сценариев невелика. Current Date & Time отображает текущую дату и время в диалоговом окне, оснащенном кнопкой Clipboard (Буфер обмена) для копирования информации, готовой к вставке. Font Sampler выводит страницу с перечнем шрифтов (названия которых записаны в сценарии), устанавливающихся с Mac OS X. (Сценарий стал менее полезен, поскольку в Font Book появились аналогичные встроенные команды печати.)

Internet Services   К оглавлению страницы

Два сценария в этом меню заслуживают особого упоминания. Current Temperature by Zipcode показывает, какая температура за окном – по Фаренгейту и по Цельсию. Это лишний повод весь день не выходить из дому.

Stock Quote получает котировки акций выбранной компании с задержкой на 20 минут. Не так здорово, как получение котировок в реальном времени, но зато бесплатно.

Mail Scripts   К оглавлению страницы

Большинство сценариев в этом подменю решает некоторую конкретную задачу типа подсчета писем в ваших электронных почтовых ящиках или настройки новой учетной записи. Забавнее всех, конечно, сценарий Crazy Message Text (рис. 7.17).

Navigation Scripts   К оглавлению страницы

Сценарии из этой папки позволяют вам перейти в специальные папки Finder – прямо из меню, из любой программы. Если папке, которую нужно открыть, не назначен свой сценарий, выберите ее из списка в сценарии Open Special Folder.

Совет Те, кого не смущает необходимость редактировать этот сценарий с помощью Script Editor, могут изменить его таким образом, чтобы он позволял выбирать и открывать больше одной папки одновременно (посредством, скажем, сочетания -щелчок). Надо лишь набрать текст multiple selections allowed true сразу после слов Choose folder to open: (в конце строки, расположенной примерно в начале второй трети сценария). Не забудьте сохранить изменения.

Рис. 7.17. Вверху: Введите свой текст в диалоговом окне Crazy Message Text. Щелкнув по кнопке Set Prefs, можно изменить диапазон размеров шрифтов.

Внизу: Щелкнув по кнопке Continue, вы получите случайным образом отформатированный текст, по которому невозможно определить почерк. С помощью этого сценария хорошо посылать электронные открытки, поздравления с днем рождения и требования выкупа (текст на рисунке: «Заплатите мне 10 миллионов или я поджарю вашего ребенка». – Примеч. пер.)


Printing Scripts   К оглавлению страницы

Эти сценарии должны продемонстрировать мощь AppleScript в области печати и создания документов PostScript и PDF.

Один из них, Print Window, закрывает давний пробел в Mac OS X. Он должен печатать текстовый список содержимого любой выбранной папки. (Правда, он немного глючит.)

Script Editor Scripts   К оглавлению страницы

Как сообщает команда About these scripts, эти 48 готовых сценариев помогают писать более быстрые и точные сценарии, поскольку во фрагментах кода нет опечаток и синтаксических ошибок. Совершенствуясь, вы сможете добавлять сюда собственные сценарии с фрагментами кода, ориентированного на те сценарии, которые вы обычно пишете, чтобы сделать свою работу еще более эффективной. (Создавая сценарий в Script Editor, вы вставляете эти фрагменты кода в текст с помощью комбинации Control-щелчок и выбора в меню быстрого доступа.)

UI Element Scripts   К оглавлению страницы

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

Примечание Это средство, называемое сценариями интерфейса пользователя (UI, user-interface), будет действовать только после того, как вы откроете пульт Universal Access (Универсальный доступ) программы System Preferences (Системные настройки) и установите флажок Enable access for assistive devices (Разрешить доступ для вспомогательных устройств).

Нет смысла запускать сценарии из подменю UI Element Scripts в том виде, как они есть: это лишь образцы, демонстрирующие правильный синтаксис.

URLs   К оглавлению страницы

Этот последний набор сценариев обеспечивает быстрый доступ к некоторым популярным веб-сайтам. Исключение составляет сценарий Download Weather Map, который загружает текущую карту погоды континентальной части Соединенных Штатов, сохраняет ее на рабочем столе в файле weathermap.jpg, а затем открывает в Preview.

Совет Можно добавлять в меню сценарии, файлы и даже интернет-адреса, после чего легко запускать их все из панели меню. Все, что вы перетащите в папку Library>Scripts, автоматически появится в меню сценариев.

С другой стороны, если вы станете добавлять в меню Script массу своих пунктов, удобнее будет убрать из него образцы от Apple. Нет проблем. Откройте AppleScript Utility и сбросьте флажок Show Computer scripts.


Работа с готовыми сценариями AppleScript   К оглавлению страницы

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

Сначала, конечно, нужно открыть сценарий. Для этого проще всего открыть меню сценариев, выбрать нужную категорию и сделать Option-щелчок по имени нужного сценария.

Изучение AppleScript можно начать с просмотра простого сценария. Откройте, например, сценарий New Application Window (В категории Navigation Scripts), щелкнув по его имени при нажатой клавише Option. В результате Script Editor откроет файл в новом окне (рис. 7.18).

Вот как работает этот сценарий:

Рис. 7.18. Если вы не видели раньше AppleScript, то удивитесь, насколько просто он выглядит. Как можно догадаться по командам, этот сценарий просто открывает папку Applications в Finder.


• tell application «Finder» сообщает Mac OS X, какая программа должна выполнить следующие команды.

• activate выводит Finder на передний план – как если бы вы щелкнули по его пиктограмме в Dock.

• open folder «Applications» of the startup disk дает Finder команду открыть новое окно, отображающее папку Applications главного жесткого диска.

• end tell приказывает Finder заняться своими делами и не обращать внимания на дальнейшие команды вашего сценария.

Чтобы протестировать сценарий, щелкните по кнопке Run или нажмите -R.

Совет Можно отредактировать этот сценарий так, чтобы он лучше подходил к вашим потребностям. Попробуйте, например, заменить «Applications» на «Users», чтобы сценарий открывал папку Users.

Создание собственных сценариев AppleScript   К оглавлению страницы

Mac OS X поставляется с десятками программ – каких только среди них нет! Ладно, кое-чего нет – метронома, например. Как же вы собираетесь играть на пианино в ровном ритме, не слыша ритмичных щелчков, издаваемых вашим Маком? Конечно, в крайнем случае поможет метроном GarageBand, но это пальба из пушки по воробьям.

Вместо этого можно использовать AppleScript. Откройте новый документ в Script Editor (File (Файл)>New (Новый), или -N) и напечатайте следующее:

display dialog "Welcome to the AppleScript Metronome"

set bpm to the text returned of (display dialog ¬

"How many beats per minute?" default answer 60)

set pauseBetweenBeeps to (60 / bpm)

repeat

beep

delay pauseBetweenBeeps

end repeat


Примечание Печатать символ ¬ не нужно. Так программисты сообщают: «Это должно быть на одной строке, но не хватило ширины страницы».

При выполнении этого сценария появляется диалоговое окно с вопросом о том, сколько ударов в минуту должен отсчитывать метроном. Введенное вами число (например, 120) сохраняется в переменной – временном хранилище внутри сценария, которое названо bpm.

Затем сценарий рассчитывает величину паузы между сигналами и записывает эту долю секунды в переменную pauseBetweenBeeps. Если вы сообщили сценарию, что нужно издавать звуковой сигнал, например, 120 раз в минуту, то в pauseBetweenBeeps будет записано значение 0.5, потому что между отсчетами должна быть пауза, равная половине секунды.

Наконец, сценарий создает бесконечный цикл: сигнал, пауза заданной длительности и затем повтор.

Щелкните по кнопке Run, чтобы протестировать свой сценарий, а когда вдоволь наслушаетесь звуков, щелкните по кнопке Stop.

МОИ ЛЮБИМЫЕ ПРИЕМЫ
Вложения с рабочего стола одним щелчком
Вот маленький трюк с Automator, который может оказаться спасительным для каждого, кому часто требуется посылать документы электронной почтой. (Он моделирует весьма удобную команду Send To (Отправить), имеющуюся в меню быстрого доступа Windows-машин.)

Создайте в Automator процесс всего из двух шагов: Get Selected Finder Items (в категории Finder) и New Mail Message (в категории Mail).

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

Теперь выберите File (Файл)>Save As Plug-in (Сохранить как модуль). Назовите процесс Email This (Отправить по Email) или как захотите.

С этого момента можно отправить документ из Finder, щелкнув по нему при нажатой клавише Control и выбрав в появившемся меню Automator>Email This.

Победа! Mac OS X запускает Mail и создает исходящее сообщение, к которому уже прикреплен файл.

Бесплатный совет: если между этими двумя действиями вставить еще одно Create Archive action (из категории Finder), то ваша команда меню еще и сожмет файл (или папку) в .zip-файл перед тем, как отправить его по почте!



Совет Еще круче будет, если выставить в системных настройках флажок System Preferences (Системные настройки)>Universal Access (Универсальный доступ)>Hearing (Слух)>Flash the screen when an alert sound occurs (Вспышка экрана при звуке предупреждения). Теперь при работе вашего сценария вместе со звуком будет вспыхивать экран. Если вы записываете музыку, заглушите свой Мак: у вас будет визуальный метроном, а звуковой сигнал слышен не будет.

Сравнение AppleScript и Automator   К оглавлению страницы

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

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

Automator годится для простых задач. Если же для автоматизации Мака вам потребуется AppleScript, не отчаивайтесь. Вы беретесь за действительно мощный инструмент. (Можно даже объединить их и встраивать сценарии AppleScripts в процессы Automator посредством действия Run AppleScript.)

Успехов в автоматизации!



Created by "Design Dream Bryansk" (DENWER) 2011