AutoIt

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
AutoIt
Autoitlogo.png
Тип исполнения:

интерпретируемый, компилируемый

Появился в:

Январь 1999

Автор(ы):

Джонатан Беннет и AutoIt Team

Релиз:

3.3.12.0 (1 июня, 2014)

Испытал влияние:

BASIC

Повлиял на:

AutoHotkey

Сайт:

autoitscript.com

AutoIt — свободно распространяемый язык для автоматизации выполнения задач в Microsoft Windows.

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

О программе[править | править вики-текст]

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

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

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

  • Совместимость с Windows XP / 2003 / Vista / 2008 / 7 / 2008 R2 / 8 / 8.1 / 2012
  • Версия для 64-битных систем.
  • Поддержка User Account Control (UAC) в Windows Vista.
  • Поддержка юникода, начиная с версии 3.2.4.0.
  • Запуск консольных приложений и доступ к стандартным потокам ввода-вывода.
  • Запуск программ от имени другого пользователя (функции RunAs).
  • Компиляция скрипта в EXE файл с помощью Aut2Exe.
  • Включение файлов в скомпилированный файл, которые можно извлекать при запуске.
  • Сжатие и защита исполняемого файла от декомпиляции с помощью упаковщика UPX
  • Создание графических интерфейсов GUI, информационных сообщений, форм ввода информации.
  • Вызов функций из 32-битных динамических библиотек и функций Windows API.
  • Работа с реестром Windows, буфером обмена, файлами (чтение, изменение, копирование, удаление).
  • Работа с объектами COM (component object modelling).
  • Перехват и эмуляция клавиатурных нажатий и кликов мышки.
  • Работа с окнами (особенно стандартными): передвижение, скрытие, отображение, изменение размера, активизация, закрытие и т.д. К окнам можно обращаться по их заголовку, отображаемому тексту, размеру, расположению, классу, по внутренним дескриторам (handle) Win32 API, определяемым с помощью входящей в комплект поставки утилиты AU3Info.
  • Получение информации и взаимодействие с элементами управления (особенно стандартными): поле редактирования, переключатель, список, кнопки, статусная строка и т.д., в т.ч. неактивными.
  • Интернет: чтение HTML кода страниц и скачивание файлов, работа с FTP, отправка E-mail сообщений, работа с базами данных MySQL и SQLite.
  • Работа с протоколами TCP и UDP.
  • Автоматизация работы в браузерах: Internet Explorer, Opera, FireFox.
  • Обычные элементы высокоуровневого языка, такие как работа с циклами.
  • Огромное количество функций для работы с текстом (строками), в т.ч. с регулярными выражениями в стиле Perl (используется библиотека PCRE).
  • Работа со звуком.
  • Выполнение сложных математических расчётов.
  • Простой синтаксис, похожий на BASIC.
  • AutoItX — объединённая версия в виде COM и DLL, позволяющая использовать возможности AutoIt в программах, написанных на других языках.

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

Подобно другим скриптовым языкам, AutoIt — язык третьего поколения, использующий классическую модель и переменные вариантного типа, позволяющие хранить различные типы данных, включая массивы. В AutoIt отсутствуют (или имеют ограниченную поддержку) пространства имён, объектно-ориентированное программирование, абстрактные типы данных, классы, расширенные графические функции. Однако, помимо возможностей, встроенных в ядро AutoIt, можно воспользоваться большой библиотекой готовых функций.

Популярное использование AutoIt — разработка утилит для Microsoft Windows. Такие распространённые задачи, как мониторинг веб-сайтов, мониторинг сетей, дефрагментация дисков и резервное копирование могут быть автоматизированы и скомбинированы в виде настроенной под пользователя утилиты.

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

Для упрощения разработки графических интерфейсов существует визуальный редактор форм Koda FormDesigner, имеющий интерфейс аналогичный Delphi IDE. Поддерживается визуальное создание и изменение всех доступных в AutoIt диалоговых элементов (кнопок, полей ввода, меню и т. д.)

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

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

Пример[править | править вики-текст]

Программа «Привет, мир»:

  ;Выводит стандартное окно с названием «Пример», надписью «Привет, мир!» и кнопкой «ОК».
  MsgBox(0,"Пример","Привет, мир!")

Создание диалогового окна:

  ;Выводит диалоговое окно с кнопками «ОК» и «Отмена». В случае нажатия «ОК» — выход из программы.
  ;Табуляция в примере — для удобства чтения.
  $WantExit=MsgBox(1,"Вопрос","Хотите выйти из программы?") 
    If $WantExit == 1 Then
       Exit
    EndIf

Автоматический запуск программы Блокнот:

  ;Запускает Блокнот, пишет в его окне текст, закрывает программу, отменив сохранение.
  Run("notepad.exe")
  WinWaitActive("Безымянный — Блокнот")
  Send("Вот какой-то текст.")
  WinClose("Безымянный — Блокнот")
  WinWaitActive("Блокнот")
  Send("!Н")

Создание простых часов

  #include <GUIConstantsEx.au3> ; Включение указанного файла внутрь текущего сценария. 
  ;- Окно ------------------------------
  GUICreate("Часы", 155, 111, 192, 114)
  GUISetState()
  ;-------------------------------------
  ;- Часы -------------------------------------------------------------
  AdlibRegister("MainScript", 400) ; Обновление часов
  $Clock = GUICtrlCreateLabel(@HOUR & ":" & @MIN & ":" & @SEC, 50, 20)
  ;--------------------------------------------------------------------
  ;- Настройки ---------------------
  While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
          Case $GUI_EVENT_CLOSE
              Exit
      EndSwitch
  WEnd
  ;---------------------------------
  ;- Сверка часов с компьютером -----------------------------
  Func MainScript()
      GUICtrlSetData($Clock, @HOUR & ":" & @MIN & ":" & @SEC)
   EndFunc
  ;------------------------------------------------------------


Создание окна в центре дисплея.

#include <GuiConstants.au3>
 
#cs
vCenterDialog
#ce
 
$Width = "500"
$Height = "500"
$cWidth = @DesktopWidth / 2 - $Width / 2
$cHeight = @DesktopHeight / 2 - $Height / 2
 
$Form = GUICreate("Dialog", $Width, $Height, $cWidth, $cHeight)

Сообщество AutoIt[править | править вики-текст]

Официальный англоязычный форум находится по адресу http://www.autoitscript.com/forum/. Там пользователи могут делиться своими скриптами и функциями, получать техподдержку, сообщать о багах, вносить идеи и предложения, общаться с разработчиками.

Также есть сайт русскоязычного сообщества

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]