Автоматизация по-малому 08.10.2002 Валерий Кондаков Компьютеры обожают повторяющиеся действия и прекрасно знают, как заставить своего хозяина не тратить время на рутинную работу - регулярные бэкапы, очистку временных каталогов, бесконечные выходы в онлайн, обслуживание пользователей локальной сети и многое, многое другое. Большинство этих операций можно и нужно автоматизировать, но многие ли уже сделали это или хотя бы представляют, как подступиться к сему непростому процессу? Практика показывает, что лишь малая часть пользователей пользуется услугами планировщика - программы, которая при определенных условиях запускает тот или иной процесс, предпочитая самим выступать в роли своеобразных «планировщиков». Почему же - неужели обычная человеческая лень? Не думаю. Скорее всего, в их распоряжении просто не оказалось программы с подходящими возможностями. К сожалению, «классические» планировщики не умеют делать практически ничего, кроме запуска заданного процесса в указанное время. Большинству пользователей этого мало - хотя хороший планировщик и способен учитывать некие нехитрые комбинации условий запуска, но его не удастся запрограммировать на принятие решения в сложной или критической ситуации. В отличие от пользователей «Макинтоша», которым доступна вся мощь AppleScript, позволяющего записать и формализовать любые действия в операционной системе и приложениях, пользователи Windows вынуждены обходиться скудными возможностями встроенного в систему планировщика. А попробуйте, например, объяснить ему, что нельзя запускать факсовую программу, если в этот момент установлено Интернет-соединение и модем все равно занят… И что прикажете делать, если, допустим, сразу после запуска программы ей надо интерактивно передать данные? Казалось бы, ситуацию могут исправить специальные программы-автоматизаторы, «планировщики на стероидах». Они не только запускают процесс в указанное время, но и учитывают множество дополнительных факторов: отслеживают заголовки открытых окон и файл-флаги, эмулируют операции с мышью и многое другое. Достоинства программ-автоматизаторов очевидны, однако не менее очевидны и их недостатки.
Впрочем, как раз AutoMate (рис. 1) тестировал Сергей Голубицкий и, как мне показалось, остался доволен («Голубятня», «КТ» #400). На вкус и цвет?.. Существует, правда, и промежуточный вариант: Windows Scripting Host, или программы-скриптеры (например, AutoIt), с помощью которых пользователь сам составляет «автоматизирующие» скрипты либо на том языке программирования, коим владеет, либо на том, что предоставляет программа-скриптер. У этого варианта тоже есть существенные недостатки: во-первых, для запуска скрипта нужен внешний планировщик, а во-вторых, знаний для написания собственных скриптов может элементарно не хватить. Но означает ли все вышеизложенное, что мечта «прозрачно» автоматизировать рутинную компьютерную работу так и останется нереализованной? Нет. Еще в 1996 году питерский программист Дмитрий Гориславский представил на суд пользователей программу Control Agent - своеобразный гибрид планировщика и скриптера. Программка получилась маленькая (всего 180 килобайт) и на удивление мощная. При этом акцент делался на простоту: настроить «Контрольного Агента» легко мог любой пользователь. Установки программы и задач хранились в текстовом файле, что позволяло без проблем переносить Control Agent с машины на машину. За короткий срок программа получила небывалую популярность среди нуждавшихся в «малой автоматизации». К сожалению, ее последняя версия датируется августом 1997 года, и мне так и не удалось выяснить, почему Дмитрий потерял интерес к своему детищу. Говорят, автором были утеряны исходные тексты, что сделало невозможным дальнейшее развитие программы. Шло время, Control Agent медленно, но верно устаревал, а замена ему так и не появлялась. Так продолжалось до середины 2000 года, когда о себе во весь голос заявил новый игрок на поле «малой автоматизации» - nnCron: амбициозный проект программиста из Пскова Николая Немцева. Именно эту программу я считаю лидером среди остальных планировщиков-скриптеров-менеджеров автоматизации, и вот почему: nnCron гораздо мощнее и мобильнее, нежели Control Agent, обладает всеми достоинствами своего предшественника и свободен от большинства его недостатков; nnCron отлично адаптирован под «новые» версии Windows (WinME/Win2000/W inXP), позволяет создавать, редактировать и управлять задачами с помощью удобного графического интерфейса, активно развивается и, наконец, бесплатен для жителей «ex-USSR». Несмотря на крошечный (по нынешним меркам) размер дистрибутива - чуть больше 300 килобайт, - nnCron (рис. 2) обладает поистине титаническими возможностями и может на равных конкурировать даже с такими «монстрами», как AutoMate. Помимо традиционной для планировщика способности запускать в указанное время программы, «напоминалки» и открывать документы, nnCron умеет:
Согласитесь, список впечатляет! Но и это еще не все: nnCron позволяет использовать в задачах скриптовые языки VBScript и JScript, а также регулярные выражения. Он может выполнять произвольные программы на языке программирования Форт (SP-Forth) и расширяется за счет плагинов. Кроме того, не зря бывалым юниксоидом уже почудилось что-то знакомое в его названии: действительно, nnCron понимает cron-формат (Unix) и управляется с помощью текстовых кронтаб-файлов. Задачи можно описывать в двух синтаксических режимах: «классическом» (UNIX-cовместимом) и «расширенном», более мощном. Помимо этого, nnCron полноценно работает с ключами командной строки. А для тех, кто не любит или не умеет работать в текстовом режиме, есть графическая оболочка, с помощью которой можно настраивать и запускать задачи, включать и выключать напоминалки и менять настройки программы (рис. 3). nnCron может быть запущен как обычное приложение или в качестве службы (сервиса) Windows. Поскольку программа предназначена для выполнения важных, а иногда и критических для системы задач, она отличается повышенной «живучестью» за счет так называемого «непотопляемого режима». В nnCron встроено несколько дополнительных инструментов, которые еще больше расширяют его возможности. Утилита WinSpy (рис. 4), позволяющая узнать текущие координаты мыши, выяснить класс объекта, над которым находится курсор, получить информацию о координатах основного и дочернего окна. Console (рис. 5) - средство интерактивного общения с nnCron для знатоков Форта и незаменимый помощник для всех, кто только начинает изучение этого языка. Я готов снять шляпу перед внушительным списком возможностей программы, но лично мне в nnCron больше всего нравится даже не его очевидная «могучесть», а та удивительная степень свободы, которая предоставляется пользователю: c nnCron’ом можно работать так, как удобно тебе, а не автору программы, поскольку nnCron легко поддается настройке и готов «приспособиться» к нуждам пользователя. К примеру, время в задачах можно указывать в cron-формате, а можно - в классическом: «минуты», «часы», «дни». Любую задачу можно запустить вручную через меню или прямо из командной строки или временно запретить ее выполнение. Можно спрятать иконку nnCron от посторонних глаз, можно показывать ее только для пользователей с правами администратора, можно запустить nnCron от имени одного пользователя, а графический интерфейс - от имени другого, можно… много чего можно. А еще nnCron пригодится в качестве «напоминалки», Startup-менеджера, менеджера горячих клавиш и даже менеджера переменных среды. Как же все это изобилие применить «на практике»? Вот лишь несколько несложных примеров (сейчас я сознательно избегаю традиционного применения планировщика - запуска программ в указанное время):
И разумеется, с помощью nnCron можно автоматизировать практически любые действия пользователя, которые поддаются логическому упорядочиванию: в случае «а» делаем то-то, в случае «б» - то-то… Конечно, у nnCron есть и недостатки. Прежде всего, он не мог не унаследовать главный минус подобных программ: некоторую сложность в освоении. Еще один потенциальный недостаток nnCron - прямое следствие его достоинств: возможности «скриптования» программы практически безграничны, и это означает, что некорректно написанная задача может привести к краху программы или даже к нестабильной работе системы. Разумеется, это касается только задач, составленных «вручную»: встроенный парсер nnCron не всегда может «отловить» ошибки пользователей, хотя система предупреждения работает надежно и информирует о большинстве потенциальных проблем. Попробуйте «малую автоматизацию» на практике. Начните с мелочей: например, автоматизируйте ежедневное получение электронной почты, обработку обновившихся файлов в указанном каталоге или регулярное «техобслуживание» компьютера (проверка диска, дефрагментация, удаление временных файлов). Не сомневаюсь: результат понравится и вам, и вашему компьютеру! Программы, упомянутые в статье:
Баллада о сбывшейся мечте [ "13-я КОМНАТА" ] Новости [ "НОВОСТИ" ] МикроФишки [ "НОВОСТИ" ] "Think Russian!" [ "НОВОСТИ" ] Главная тайна [ "НОВОСТИ" ] Страшная сила [ "BUSINESS@RUS" ] Я родился человеком [ "ТЕМА НОМЕРА" ] Технокочевник: дорога длиною в жизнь [ "ТЕМА НОМЕРА" ] Глаза чужого мира [ "ТЕМА НОМЕРА" ] Автоматизация по-малому [ "SOFTТЕРРА LITE" ] Мой немой для серьезных пацанов [ "SOFTТЕРРА LITE" ] События [ "SOFTТЕРРА LITE" ] Вам пакет! [ "КОМПЬЮFЕРРА LITE" ] Вид с пальмы, на два новых растения растущей на том берегу [ "КОМПЬЮFЕРРА LITE" ] Неспящий в Сиэтле [ "ДЕЛА" ] Лекарство от золотой лихорадки [ "АНАЛИЗЫ" ] эМ эР Зе [ "МЫСЛИ" ] Карманный термометр со встроенным телефоном [ "UNDOCUMENTED" ] Хотели бы вы стать киборгом и почему? [ "ВОПРОС НЕДЕЛИ" ] Хочу, чтоб все знали! [ "ПИСЬМОНОСЕЦ" ] |