Если инфорация оказалась интересна и/или полезна, не побрезгуйте, оставьте комментарий ;)

среда, 9 октября 2013 г.

Автоматизаторы работы на компьютере. Часть 1.

Введение
При работе на компьютере часто встречаются повторяющиеся действия. Отправить стандартное письмо, заполнить веб-форму, искать Гуглом на определённом сайте, проставить текущую дату в определённом формате, например ГГГГ-ММ-ДД (встречается в моей предыдущей статье) и т.д. Вначале, вбиваешь каждый раз заново вручную. Через некоторое время это надоедает, и создаёшь себе файл с шаблонами, из которого копирайтом переносишь готовые фразы. Уже лучше, но всё равно не то. Надо постоянно держать открытым файл с текстом, искать нужную. А как быть с веб-формами или поиском по сайту: site:hp.com «фраза поиска».

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

Punto Switcher
Вообще-то эта программа не для автоматизации произвольных действий на компьютере, а для автоматического переключения раскладки клавиатуры. Честно говоря, ее алгоритм немного несовершенен. Достаточно часто программа переключается не в ту раскладку на коротких последовательностях. И даже если предлагает занести в словарь исключение, то потом этим исключением не пользуется. Типичный пример – всегда коверкает мою фамилию. Была отличная программа Keyboard Ninja. Ее алгоритм переключения был куда лучше, а ложных срабатываний было куда меньше. Но автор, к сожалению, перестал ее развивать. Очень жаль. Но мы же говорим об автоматизаторах. Punto Switcher можно научить вставлять вместо акронимов фразы. Но этот функционал всё-таки в программе ограничен.

Адрес программы - http://punto.yandex.ru/

Есть версия для Mac, что радует. Программа бесплатна – и это тоже радует.

xStarter
Программа-автоматизатор идеальна для тех, кто не умеет программировать. Если это ваш случай, смело качайте.
Сайт программы http://www.xstarter.com/. Скачивать лучше бета-версии. Они достаточно устойчивы. И они значительно новее «стабильной» версии. Судя по всему, автор забросил разработку в прошлом году (последняя бета датирована 09.07.2012). А стабильная версия так и вообще выпущена 23.07.2009. Однако обе версии на столько функционально богаты, что переживать за отсутствие новья не стоит.

В программе вы в визуальном конструкторе записываете последовательность действий – управление клавиатурой, мышью, работа с файлами, электронной почтой, FTP и HTTP серверами. В наличии планировщик задач. Все преимущества перечислены на странице http://www.xstarter.com/rus/index.html. Есть возможность создания диалоговых окон, GUI.

Это мой первый автоматизатор, который использовался не «на пробу», а именно в работе. Программа зарекомендовала себя с лучшей стороны. Но у неё были некоторые недочёты, которые для меня стали критичными:
·      Некорректная работа имитации нажатия клавиш в Citrix XenApp.
·      Не всегда верная простановка раскладки клавиатуры (русская/английская) вне зависимости от указанных модификаторов.
·      Невозможность текстового программирования действий, позволившего бы ускорить разработку новых действий, их отладку, копирование и т.д.

Рискну предположить, что для большинства пользователей эти мои «критические» недочёты вообще покажутся жуткими придирками, о которых и думать-то не стоит. Однако с Citrix XenApp надо было работать. С остальным можно было смириться.
Здесь много примеров интерфейса программы http://www.xstarter.com/rus/screens.html. xStarter создавал наш соотечественник, так что в нем всё на русском, включая помощь и поддержку на форуме сайта. Для граждан России программа бесплатна. Итак, что же дальше. А дальше программирование.

AutoIt
Бесплатный открытый проект AutoIt http://www.autoitscript.com/site/autoit/.  Это интерпретатор с собственным языком программирования, напоминающим javascript, хотя разрабочкам он больше напоминает BASIC. У всех свои ассоциации. В комплект входит сам интерпретатор, конвертер в файлы EXE, ActiveX модули (не могу предположить, зачем они нужны, обычно все современные языки сами неплохо справляются с задачами управления клавиатурой и мышью), а также редактор с подсветкой синтаксиса и файлами помощи по языку программирования.

Время на изучение особенностей языка потратить придётся. Достоинством этого решения является то, что генерация нажатий клавиш и работы мыши сделано на низком уровне ОС, поэтому всё чётко работает и в терминальных решениях вроде Citrix XenApp. Наличие своего языка программирования даёт необычайную гибкость. При должном желании и сноровке можно запрограммировать самые сложные действия.
ПРИМЕРЫ

Но у AutoIt есть и минусы, которые, в конечном итоге, заставили от нее отказаться.

Нет собственного менеджера горячих клавиш. Для назначения тех или иных действий на сочетание клавиш приходилось использовать дополнительное ПО. В моем случае это был всё тот же xStarter, или, в последствии, PowerPro. Оба варианта означают трату ресурсов компьютера, дополнительные настройки и избыточный функционал. Кроме того, эти программы достаточно мощные сами по себе. И применение их лишь как  менеджера горячих клавиш напоминало забивание гвоздей микроскопом. Поэтому было найдено альтернативное решение.

AutoHotkey
Программа AutoHotkey (http://www.autohotkey.com/). Эта программа даже не конкурент AutoIt, а его двоюродный брат. Авторы впрямую говорят, что AutoHotkey – это наследник AutoIt, указывают, как конвертировать скрипты, написанные для AutoIt в те, что съест AutoHotkey.

Эта программа стала моим основным и единственным помощником по автоматизации работы на компьютере. Ее основные преимущества:
  1. Она самодостаточна. Ей не требуются внешние программы запускальщики. Сама сидит в трее и отслеживает нажатие комбинаций клавиш. Не надо настраивать ассоциации расширений с файлами действий.
  2. Не имеет ограничений по комбинациям нажатий клавиш. Никаких тебе комбобоксов, пролистываний и т.д.
  3. Имеет свой собственный языка программирования, что упрощает копирование, клонирование и модификацию последовательностей действий.
  4. Для простых действий изучать язык программирования не надо. Достаточно скопировать из примера последовательность символов и поменять вставляемый текст на свой.
  5. Мощный язык программирования, позволяющий создавать сложные последовательности действий, рисовать графические диалоговые окна,  добираться до окон операционной системы и использовать COM.
  6. Пожалуй, последний пункт 5-го преимущества вынесу в отдельную строку. COM. Можно управлять другими приложениями. Например, Internet Explorer’ом. Вообще, считаю COM отличным изобретением: объектная модель, независимость от языков программирования, возможность использовать функции специализированных приложений в своей программе.
Есть у AutoHotkey и недостатки:
  1. отсутствие редактора с подсветкой синтаксиса и помощи в выборе встроенных функций и выражений, а так же переменных. В AutoIt такой редактор присутствует.
  2. Отсутствие возможности отладки скриптов
  3. Достаточно мудреный синтаксис по работе с переменными, два метода их использования. Часть функций и выражений работает только со старым методом, часть - только с новым. При использовании неверного метода получаются неожиданные результаты. Почему такой дуализм ввели разработчики, не ясно. У меня есть предположение, что новый метод работы с переменными был введён для упрощения создания действий без программирования. Он позволяет неявно вводить переменные (незаметно для пользователя), не используя кавычек, операций присвоения и так далее. Но не все функции были переведены на работу с новым форматом. И получилось «ни два, ни полтора». Поленились ребята сделать полноценный переход.
  4. Сырость при работе с COM.

Но, не смотря на все недочёты, это самое удобное средство автоматизации, если не с точки зрения создания кода, то уж точно с точки зрения применения действий.

Выведение
В следующей статье дам примеры кода и идеи для создания собственных последовательностей действий.

Комментариев нет: