МакЦентр: Apple компьютеры, iPod, полиграфическое оборудование, новости, обзоры, новинки мира Mac
Макдильник [ 18 октября, 2006 г ]
Маленькие радости автоматизации

Однажды у меня сломался будильник в сотовом телефоне. И по всем известному закону это выяснилось только поздно вечером, а утром нужно было рано вставать. Я стал мысленно оглядывать квартиру на предмет замены, пока мой взгляд не уперся в компьютер. Действительно, зачем вообще нужны в наше время будильники, если у вас есть Macintosh, который помимо всех своих умений еще может и разбудить вас с утра. Справившись с задачей, я решил рассказать в этой статье, как, обладая минимальными навыками программирования, сделать из вашего мака суперпродвинутый будильник.

1. Просто разбудить.

Итак, суть задачи: заставить ваш мак в определенный момент времени выполнить какое-либо действие, сопровождаемое звуком, а лучше мелодией. Очевидно, что компьютер должен быть включен. Возможно, вы будете удивлены, но маки умеют сами включаться. Это свойство присуще им с еще незапамятных времен, задолго до появления Mac OS X.

Для того, чтобы настроить мак на определенное время включения, зайдите в System Preferences в панель Energy Saver, и нажмите кнопку Shedule... (расписание). Вам откроется диалог, в котором вы можете указать время включения, а также выключения компьютера. Обратите внимание, речь идет не только о выходе из "спящего режима", а именно о настоящем включении, как будто кто-то нажал кнопку power на вашем маке. Для удобства вы можете указать не только время, но и день недели. Или выбрать один из режимов: Every Day (каждый день), Weekdays (будни), Weekends (выходные). Я сделал настройки (показано на рисунке), и мой мак теперь будет включаться каждое утро в одно и то же время, кроме субботы и воскресенья. Как любезно с его стороны!

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

Когда-то давно, когда у меня еще был Power Macintosh 7100, я просто оставлял на ночь в маке музыкальный CD-диск, и, включаясь утром, мак автоматически запускал CD-player. Это не самое изящное решение, тем более, в наше mp3-время CD как-то не современно. Автоматически запустить iTunes и начать проигрывать определенный плэй-лист - вот это по-нашему!

Чтобы какое либо приложение запустилось при загрузке компьютера, достаточно добавить его в список Login Items, который вы обнаружите в панели Accounts из System Preferences. Обратите внимание, что ваш мак должен быть настроен на автоматический вход (login) в вашу учетную запись, иначе, загрузившись, машина остановится на запросе пароля, и все дальнейшие действия, будут произведены только после входа. Кроме того, если вы просто добавите iTunes в список Login Items, программа запустится, однако проигрывать никакую музыку не станет, а будет ждать дальнейших указаний. Значит, их должен кто-то дать! Такого управляющего iTunes нет, но мы можем легко его создать, если воспользуемся приложением Automator. Ниже я приведу инструкции создания простейшей программы, запускающей iTunes и заставляющей ее проигрывать определенную музыку.

1. Запустите Automator. Он должен находиться в папке Applicatons. Automator появился только в системе Mac OS X 10.4 Tiger, так что если у вас старая система, вам придется немного изучить Apple Script, чтобы создать что-то подобное. Здесь же мы обойдемся без единой строчки кода.

2. Запустившись, Automator создаст новый рабочий поток - workflow. Это и будет нашей программой.

3. В колонке Library, найдите и выберите iTunes, а в появившемся списке действий (Action) найдите действие Get Specified iTunes Items и перетащите его мышкой в главную часть окна (справа)

4. Нажав кнопку со знаком "+", выберите желаемый плэй-лист или песни.

5. Найдите среди списка действий (Action) Play iTunes Playlist и также перетащите его в главную часть окна. В итоге у вас должно получится так же, как на рисунке. Убедитесь, что все работает как надо, нажав кнопку Run - iTunes запустится и начнет проигрывать заданный плэй-лист.

6. Сохраните ваш workflow, он может вам понадобиться, если вы захотите изменить плэй-лист.

7. Выберете Save As (сохранить как) и еще раз сохраните вашу программу, но на этот раз в меню File Format выберите "Applicaton" - вы получите полноценное Mac OS X приложение.

Теперь, если вы добавите ваше только что созданное приложение в список Login Items, ваш мак сразу после загрузки запустит iTunes и начнет проигрывать вашу любимую музыку.

2. Разбудить правильно.

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

Для начала удалим созданное нами в Automator приложение из списка Login Items - нам нужно найти другой способ автоматического запуска нашей программы. И такой способ существует, - это iCal, программа-оганайзер, идущая в комплекте с Mac OS X. Маленькая часть iCal - iCalAlarmScheduler (мы видели ее в списке Login Items среди прочих), всегда находится в памяти системы и отвечает за запуск напоминаний указанных вами в iCal. Сам iCal, при этом вовсе не обязательно должен быть запущен. Итак, действуем строго по инструкции:

1. Запустите iCal и создайте новое событие (New Event), нажав Comman-N или выбрав его из меню File.

2. Укажите время запуска события в графе from. Обязательно укажите время, несколько более позднее, чем время включения вашего мака, - он должен успеть полностью загрузиться.

3. Укажите периодичность события. Вы можете выбрать из списка "каждый день", "каждую неделю", "каждый год" или указать определенные дни недели, как это сделал я, нажав в списке Custom... и указав в появившемся диалоге все дни недели, кроме субботы и воскресенья.

4. В пункте alarm в первой строчке выберите OpenFiles, во второй укажите созданную вами в Automator программу, выбрав Other, в третьей укажите время напоминания, относительно времени события - я выбрал 0 минут.

В итоге у вас должно получиться что-то подобное приведенному рисунку - будильник стоит на 6.55 утра каждого буднего дня. Логика проста, в указанное время ваш мак сам включится, а iCal запустит iTunes с вашей любимой утренней музыкой.

3. Регулируем громкость.

Важная характеристика будильника - громкость звонка. Если вы убавили или отключили громкость на вашем маке вечером, боясь разбудить соседей, то с утра вы рискуете не услышать столь тщательно настроенный вам будильник. Для того чтобы обезопасить себя от подобного, добавим в нашу программу, созданную в Automator перед выбором плэй-листа, еще одно действие - установки громкости - Set Computer Volume. Оно находится среди действий (Action) System, Таким образом, приложение - будильник будет выглядеть, как показано на рисунке:

4. Звонок другу.

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

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

Для того, чтобы звонить, нам потребуется модем и соответствующая программа дозвона. После многих лет Apple перестала встраивать модемы в компьютеры, решив, что в наше время все пользуется выделенными линиями. Так что, если вы - счастливый обладатель свежего мака, придется раздобыть внешний модем. О том, как настроить модем, писать не буду, обычно это происходит практически автоматически.

В качестве программы дозвона используем программу Internet Connect, входящую в Mac OS X. Однако вы не найдете Internet Connect в списке Library в Automator, поэтому в этот раз нам придется воспользоваться языком Apple Script, но не пугайтесь!

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

В нашем случае это будет звучать так:

tellapplication "Internet Connect"

connect to telephone number "8,,,9033222233"

endtell

Что означает: сказать приложению Internet Connect, осуществить связь (позвонить) с таким-то номером. Я привел формат мобильного номера, но вы можете вписать любой номер. Обратите внимание на запятые после цифры восемь. Запятая означает задержку, так как, набрав "8", вы должны дождаться гудка. Помня об особенностях нашей отечественной связи, я поставил подряд три запятые, что означает задержку в три секунды.

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

delay60

tell application "Internet Connect"

disconnect

endtell

Команда delay - означает задержку, в данном случае указана задержка в 60 секунд, после которой выполнение программы продолжиться. Для чего это нужно?

Программа на Apple Script - это набор инструкций, которые Mac OS рассылает другим различным программам. Если вы не укажите задержку, то за командой connect, сразу последует команда разорвать связь (disconnect), и соединение не успеет произойти. К тому же нам нужно, чтобы телефон на другом конце связи, звонил некоторое время, будя абонента. Для этого мы и указываем время задержки (в секундах). 60 секунд - это время, которое мы даем нашему маку, от начала набора номера до обрыва связи. Можно указать другое, по своему вкусу, но помните, набор и соединение с мобильным номером врядли займут меньше 30 секунд.

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

repeat3 times

tell application "Internet Connect"

connect to telephone number "8,,,9033222233"

endtell

delay 60

tell application "Internet Connect"

disconnect

endtell

delay 10

endrepeat

Обратите внимание, что в конце цикла у нас стоит еще одна команда: delay 10. Эта задержка нужна для того, чтобы дать время программе Internet Connect, оборвать связь (положить трубку), так как это не происходит мгновенно. Если ее не поставить, то в следующий цикл, команда connect, последует сразу за командой обрыва связи, а поскольку связь еще успела разорваться, звонок не состоится.

Написанный нами код мы можем сохранить как приложение, с помощью программы Script Editor, либо с помощью Automator - он позволят вставлять в свой рабочий поток код Apple Script. Для этого создайте новой рабочий поток (workflow), в колонке Library найдите иконку самого Automator, и в колонке Action выберите действие Run Apple Script и перетащите его в главную часть окна. В появившимся мини-редакторе введите или скопируете наш Apple Script код. После чего сохраните ваше рабочий процесс как приложение (application) и укажите в расписание iCal, подобно тому, как мы настраивали будильник.

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

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

В Automator, создайте еще одно действие Run Apple Script и введите туда следующий код:

tellapplication "System Events"

shut down

endtell

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

Вместо заключения

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


Автор: Аркадий Перла

Источники: Maccentre.ru