Форум » Методички » AutoIt3 - автоматизация рутинных действий, утилиты » Ответить

AutoIt3 - автоматизация рутинных действий, утилиты

Knivy: AutoIt3 - это замечательный скриптовый язык программирования, удобный для написания различных утилит. Вики (на русском) Официальный сайт (на английском) Русское сообщество Скачать! Изначально язык предназначался для автоматизации программ Windows: например, чтобы при установке программ во всех окошках вида "вы действительно хотите установить эту программу?" кнопочки "Ок" сами нажимались. За это язык любим различными админами, т.к. позволяет очень многие их обязанности автоматизировать (например, организовать установку большого пакета программ на множество разных компьютеров). Но он может больше этого: работать с реестром, с интернетом, файлами, строками, в том числе юникодовскими, много чего. Конечно, библиотека не так велика, как, скажем, у Python, поскольку у AutoIt, насколько знаю, нет компаний-покровителей, он развивается исключительно силами энтузиастов (автор Jon Bennett и его помощники), так что расчёты для своей кандидатской лучше делать не на нём, но для многих целей его функциональность достаточна. Кроме того, это очень простой в освоении и написании программ язык. Синтаксис похож на старые простенькие версии Basic, есть подробная справка, в т.ч. на русском, а процесс написания программы похож на работу с методичкой. Например, если нам нужно удалять файлы, то ищем в справке по функциям раздел File (Работа с файлами), в нём находим функцию FileDelete (ФайлУдалить), копируем её формулу и подставляем свои значения параметров в соответствии с кратким и доходчивым описанием. Если что-то неясно, есть примеры применения. Переменные не обязательно декларировать, а их тип определяется автоматически по тому, какие данные вы им присваиваете. Есть стандартные циклы (while, for) и условия (if, select case), возможность создавать свои функции (UDF = user defined functions) и проч. При компиляции скрипта автоматически генерируется exe-файл (уже сжатый UPX), который можно запускать на любом компьютере, в т.ч. там, где не установлен AutoIt. Можно организовать установку файлов вместе с запуском скрипта, загрузку dll и т.д. Этот язык можно начинать изучать прямо в процессе написания своей первой программы на нём, причём незачем читать пухлые книги-руководства и делать бесполезные учебные программы. В нём нет всяких сложностей вроде объектно-ориентированности и головоломных красиво-кратких, но интуитивно не понятных конструкций, а если что-то сложное используется (например COM), то объяснено кратко и доходчиво. При этом, как говорилось, язык обладает довольно большим набором возможностей. Ещё одно его преимущество - возможность достаточно легко создавать простенький графический интерфейс (окна сообщений, диалоговые окна и проч., в т.ч. с использованием ActiveX). Для этого предусмотрены соответствующие функции: например, одна функция, чтобы создать окно, другая функция, чтобы поставить в нём переключаемую галочку и т.п. Причём всякие стандартные кнопки и пункты меню (свернуть-развернуть и т.п.) сразу же будут работать, без всякого дополнительного кода. Есть программы для визуализации этого процесса создания интерфейса, но для утилит обычно вполне достаточно знать пару простеньких функций типа InputBox (окно, запрашивающее у пользователя ввод какой-нибудь информации) и MsgBox (окно с сообщением пользователю). Недостатки: Как упоминалось, язык поддерживается небольшим количеством энтузиастов, поэтому не стоит надеяться на быстрое исправление багов, если их вдруг найдёте (впрочем, это маловероятно, к тому же обычно можно найти обходной путь). Исходный код: Исходные коды закрыты. И с ними связана какая-то не вполне мне ясная история. Раньше (в предыдущих версиях) код был открыт, а любую программу на этом языке можно было декомпилировать стандартным средством. Потом, по просьбам пользователей, убрали возможность декомпиляции. А позже закрыли и код. По одной найденной мною версии, потому что кто-то продавал этот язык без ведома авторов. По другой версии, автор поссорился с одним из помощников (Chris Mallett), требовавшим добавить новую фишку в язык (горячие клавиши) и, не добившись понимания, сделавшим свой новый язык AutoHotKey с горячими клавишами на базе исходных кодов AutoIt. AutoHotKey Как бы там ни было на самом деле, но язык AutoHotKey существует, с открытыми (GNU) исходными кодами на языке Visual С++7 (создан с помощью бесплатной MS Visual studio Express 2008). И в них местами действительно упоминаются исходные коды AutoIt, которые были когда-то GNU. Его идея в том, чтобы автоматизировать действия на компьютере, привязывая их к любым комбинациям горячих клавиш. Скачать Имеется форум с множеством бесплатных скриптов на этом языке, позволяющих, например, настроить запуск определённых программ по знаку-жесту, нарисованному мышью при нажатой правой клавише, или организовать автоматическое выполнение каких-нибудь действий, например поиска, по сайту. Короче, по Knivy-классификации языков управления устройствами (a.k.a программирования) по степени лёгкости изучения: 1 уровень - языки, для которых надо думать, как устройство, для которого пишется программа (ассемблер); 2 уровень - языки, на которых словно пишешь новую ОС (C++, Java); 3 уровень - языки, для которых надо читать кучу книг и чужого кода (Fortran, Matlab и проч.); 4 уровень - языки, для которых надо прочитать пару-тройку книжек (Python); 5 уровень - языки, с которыми можно работать по методичке (AutoIt, QuickBMS); 6 уровень - языки, для которых сам пишешь методичку (AutoHotKey сюда замахнулся); 7 уровень - языки, которые сами догадываются, что ты имеешь в виду под тем или иным словом. Мой опыт С AutoIt познакомилась с полгода назад, когда надо было написать распаковщик для pfp. Знания программирования у меня были ненамного выше, чем пользование функциями СУММ и ЕСЛИ в Excel, так что даже Visual Basic показался сложноватым и громоздким, но вот с этим языком удалось легко и непринуждённо за неделю распаковщик написать. За полгода пользования нашёлся лишь один баг, причём в моём коде (уже исправлен), считаю это хорошей характеристикой для языка. Помимо этого на нём же написала ещё пару утилит для перекодировки некоторых игровых шрифтов, при этом нашла и один баг, который, судя по всему, всё же в языке - при побайтовом считывании русских символов в какой-то из кодировок. Об этом доложилась на сайт автора, но в программе вполне легко удалось это обойти путём введения дополнительного временного файла с целью перевода в другую кодировку, где всё нормально работает. А вот про конкурента - AutoHotKey узнала уже в процессе подготовки данной статьи. Если появятся у меня об этих языках какие-то новые сведения, постараюсь здесь отписаться. Автор Knivy, 2010-2011. Впервые опубликовано на perevodiki.forum24.ru.

Ответов - 0



полная версия страницы