Перейти к контенту ↓


Программы-планировщики
Лень — двигатель прогресса

Как много полезных вещей делает человек, какие усилия прикладывает, сколько времени затрачивает только для того, чтобы впоследствии можно было бы хоть немного полентяйничать, посачковать, пошлангировать. До сих пор я с содроганием вспоминаю, сколько сил в молодости было потрачено на создание всяческих хитро­умных приспо­соблений для дистан­ционного пере­ключения каналов на отечест­венном теле­визоре марки «Рубин», более похожем на гроб с окном, чем на продукт радио­электронной промышленности. И хотя тогда, как и сейчас, смотреть на пере­пол­ненном неприкрытой пропагандой «голубом экране» было практически нечего, тем не менее, такая скучная процедура, как поднятие собственной любимой задницы с не менее любимого мягкого кресла и поход к теле­визору для нажатия одной единст­венной кнопки, мне всегда казалась непозво­лительной растратой умственной и физической энергии. Вот месяцами заниматься распайкой само­дельного ДУ для него — это более занимательно, времени на это занятие жалко не было. Какое счастье, что теперь у всех есть ставшие нормой пульты дистан­ционного управления ко всему, вплоть до дверей гаража! Но молодёжь, наверное, меня уже не поймёт…

Для нормального человека лень, мне думается — совершенно нормальное явление, подвигающее его на всевоз­можные изобретения и выдумывание новых небывалых механизмов. Конечно, не вульгарное, известное на Руси с древности полёживание на печи с вытекающим из этого поплёвы­ванием в потолок — всё-таки мы говорим о нормальных людях, а нежелание выполнять нудные рутинные операции, которые при некоторой сноровке и наличии соответ­ствующих технологий почти всегда можно авто­мати­зировать или хотя бы серьёзно упростить. Именно благодаря такой вот положи­тельной во всех отношениях лени, думается мне, и появились всяческие станки с ЧПУ, микро­волновые печи, програм­мируемые стиральные машины, посудо­моечные агрегаты и те самые пульты ДУ — все они, начиная от промышленных роботов и заканчивая бытовыми электро­чайниками, призваны облегчить сущест­вование человека, избавляя его от повторя­ющихся действий и, соответ­ственно, повышая произво­дительность каждой минуты его рабочего времени или просто эффективность и насыщенность самой жизни. Природа у человека такая. Вряд ли кому-то нравится восемь часов в день крутить одну и ту же гайку на конвейере — каждый предпочёл бы заниматься творческим или хотя бы неповто­ряющимся делом. Ведь от моно­тонных движений человек даже устаёт гораздо быстрее, чем от случайных и разно­образных. Поэтому и стремится он пере­ложить на плечи машин и компьютеров то, что ему самому делать тяжело, неинтересно или попросту лень.

А теперь подумайте — как много одно­типных операций вы выполняете каждый день или с какой-то другой периоди­чностью за компьютером? Например, грамотный пользователь, заботящийся о стабильности функцио­нирования операционной системы, регулярно, по меньшей мере, раз в неделю проверяет диск на наличие ошибок, дефраг­ментирует его, выявляет среди полученных из Сети файлов вирусы; интернет-маньяк каждый вечер запускает «звонилку», а после установки соединения — браузер, менеджер закачек, «аську», загружает на FTP-сервер обновлённую редакцию своей домашней веб-странички; деловой человек ежечасно скачивает электронную почту, просматривает определённые сайты на наличие новой информации — и таких повторяющихся задач у каждого накапливается очень и очень много. Сам собой напрашивается вопрос: почему бы не авто­мати­зировать всё это мало­продуктивное каждо­дневное нажатие одних и тех же кнопок, запуск одних и тех же приложений? Пусть компьютер всё это делает само­стоя­тельно — человеческого разума здесь не требуется! Тем более, что, например, на обслуживание системы порой уходит не один десяток минут — сначала надо дождаться окончания работы «скандиска», потом — дефраг­ментатора и так далее. Причём никаких других задач в это время на много­задачной Windows выполнять нельзя, иначе проверка диска войдёт в бесконечный цикл из-за того, что другое приложение пытается параллельно на него что-то записывать. Вот и приходится пользователю таращить глаза на экран монитора, ожидая завершения работы каждой системной утилиты, после чего запускать следующую. Нет, на самом деле чаще всего не приходится… На самом деле рядовой пользователь обычно просто забивает на обслуживание системы и ждёт того момента, когда «глюки» станут нестерпимыми и можно будет с чистой совестью набрать команду FORMAT C:, после чего пере­установить ОС и ждать очередной её кончины. Тратить полчаса в день на обслуживание системы нам лень… Но это не та лень — она приводит не к созиданию, а к разрушению ОС и деградации самого пользователя, не видящего дальше своих спинно­мозговых «квейков» и около­кроватных чатов. Немногие же индивидуумы с завидной стойкостью поддерживают работо­способность Windows, тратя на это немало своего личного времени. Хотя, если у тебя на диске ценного только «Квак» и «аська», то выделить час-два на пере­установку «заглючившей» системы и пары-тройки игр действительно может оказаться более целе­сообразно, чем тратить этот час каждую неделю на её обслуживание. Но вот если программ не один десяток, да драйвера к устройствам требуют специальной установки и настройки, то волей-неволей приходится поддер­живать неустойчивую стабильность Windows. Да и неприятный сюрприз в виде осыпавшегося бэд-блоками винчестера лучше предот­вратить и предугадать заранее, чем рвать волосы и посыпать голову пеплом после того, как это уже случится. Очень хороший вариант — периодически (опять!!!) делать резервную копию диска с помощью программы типа Norton Ghost [1], тогда профилактикой сбоев в какой-то мере можно пожертвовать, но ведь дело ограничивается не только обслуживанием ОС — рутинных операций при работе за ПК немало и помимо этого. И каждая требует время, время и время… Просто забота о системе — один из самых ярких и применимых к каждому ПК примеров. Как авто­мати­зировать этот процесс? Как сделать так, чтобы компьютер сам себя проверял и лечил, запуская, к примеру, каждую ночь полный набор диагно­стических утилит, а после завершения проверки генерировал отчёт и погружался в спячку?

Task Sheduler

Есть же «Виндовый» Планировщик заданий (Task Sheduler) и его дочернее узко­специа­лизиро­ванное приложение «Мастер обслуживания» (Maintenance Wizard)! — скажет продвинутый пользователь. Но пробовали ли вы с ними работать? Если пробовали, то хорошо знаете, что работать с ними невозможно — слишком примитивные это программы. Например, они не способны корректно закрыть отработавшее приложение — запрограм­мировать можно только снятие задачи в опредёленное время. Разумеется, если дефраг­ментатор в этот момент всё ещё работает, то он будет убит, не выполнив своей работы, а то и попортив таблицу FAT на диске. Нет у них обратной связи с запущенными программами. Для начинающего пользователя, конечно, чем проще программа, чем меньше в ней настроек и возможностей, тем лучше, но такой подход, думаю, применим к американским домо­хозяйкам, а не к российским «юзверям», самым юзверятым «юзверям» в мире. Кроме того, программа эта выполняет свои обязанности исходя из расположения звезд на небе и собственного настроения — при этом в отчёте о проделанной работе она может записать, что все задания выполнены и ПК выключен, на деле же это окажется, мягко говоря, преувеличением. В общем, утилита эта годится только на крайний случай, когда нет возможности скачать из Сети действительно мощный планировщик с набором функций, соответ­ствующим требованиям сегодняшнего времени всеобщей компьютерной продвинутости.

Automate [2]

А качественные планировщики заданий есть! На сегодня Automate — одна из самых мощных (если не самая) программ-шедулеров, близкая к эталону подобных утилит. Тот, кто попробует с ней хоть раз поработать, больше никогда не вспомнит добрым словом «виндовый» планировщик. Причём, наряду с её огромными возможностями, разработчикам Automate удалось добиться и лёгкости управления сложной программой, её настройки и создания новых заданий. Достигается это наличием удобного мастера Task Wizard, доводящего планирование заданий до визуального уровня — вся, очень близкая к програм­мированию работа может выполняться исключительно мышкой. Плюс ко всему, изначально в программу включён десяток готовых простых примеров-заданий, наглядно демонст­рирующих основные принципы работы с Automate. Если же всё равно остались какие-то вопросы, то к вашим услугам очень подробная справка к программе, которая популярно объясняет все термины и опции Automate — её, вообще говоря, желательно в любом случае хотя бы просмотреть, иначе многие уникальные особенности этого планировщика от вас могут попросту ускользнуть.

Итак, что же умеет эта программа? Разумеется, запускать приложения по расписанию, как и «виндовый» Task Sheduler. Но если у последнего этим дело и ограничивается, то Automate способна ещё и открывать документы, распечатывать их, генерировать визуальные и звуковые сообщения для пользователя, нажимать (виртуально) клавиши на клавиатуре и мыши, двигать курсор в любую точку экрана, оперировать с любым окном, устанавливать соединение с Интернетом, открывать веб-страницы, работать с электронной почтой и FTP-серверами, производить любые операции с файлами и папками, архивировать и распаковывать ZIP-файлы, работать с буфером обмена, пере­загружать и выключать компьютер, блокировать клавиатуру и мышь и ещё много и много других вещей — практически всё, что способен делать на компьютере сам оператор. Для особенно дотошных кул-хацкеров имеется поддержка языка програм­мирования Visual Basic for Applications, вернее, совместимого с ним и почти ничем не отличающегося WinWrap Basic, подробнейшая инструкция по применению которого приводится в файле refman.rtf.

Возможности программы почти безграничны, но именно это обычно и отталкивает рядовых пользователей от мощных программ: «в планировщике что-то програм­мировать надо…». За кажущейся на первый взгляд сложностью они просто не успевают оценить приятную лёгкость управления, тем более, что с английским языком немалая их часть не в ладах. На самом же деле в програм­мировании «шедулера» ничего трудного нет, и поскольку Automate — программа чрезвычайно удачная, то на её примере попробуем рассмотреть создание самого востребованного у пользователей задания — регулярного авто­мати­ческого обслуживания системы. Что для этого требуется? Нужно обеспечить поочерёдный запуск нескольких приложений, причём каждое должно полностью отработать, затем быть выгружено, и только после этого можно запускать следующее.

Начнём! В меню «File» выбираем команду «New» → «Task» и в появившемся окне «Task Wizard» — Мастера заданий — жмём кнопки «Next» → «Create Steps». Перед нами окно пошагового строителя Step Builder — именно в нём осуществляется практически весь процесс планирования. Пусть первым будет запуск утилиты проверки и резерви­рования реестра: в разделе «General» колонки со списком доступных действий «Available Actions» двойным щелчком выбираем пункт «Start Application». Появится очередное окно, в котором необходимо задать путь («Command Line») к исполнимому файлу нашего сканера реестра. В данном случае нас интересует его windows-вариация, так что получится C:\Windows\Scanregw.exe. Проверим что получилось, нажав кнопку «Test Selected Step» в правом верхнем углу панели инструментов программы. Запустится Scanregw.exe, проведёт проверку и выдаст окно с вопросом: резервировать ли реестр? Теперь надо научить Automate на этот вопрос отвечать, нажав в новом окне кнопку «Yes». Запишите название этого окна: «Registry Scan Results» (в английской версии Windows) — именно на него будет реагировать Automate. Снова возвращаемся к редактированию задания и в разделе «Flow Control» выбираем следующее действие — «Wait For a Window». То есть после первого шага — запуска программы, вторым будет ожидание появления окна «Registry Scan Results» — пока его на экране нет, кнопки жать бессмысленно. Это название необходимо ввести в окне установки параметров действия «Wait For a Window» в поле «For this window appear», а в пункте «Wait for» установить время ожидания. Поскольку в зависимости от размера реестра и быстро­действия компьютера время сканирования реестра может различаться, то выявить его нужно экспери­ментальным путём — главное, чтобы установленное вами время не было меньше реального, иначе Automate данный шаг не выполнит. После того как окно «Registry Scan Results» появилось, надо нажать на клавиатуре клавишу Y для того, чтобы сканер продолжил работу — это третий шаг. Для этого выбираем раздел «Keystrokes» и в нём — «Send Keystrokes». Остаётся только задать клавишу Y в окне установки параметров этого шага. Опять проверка всех созданных шагов: Scanregw отработал, резервную копию реестра создал, Automate, дождавшись нужного окна, кнопку нажал, но появилось ещё одно окно — с единственной кнопкой «OK». В данном случае, поскольку название этого окна такое же, как уже имеющегося на экране окна Windows Registry Checker, то Automate на его появление не среагирует, поэтому проще всего просто задать небольшую паузу перед нажатием кнопки «OK». Четвёртым этапом выполняем — «Flow Control» → «Pause» → «10 секунд». Этого времени достаточно для резервирования реестра. И, наконец, после этой паузы нажатие кнопки «OK» в последнем окне — пятый шаг: «Keystrokes» → «Send Keystrokes» → «Insert» → «Enter». Запускаем проверку и радуемся результату — Automate вместо пользователя полностью само­стоятельно вёл диалог с Windows Registry Checker.

Это был пример самого простейшего програм­мирования задания, но на самом деле его можно было бы ещё упростить аж до двух шагов, если знать параметры командной строки запускаемого приложения. Вернёмся к пункту «Start Application»: в окне параметров запускаемого приложения имеется и ещё несколько полей для ввода, одно из которых — «Parameters» — как раз и служит для ввода ключей командной строки. К сожалению, в эпоху всеобщей виндовизации командная строка практически позабыта. А между тем она очень сильно облегчает нашу сегодняшнюю задачу. Так, у программы Scanregw.exe имеется ключ /backup, который одно­значно приказывает ей сделать резервную копию реестра, причём никаких окон при этом даже не появляется — программа отрабатывает в скрытом режиме. Единственный недостаток этого параметра в том, что не проводится проверка реестра. Так что выбирайте — либо выше­описанная процедура, либо всего два шага — запуск Scanregw.exe /backup и последующая пауза секунд на 15 для записи архива с файлами реестра на диск.

Аналогично через команды-пере­ключатели следующим заданием нашего проекта мы можем заставить Scandisk без диалога с пользователем проверить все диски, исправить ошибки и само­стоятельно выгрузиться из памяти ПК по завершении своей работы. Конечно, поскольку Automate заменяет человека, то она опять-таки сама может отвечать на все запросы Scandisk, так что знание пере­ключателей командной строки не так уж и нужно, но с ними всё получается и проще, и грамотнее, и быстрее. Поэтому в случае со Scandisk вводим в строку «Parameters» следующее: /a /n /silent. Параметр /a устанавливает проверку всех дисков, /n — запуск проверки сразу после загрузки программы без запроса каких-либо параметров, silent — отсутствие отчётов о результатах проверки и авто­мати­ческая выгрузка программы по окончании проверки дисков без обращения к пользователю. Учтите только, что в настройках Scandisk должен быть установлен флажок «Automatically fix errors», иначе при обнаружении ошибок на диске программа будет выдавать запросы, обработку которых в Automate запрограм­мировать непросто из-за много­чис­ленности их разно­видностей. Для дефраг­ментатора C:\WINDOWS\DEFRAG.EXE командная строка будет вида /ALL /F /NOPROMPT, где /ALL — обработка всех дисков, /F — дефраг­ментация файлов и свободного пространства, /NOPROMPT — отсутствие запросов к пользователю. Кстати, дефраг­ментатор и ScanDisk в Windows 98 лучше всего использовать не «родные», а из «Миллениума» — там эти программы заметно усовер­шен­ствованы и работают гораздо быстрее.

К сожалению, не все программы имеют пере­ключатели командной строки, упрощающие настройку их работы, но это не так уж и важно — Automate, как мы видели, позволяет включать в задание любую программу, надо просто чуть-чуть повозиться с отладкой шагов. Но в любом случае неплохо сначала из документации узнать параметры командной строки приложения, автозапуск которого вы планируете. Так, например, известный архиватор WinRAR легко с её помощью научить создавать резервную копию любой папки, что бывает очень полезно, особенно если оформить эту задачу как ежедневное задание Automate. Представьте себе: по окончании рабочего дня ПК сам архивирует ваши рабочие документы, устанавливает соединение с Интернетом и отправляет их на хранение на FTP-сервер или почтовый ящик, выделенный под это дело, после чего сам себя проверяет и обслуживает и выключается. А утром варит кофе…

Но продолжим: мы научили Automate запускать и выгружать все нужные нам программы и протес­тировали всё задание. Теперь, когда всё готово, закрываем окно Step Builder и в мастере заданий пере­ходим ко второму этапу, называемому не очень понятно — Triggers. На самом деле обычно здесь всего лишь нужно задать расписание запуска нашего задания. Но способ запуска не ограничен лишь временным расписанием! Trigger — это не только срабатывание таймера, это любое событие из довольно обширного списка. Так, можно назначить горячую клавишу каждому из созданных заданий, можно сделать так, что задание запустится вместе со скрин-сейвером или на старте Windows, или же когда изменится определённый файл, либо когда на экране откроется какое-то заранее заданное окно. Последнее, кстати говоря, очень удобно использовать при дозвоне провайдеру по принципу Call Back, поскольку при этом Windows 9x непременно выводит раздражающее окно с кнопкой «OK», для подтверждения пользователем входящего соединения. Стоит лишь задать Automate отслеживать появление этого окна и научить её нажимать эту кнопку, как ещё одна скучная операция выпадет из круга обязанностей пользователя. И что самое главное! Триггеров на одно задание допускается делать несколько, например, и запуск по расписанию и горячие клавиши одно­временно. Даже ярлык на Рабочем столе для запуска комплексного задания, будто оно — одно цельное приложение, программа умеет создавать! Твори — не хочу!

Вот, собственно, и всё — осталось придумать проекту название, и дело сделано. Как видите, всё гораздо проще, чем казалось вначале. Двадцать минут несложного визуального програм­мирования теперь будут спасать целые часы рабочего времени каждый день. Плюс ко всему, не надо беспокоиться о том, что вы что-то забыли сделать — компьютер склерозом не страдает.

Macro Scheduler [3]

Но если вам Automate чем-то не угодил или просто не понравился, то всегда есть шанс найти не менее мощное аналогичное приложение, например, такое, как Macro Scheduler. Принципы програм­мирования во всех шедулерах примерно одинаковы, рас­про­стра­няться тут особенно нечего, различается только интерфейс, и, к сожалению, у Macro Scheduler он явно подкачал по части привлека­тельности. Но по одёжке, как говорится, встречают — возможности программы почти ничем не уступают более известному Automate, разве что триггеров всего два — таймер и горячие клавиши. Сам же скрипт запуска приложений можно создавать даже более сложный — с ветвлениями и условиями! Плюс полный набор операций с файлами и папками, не говоря уж о стандартных запуске и закрытии приложений — Macro Scheduler умеет всё, что только приходит на ум. Причём для написания скрипта не нужно быть гением в бейсико­подобных языках — все операции планирования задания производятся исключительно мышкой. Возможно, кому-то покажется даже более удобным проверенный временем способ выбора каждой команды — через раскры­вающийся список «Command», ниже которого расположено поля для ввода параметров текущей команды. Названия же каждой команды вполне осмысленны и не вызывают желания общаться со справочной документацией. То есть, выбрав одно­значно понятную команду «DeleteFile» в поле «Value», нужно задать путь к этому файлу, и при выполнении задания он будет удалён — всё просто. Для более же тонкой отладки созданной программы имеется редактор типа Блокнота, где весь написанный вами скрипт представлен в виде обычного текста с цветовой подсветкой команд разного типа, очень похожей на то, что весьма популярно в чисто «программерских» редакторах. Если накопится много заданий, то будет полезно сгруппировать их по нескольким разделам, дабы в окне программы они не были свалены в одну кучу. Для особо же востре­бованных задач лучше всего создать ещё и ярлыки на Рабочем столе, тогда для их запуска будет достаточно всего одного ленивого щелчка мыши. Короче говоря, программа эта очень интересная и качественная, но к счастью, и кроме Macro Scheduler ассортимент планировщиков заданий, с которыми «виндовый» Task Scheduler и близко не стоял, не ограничен.

Schedule Wizard 2001 [4]

У каждой программы имеются и свои уникальные изюминки, отсутствующие у конкурентов, и досадные недостатки, часто обусловленные этими же самыми достоинствами. Schedule Wizard — самая простая программа, идеально подходящая для начинающих. Он рассчитан в основном на запуск программ и обработку поступающих от них сообщений, благодаря чему работа с ним оказывается предельно простой и интуитивно понятной. И хотя особых изысков у него не наблюдается, тем не менее, набор програм­мируемых действий весьма широк и охватывает почти все потребности большинства пользователей — нажатие клавиш, выдача сообщений, операции с файлами, работа с Интернетом, упаковка-распаковка архивов, циклы, условия и ветвления. Но вот по части способов запуска готового скрипта выбор гораздо хуже, вернее, его нет совсем — только таймер. На горячие клавиши, правда, тоже можно програм­мировать какие-либо действия, но с уже созданными заданиями это почему-то никак не связано. Лёгкость же програм­мирования в Schedule Wizard объясняется тем, что по сути, в программе имеется пять раздельных мастеров создания заданий, пред­на­зна­ченных для быстрого планирования наиболее часто встреча­ющихся скриптов — Program Wizard, Message Wizard, Script Wizard, E-Mail Wizard, Hot Key Wizard. Это задумано для упрощения работы с программой и действительно сильно помогает: например, запланировать регулярную пересылку постоянно редакти­руемого файла своему партнёру с помощью специально для этого пред­на­зна­ченного Message Wizard можно буквально за две минуты. Да и всяческие напоминалки о днях рождения, важных событиях и назначенных встречах, пьянках и свиданках делаются в несколько нажатий мыши, но уже в Message Wizard. Получается что-то типа нескольких специали­зированных подпрограмм внутри единого интерфейса. Для ещё большего упрощения работы с Schedule Wizard имеется уже готовый набор типичных скриптов, таких как запуск дефраг­ментатора и его закрытие через 60 минут или соединение с Интернетом, но большей частью это довольно примитивные программы, для грамотного пользователя не пред­став­ляющие большой практической ценности (закрытие дефраг­ментатора через час его работы умеет делать и Task Sheduler). Так что, если вы только пробуете свои силы, или лень-матушка не прошла ещё в своем развитии в стадию созидательной, то начните с Schedule Wizard — это самый быстрый и доступный планировщик.

Благодаря незаслуженно обделённому вниманием пользователей целому классу программ — «шедулеров», любой просиживающий штаны перед монитором юзер имеет неплохой шанс избавиться от рутинных операций и сберечь для себя и своих близких немного свободного времени, распорядиться которым можно с куда большей пользой, чем нажимать одни и те же кнопки изо дня в день. Ведь аналогично тому, как осуществляется програм­мирование комплексного обслуживания операционной системы, можно авто­мати­зировать и любые другие задачи, главное, чтобы было не лень разобраться с работой продвинутых планировщиков — потраченное на это время с лихвой окупится. Зато потом предаться лени можно будет на всю катушку: персональный компьютер будет всё делать за вас, для чего, собственно, он и был придуман шлангами из Apple. При желании, думаю, можно добиться авто­мати­ческого истребления ботов в «кваке» и любовной переписки с девчонками на «Кроватке» (но зачем тогда компьютер нужен — вот вопрос?).




Темы