Autoit скомпилировать как консольное приложение

Обновлено: 06.07.2024

С выходом AutoIt 3 синтаксис языка был реструктурирован и приблизился к семейству BASIC. Скрипт может быть скомпилирован в независимый от установленного в системе интерпретатора исполняемый файл.

AutoIt использует симуляцию нажатия клавиш, движений мыши и манипуляции с окнами, элементами управления. Это позволяет автоматизировать задачи пользователя Windows таким образом, какой невозможен или затруднён в других языках программирования. Кроме того, этот язык компактен, самодостаточен и работает на всех версиях Windows «прямо из коробки», без внешних .dll-библиотек и записей в реестре, что позволяет безопасно использовать его на серверах.

Возможности языка включают:

AutoIt распространяется с IDE, основанном на бесплатном редакторе SciTE. Компилятор, вспомогательные утилиты и справочные материалы полностью интегрированы, что делает редактор стандартным окружением для разработчиков, использующих AutoIt. Компилятор AutoIt и среда разработки SciTE легко устанавливаются, дополнительных настроек не требуется. Есть полная документация по языку AutoIt на русском языке [1] .

Нередко AutoIt используется для создания ботов к онлайн-играм. Боты позволяют автоматизировать некоторые действия в играх, в результате пользователь может быстрее добиться нужного результата. Такое использование Autoit не одобряется сообществом, поскольку создаёт плохую репутацию программе, однако несколько подобных скриптов могут быть найдены на официальном форуме. Использование ботов рассматривается большинством пользователей AutoIt как нечестная игра, и вам не следует ожидать значительной помощи от сообщества в их создании. Многие члены сообщества вообще не рассматривают такие запросы.

Исходный код AutoIt 3.1.0 на языке С++ доступен для загрузки в архиве AutoIt; код дальнейших версий закрыт. Исходный код AutoIt использовался для создания языка AutoHotkey. Он был разработан небольшой командой, но с активной поддержкой пользователей со всего мира. Сторонняя поддержка включает, в частности, файлы справки, примеры программ, форумы техподдержки, список рассылки, утилиты.

Текущая версия языка доступна для скачивания на официальном сайте проекта, также как и предыдущие релизы.

Осторожно: скрипт для компиляции не должен содержать синтаксических ошибок, поскольку программа компиляции не проверяет синтаксис. Aut2Exe может быть использован тремя путями:

Метод 1 - Меню Пуск [ ]

Доступно только при полной установке.


1. Откройте Меню Пуск и найдите группу AutoIt v3.

2. Выберите Compile Script to .exe

3. Основное окно Aut2Exe должно появиться.

4. Используйте кнопку Browse для выбора входного файла (.au3) и выходного (.exe) файла.

5. Можно изменить иконку для выходного файла .exe - просто укажите путь к нужной иконке в поле Custom Icon (несколько иконок можно найти в Program Files\AutoIt3\Aut2Exe\Icons).

6. Ещё одна опция, которую вы хотели бы изменить - уровень сжатия (особенно при использовании FileInstall для добавления дополнительных файлов). Используйте пункт меню Compression, чтобы установить уровень сжатия. Чем выше уровень сжатия - тем дольше будет происходить компиляция. Но! Независимо от выбранного уровня сжатия скорость распаковки будет одинаковой.

7. Нажмите Convert, чтобы начать компиляцию.

Метод 2 - Правый клик [ ]

Доступно только при полной установке.

1. В Проводнике выберите файл .au3 для компиляции.

2. Вызовите контекстное меню правым кликом и выберите пункт Compile Script.


Compile-rightclick.jpg

3. Файл будет скомпилирован с таким же именем и расширением .exe.

При компиляции этим методом, Aut2Exe исользует текущие настройки для иконки/уровня сжатия (из последнего запуска Aut2Exe методом 1).

Метод 3 - Командная строка [ ]

Синтаксис командной строки при запуске программы Aut2Exe.exe:

Aut2exe.exe /in <путь к файлу .au3> [/out <путь к файлу .exe>] [/icon <путь к файлу .ico>] [/comp 0-4] [/nopack] [x64] [/bin <путь к файлу .bin>]

Ключ Использование Значение по умолчанию
/in <путь к файлу.au3> Указывает путь к файлу скрипта для компиляции. Нет. Путь к файлу должен быть указан
/out <путь к файлу.exe> Указывает путь к выходному файлу.
<путь к файлу.a3x> Указывает путь к выходному файлу для создания *.a3x файла.
Имя входного файла с расширением .exe
/icon <путь к файлу .ico> Указывает путь к иконке для скомпилированного файла. Иконка AutoIt
/comp Указывает уровень сжатия скрипта и включённых файлов (Это НЕ относится к UPX).
Число между 0 (нет) и 4 (максимум).
2
/nopack Указывает, что файл не должен быть сжат с помощью UPX после компиляции. pack
/pack Указывает, что файл должен быть сжат с помощью UPX после компиляции. pack
/x64 Указывает, что скрипт должен быть скомпилирован для системы с архитектурой x64 (64-битная). См. замечания
/x86 Указывает, что скрипт должен быть скомпилирован для системы с архитектурой x86 (32-битная). См. замечания
/console Указывает, что скрипт должен быть скомпилирован, как консольное приложение. Оконное приложение (/gui)
/gui Указывает, что скрипт должен быть скомпилирован, как оконное приложение. Оконное приложение (/gui)
/bin <путь к файлу.bin> Указывает путь к бинарной основе для компиляции скрипта. Используется файл из каталога Aut2exe

Примеры использования [ ]

В результате будет создан файл c:\myapp.exe (нормальное сжатие) с указанной иконкой для системы с архитектурой x64.

В результате будет создан файл c:\myscript.exe (нормальное сжатие) со стандартной иконкой для системы с архитектурой x86.

Замечания по использованию [ ]

Пути с пробелами должны заключаться в двойные кавычки: "C:\Program Files\Test\test.au3".

Кроме /in все ключи опциональны.

По умолчанию, 32-битный компилятор создаёт 32-битный исполняемый файл, а 64-битный компилятор - 64-битный исполняемый файл. Используйте параметры /x86 и /x64, чтобы явно указать архитектуру выходного файла.

Ключи /pass и /nodecompile не используются, начиная с версии 3.2.8.1. Они будут проигнорированы при компиляции.

Ключи /ansi и /unicode не используются, начиная с версии 3.3.0.0.

Технические детали [ ]

Скомпилированный скрипт и дополнительные файлы, включённые с помощью FileInstall, сжимаются моим собственным (Jon) алгоритмом сжатия.

Скачивание и установка

На момент написания этой статьи версия Autoit была v3.3.14.5.

Можно конечно пользоваться и NotePad++, он поддерживает синтаксис Autoit, но я предпочитаю оригинальный редактор.

Порядок установки такой:

  1. Скачиваем и устанавливаем сначала autoit-v3-setup.exe;
  2. Затем уже ставим редактор SciTE4AutoIt3.exe.

После установки у нас в меню Пуск должен появиться пункт Autoit, заходим в него и выбираем Autoit Windows Info, открываем приложение.

Откройте этот пустой файл в оригинальном редакторе и увидите пару строк по умолчанию, это комментарии, все это можно удалить.

Autoit Windows Info - Основы Autoit 3


Autoit Windows Info.

Основы Autoit

Итак, самое простое, как заставить курсор мыши бегать по экрану, кликать там где нужно, крутить колесиком мыши, щелкать правой кнопкой и тд. и тп. Основы синтаксиса и самые необходимые базовые конструкции я приведу ниже, все остальное найдете сами в интернете:

Вкладка Mouse - Основы Autoit 3


Вкладка Mouse.

Важно ! Координаты X и Y отсчитываются конкретно под ваш монитор и ваше разрешение экрана. То есть, написав скрипт у себя дома, на работе он может кликать не туда куда нужно, обязательно нужно писать координаты под конкретное разрешение монитора.

Больше автоматизации, к примеру, как сделать, чтобы курсор гулял по какому-то сайту и периодически кликал по нужным местам, при этом не прописывая кучу строк MouseClick ? Для этого, как и в любом языке, есть понятие цикл. Приведу простые истины и углубляться в виды циклов не буду. Запомните это и пока хватит:

. набор команд, любой код.

Until (пока) $i = 5

MouseClick("left", 150, 255, 1)
Sleep(1000)
MouseClick("left", 155, 269, 1)
Sleep(1500)
MouseClick("left", 120, 251, 1)
Sleep(3000)

В самом начале цикл пробежал один раз и добавил +1 переменной $a, которая теперь стала равна 1: $a = 0 + 1, затем сравнил, выполнилось ли условие, что $a = 4 ? И так до тех пор, пока условие не выполнится и $a не станет равно 4.

Насчет Sleep, как я уже говорил, это просто задержка. Советую всегда ставить Sleep между конструкциями действий, например, перемещения мыши.

И последнее, операции условий (ветвления) или как хотите называйте.

If (в скобках пишутся условия или выражения) Then (тогда)
. набор строк или команд.
Else (иначе)
. набор строк или команд.
Endif (конец ветвления)

MouseClick("left", 150, 255, 1)

MouseClick("right", 150, 255, 1)

Понятно, думаю. Если $i равно 4, то кликаем левой кнопкой мыши 1 раз по координатам 150, 255. Иначе (если $i не равно 4) кликаем правой кнопкой мыши 1 раз по координатам 150, 255.

К примеру, в созданиях ботов для игр в качестве условия может выступать цвет пикселя, на который наведен курсор. Как вы помните, в утилите кроме координат еще показывает цвет пикселя в HEX формате.

В моем примере на картинке это 0xF0F4F9 (значение можно скопировать CTRL + C).

А как получить цвет пикселя непосредственно в программе автоматически ? Для этого есть несколько способов, самый простой это конструкция:

$x = 27
$y = 445
$i = "0xF0F4F9"

$color = PixelGetColor($x, $y)

if ($i = $color) Then

MouseClick("left", 150, 255, 1)

Разберем. В переменных $x и $y лежат координаты соответственно для X и Y, куда будем перемещаться. Переменной $color присвоим значение, которое отдаст PixelGetColor. Дальше условие, если переменная $i = переменной $color, то кликаем левой кнопкой мышки 1 раз по нужным координатам.

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

Ну про колесико мыши упомяну:

Запуск скрипта

Ну хорошо, мы все написали, сохранили и хотим проверить. Как запустить скрипт Autoit на исполнение? Есть два способа:

  • В редакторе нажимаем Tools -> Go (запуск), Tools -> Stop Executing (остановка);
  • В редакторе жмем F5 (запуск) и CTRL + Break (остановка).

Если вы не расставите нужные задержки через Sleep, то не успеете остановить скрипт. Кстати, в редактор встроен отладчик, который подсветит красным неверный синтаксис и не даст запуститься скрипту, если в нем есть ошибки.

Писать можно долго, возможностей у языка очень много, это были просто основы для понимания. Если есть вопросы задавайте в комментариях. И не забывайте ставить Sleep.

fraimed

AutoIt — (произносится [ ˈɔː.təʊ ɪt ] )свободно распространяемый язык программирования для автоматизации выполнения задач в Microsoft Windows.

В ранних версиях программа преимущественно использовалась для создания скриптов автоматизации (иногда называемых макросами) для программ Microsoft Windows. Такие скрипты полезны для выполнения часто повторяющихся задач, таких как инсталляция идентичных наборов программ на большое количество компьютеров. В более поздних версиях AutoIt улучшился дизайн языка и возросла общая функциональность, что приблизило AutoIt к языкам общего назначения.

Содержание

История создания

AutoIt появился в конце 1998 года, как Си-программа для автоматизации нажатия клавиш. В январе 1999 года команда разработчиков выпустила AutoIt версии v1, который включал в себя следующие команды: Send, Run, RunWait, WinWait, WinWaitClose, WinWaitActive, WinHide, WinActivate, WinClose, WinRestore, Sleep и SetKeyDelay. AutoIt v2 был выпущен в августе того же года и включал первый вариант AutoItX, который предложил DLL / COM контроль. В течение следующих двух лет в язык были добавлены множество новых функций. В мае 2001 года исходный код AutoIt был полностью переписан на C++ и его развитие не останавливается до 2003 года, когда была выпущена первая бета-версия AutoIt v3. Спустя 100 бета-версии разработчики выпустили AutoIt v3 в феврале 2004 года. Февраль 2005 года был ознаменован выпуском AutoIt v3.1.0, в котором была добавила возможность создания графического пользовательского интерфейса (GUI). Эта версия была самымой заметной из всех, она выдвинула AutoIt на первый план в мире сценариев, сделала его конкурентом VisualBasic. AutoIt бесплатен в использовании и имеет сильную и полезную базу сообщества.

Основные достоинства языка

Интерпретатор AutoIt имеет небольшой размер, и не требует обязательной установки. Для работы достаточно основного файла, а для создания скрипта — любого текстового редактора.

Расширение скриптов и запуск

Файлы скриптов обычно имеют расширение *.au3, что соответствует названию интепретатора, с помощью которого они будут запускаться, а именно, AutoIt3.exe. Пусть мы создали скрипт: script.au3, тогда для его запуска необходимо выполнить следующую команду:

Синтаксис языка

Первая программа

Переменные

Переменные создаются с помощью ключевых слов Dim, Local, Global.

Условные конструкции

Язык обладает большим количеством различных условных конструкций: If . Then . Else . EndIf:

Конструкция "Select . Case". Применяется для выбора из большого числа вариантов. Если условие справедливо, то выполняются все следующие за ним команды вплоть до следующего выражения Case или EndSelect. Если окажутся справедливыми несколько выражений Case, то будет выполнены команды только первого из них. Пример:

Конструкция "Switch . Case"

Конструкции повторения

В AutoIt есть три вида циклических конструкций:

  1. циклы с предусловием
  2. циклы с постусловием
  3. циклы с известным количеством повторений.

Цикл "While . WEnd". Если условие верно, то все команды вплоть до WEnd будут выполняться до тех пор, пока выражение перестанет быть верным.

Цикл "Do . Until", "Делай . До". Циклическое выполнение команд до тех пор, пока указанное условие не станет верным.

Выражения "For . Next" могут быть вложены друг в друга. Цикл For завершается когда значение переменной превышает заданное значение Стоп.

Читайте также: