Automator для Windows.

В Mac OS X встроена очень красивая утилита для автоматизации неких воздействий пользователя с именем Automator. К сожалению, Microsoft до сих пор в свою сверхпопулярную ОС ничего аналогичного  не добавила. Ну что же,попробуем найти подобающую замену,для того чтобы автоматизировать ряд обыденных транзакций и сэкономить столь ценное время.

Этот материал приведён лишь в ознакомительных целях. А раз вы желаете воспроизвести те же действия,которые описаны в этой статье,настоятельно рекомендую внимательно прочитать статью до конца хотя бы один раз.

Прогрессивные ОС до не возможности напичканы всевозможными встроенными функциями для облегчения жизни пользователей. Функций этих так много,что уже не первый год с полок торговых центров не сходят книги в духе «Как создать себе систему.Руководство для чайников. ».Но к сожалению,огромное количество пользователей даже не читает подобных книг,и если есть проблемы,сразу же бросается выискивать ту или иную утилиту.Вообще-то,это нормальный подход, но для массового превращения размера фотоснимков люди довольно часто устанавливают не менее чем Adobe Photoshop.Иначе не солидно ведь, правда?

Хотя,практически для всех обыденных задач можно бы было просто прописать и взять уже готовую программу (это в самом деле дано не всем), или не большой скрипт. Хорошо,что в уважающих себя ОС всегда была установлена поддержка bat/sh-скриптов или имелись интерпретаторы,лёгкие для изучения языков программирования вроде Basic или Perl/Python. Для той же ОС Windows есть практически волшебный инструмент PowerShell.Если кому то лень вникать в его работу,а затем к тому же набирать что-то руками? Ну тогда давайте попробуем обойтись без этого и рассмотрим в стадии повышения сложности некоторое количество бесплатных программ для автоматизации в Windows. В предыдущем случае советую ознакомиться с огромным набором аналогичных утилит,а лучше всего не преминуть испробовать еще одну небольшую,но довольно сильную программу.

Action(s)

Action(s) — что же касается этого проекта,который чем то похож на неординарный Automator.Ему предоставляется возможность действовать как в среде Windows,так и в Mac OS X.Для его функционирования необходима Java-машина,завершающей модификации,которую можно скачать . Для установки прогораммного обеспечения понадобится зайти на страницу и кликнуть по кнопке Launch.В результате загрузится файл actions.jnlp, который и нужно будет запустить — это установщик,который затем скачает завершающую модификацию Action(s) из сети.При первом запуске надо будет дать допустимые параметры для работы программы и поставить галочку «Доверять этому издателю».Помимо всего прочего можно сразу же скачать добавления к Action(s) с этой и установить их,просто кликнув два раза и дождаться,когда программа отрапортует,что добавление установлено и с ним можно начать работать.Вы выяснили всё что необходимо?Очень хорошо — перезапускаем приложение и начинаем знакомиться с ним поплотнее.Интерфейс программы разделен на две части.С левой стороны наблюдаются библиотека воздействий и непостоянные величины,а с правой — действующая область. Логика функционирования Action(s) очень простая — нам нужно прибавить лёгким перетаскиванием из библиотеки в действующую область,необходимое нам воздействие и настроить при необходимости его параметры. Результат функционирование 1-го воздействия,другими словами его выходные данные, считаются входными данными для следующего воздействия. В результате нам удалось своего рода создать кортеж из воздействий.В частности, на выходе мы принимаем список файлов,на последующем шаге мы их сможем скопировать,переместить,заархивировать, распаковать и многое другое.

Если два вида воздействий,которые имеют все шансы быть сопряжёнными,а следовательно,среди них в действующей области видится переход. А  так как среди них автоматически не было замечено переход, то типы данных несовместимы.В частности, на выходе мы насчитаем список строк,а на следующем рубеже попытаемся сконвертировать изображения в JPEG — это логично,что абсолютно ничего хорошего не будет при поползновениях в лоб,что бы подвергнуть обработке подобную последовательность.Направьте свой взгляд,на все воздействия,которые производятся около единственной действующей области — одно за противоположным. Операции условного перехода есть, помимо прочего кортеж можно зациклить или повторить.

Также можно спокойно перетаскивать воздействия и менять их последовательность около действующей области. При возможности можно добавить воздействие, которое требует входных данных,но их пока что нет,пока Action(s) не выскажет инициативу добавить в предшествующие шаги нужные воздействия.Для основного количества воздействий надо также настроить параметры — показать файлы, задать шаблон имени и тому подобное. Если вы не желаете жестко задавать их, то во почти всех случаях можно просто поставить галочку Show when running the workflow. Тогда при выполнении воздействия пользователя попросят показать необходимые параметры — в частности, сделать выбор список обрабатываемых файлов. В целом, для быстрого сознания предпочтительнее просто загрузить программу и потренироваться «на кошках» — тех или иных некритичных данных.

Что прикасается непостоянных, то тут все просто — их применяют в виде входных данных или параметров, а еще для неких воздействий. Их можно задавать как вручную,так и генерировать в процессе функционирования. Для того, чтобы добавить непостоянную, перетащите её в действующую область. Затем ее можно задать, например, в виде имени файла — для этого её надо будет также перетащить в необходимое поле.Стоит также отметить, частенько программа «сходит с ума» — если подвести курсор к нужному полю получается с трудом,поскольку он мечется вверх-вниз. Также надо следить за тем, что конкретно раздает или принимает непостоянная. В частности, Current Date при поползновение применения в виде имени файла раздает целую информацию о дате, времени (с двоеточием в виде разделителя!), часовом поясе etc. Разумеется, поползновения смоделировать файл с двоеточием в имени завершится крахом. Доводится принимать на вооружение обходной путь — добавлять воздействие для переименования файла, предписывать в виде источника имени эту непостоянную теперь вручную задавать корректный формат выдачи.

Для гораздо лучшего пониамния рассмотрим два примера. Этот кортеж исполняет последующую последовательность воздействий: оказывает скриншот с отсрочкой в 10 секунд и сообщением пользователя о таком, прибавляет к имени в jpeg-файла показывающего дату и время, а после этого переходит к 1-у воздействию. И так шесть раз подряд. Готовые скриншоты проникают в папку screenshots. Это обычный пример автоматизации обыденной операции.Следующая «программа» чуть сложнее.

Она делает предложение сделать выбор из папки необходимых скриншотов,копирует их в противоположную папку (неординары мы сохраним на всякий случай с копиями), слегка сократим качество изображений,упакуем приобретенные картинки в архив, переименовывает архив, заливает его на FTP-сервер, котрый имеет MD5-сумму от этого архива,записываем его в текстовый файл,который тоже заливается на сервер. Этот пример хотя и вымышленный, но попробуйте повторить подобную трансакцию несколько раз ежедневно вручную — в полной это вам быстро надоест.

Sikuli

Этот инструмент с непривычным русскому уху заглавием владеет единственной непривычной особенностью — он может узнавать по шаблону частицы на киноэкране (кнопки,полосы прокрутки, выпадающие списки и тому подобное) и действовать с ними. Программе также нужна  Java-машина. Если говорить точнее, то она являет из себя расширенный вариант реализации языка Python — Jython.Это дает во много раз больше способностей по прописанию скриптов.Если взглянуть под другим углом, вам понадобиться хотя бы поверхностно ознакомиться с этим языком программирования.Вообщем, для обычных методических скриптов ничего исследовать не стоит.

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

Этот небольший код сворачивает все окна, обнаруживает основное меню, переходит в панель регулирования,и тому подобное. В  результате этого сетевой адаптер будет получать IP-адрес автоматически.Разумеется, что на противоположном персональном комьютере подобный скрипт уже не сработает, хотя бы  потому что,Microsoft пока ещё не не разрешила менять оформление Windows.Отсюда и вероятные проблемы при работе с Sikuli. Разбирание участков изображения хотя и старое доброе, но не совершенное,да и занимает  довольно много времени. Программа может сделать ошибки и кликнуть не туда,куда надо,или,не найдя необходимый кусок на киноэкране,просто остановиться. В последующем случае мы немного усовершенствуем работу скрипта.

Это не очень большой «бот» (если это можно так обозвать) для единственной из браузерных Flash-игр. Делает он одну всего одну вещь — силится найти хотя бы два одинаковых и припаркованных рядом элемента и кликнуть по ним. Практически никакого ИИ тут конечно нет и даже не предусмотрено.Но тут есть некоторое количество значимых вещей. В первую очередь, для ускорения процесса разбирания нам нужно обследовать не весь экран,а только одну его область,которая поменьше, где сама игра и функционирует. Чтобы достичь желаемого результата в ход идет конструкция with — вписываем ее в редактор кода, кликаем по кнопке «Выделить область» и мышью сдерживаем ту часть экрана, где надо будет вести поиск. Sikuli запоминает только безотносительную точку зрения прямоугольного уделения. Если вы, например, промотаете страницу, то она уже ничего не сыщет.

Во-вторых, не упустите из своего поля зрения форматирование кода. Бригады более глубокого уровня вложенности, чем предшествующий, обязательно отбиваются пробелами или табуляцией. Бригады же 1-го уровня производятся последовательно, если не указано иное. К этому надо привыкнуть. Шаблоны для поиска на киноэкране можно перемещать и копировать в свою очередь, как обыкновенный текст. Дабы «подкрутить» разбирание, надо кликнуть по шаблону. На вкладке «Предпросмотр совпадений» не без помощи ползунка «Схожесть» можно отрегулировать строгость поиска. Чем выше ее уровень, особенно конкретное совпадение с шаблоном программа будет выискивать, но
и тратить при всем при этом больше времени и ресурсов.

Есть смысл отрегулировать этот параметр исходя из проблемы. В данном же окне Sikuli сразу выказывает, какое количество элементов она обнаружила при льющем уровне фильтрации. В нашем случае с игрой снижение точности положительно сказывается на количестве обнаруженных элементов. В неких случаях это будет только причинять неудобства. Также среди параметров есть «Перемещение цели» — места, какое будет искаться и над каким будет произведено соответствующее воздействие (клик, ввод). Для увеличения точности его тоже надо от случая к случаю корректировать.

Скрипт в случае с игрой не оптимизирован, и его можно в значительной степени значительно улучшить. В частности, создать так, для того, чтобы он запускался не единожды, а сто раз подряд — добавить в начало команду for x in range (1,100): и отбить пробелами или табуляцией все нижеследующие строки. Можно обрамить кусочки по поиску конкретного элемента системой try except. В целом, делать лучше его можно до бесконечности.

Решение

Мы рассмотрели всего пару легких и многофункциональных в освоении программ для автоматизации. Но их намного больше. Часть из них рассмотрена в веществах,ссылках,какие есть в первой половине статьи. Присутствуют и намного более комфортные и продвинутые продукты вроде AutoMate,Automation Anywhere или RoutineBot.Но они стоят очень дорого для наших задач наличных средств да и сделаны в основном для умелых тестеров.Если же вы всерьез заинтересованы автоматизацией, то советую направить свой взгляд на бесплатную программу AutoIt— она не совсем трудная,но в то же время,это сильный скриптовый язык, подобающий для автоматизации. Следовательно, ошибки непременны, и при подобном раскладе устранить их будет порой просто.Как именно поступить? Что дальше осваивать? Выбор за вами. Удачи!

[note]P.P.S. Если у Вас есть вопросы, желание прокомментировать или поделиться опытом, напишите, пожалуйста, в комментариях ниже.[/note]

Оставить комментарий