AutoIt

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

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

AutoIt використовує симуляцію натиснення клавіш, рухів миші і маніпуляції з вікнами, елементами керування. Це дозволяє автоматизувати завдання користувача Windows таким чином, який неможливий або утруднений в інших мовах програмування. Крім того, ця мова компактний, самодостатній і працює на всіх версіях Windows "прямо з коробки", без зовнішніх. Dll-бібліотек і записів в реєстрі, що дозволяє безпечно використовувати його на серверах.

Можливості мови включають:

  • Сумісність з Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7/2008 R2
  • Версія для 64-бітових систем.
  • Підтримка User Account Control (UAC) в Windows Vista.
  • Підтримка Unicode, починаючи з версії 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. Він був розроблений невеликою командою, але з активною підтримкою користувачів з усього світу. Стороння підтримка включає, зокрема, файли довідки, приклади програм, форуми техпідтримки, список розсилки, утиліти.

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


1. Приклад

Програма Привіт, світ":

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

Створення діалогового вікна:

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

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

 ; Запускає Блокнот, пише в його вікні текст, закриває програму, скасувавши збереження. Run ("notepad.exe") WinWaitActive ("Безіменний - Блокнот") Send ("Ось якийсь текст.") WinClose ("Безіменний - Блокнот") WinWaitActive ("Блокнот") Send ("! Н") 

2. Спільнота AutoIt

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

Також є сайт російськомовного співтовариства

Примітки

  1. AutoIt Documentation Localization - www.autoitscript.com/site/autoit/documentation-localization/ (Англ.)