AutoIt — скриптов език за автоматизация на Windows

AutoIt — мощен скриптов език за автоматизация на Windows: пишете скриптове, използвайте UDF библиотеки, компилирайте в EXE и ползвайте интегрирана IDE за бързо развитие.

Автор: Leandro Alegsa

AutoIt /ɔːtoʊ ɪt/ е безплатен език за програмиране за Microsoft Windows. Във версии 1 и 2 той се използва за създаване на скриптове за автоматизация на програми за Microsoft Windows. Понякога те се наричат макроси. Във версия 3 езикът за програмиране е разширен, за да може да прави повече неща.

Езикът за писане на скриптове в AutoIt 1 и 2 беше базиран на команди. Той беше създаден, за да симулира въвеждането на данни от потребителя към компютъра. От версия 3 нататък синтаксисът на AutoIt се промени. Сега той е подобен на езика за програмиране BASIC. AutoIt версия 3 е език за програмиране с общо предназначение. Той може да разполага с типове данни, като например масиви.

Скриптът на AutoIt може да бъде превърнат в самостоятелен изпълним файл. Той може да се изпълнява на компютри, на които не е инсталиран интерпретаторът AutoIt. Налице е широк набор от библиотеки с функции. Те са известни като UDF, или "Функции, дефинирани от потребителя". Някои от тях са включени стандартно. Други са достъпни от уебсайта. Те добавят допълнителни възможности към езика. AutoIt разполага със специален редактор - интегрирана среда за разработка или IDE. Тя е базирана на безплатния редактор SciTE. Компилаторът и помощният текст са включени в този специален редактор и осигуряват стандартна среда за разработчиците.

Какво може да прави AutoIt

AutoIt е предназначен главно за автоматизация на дейности в Windows и може да се използва за:

  • Автоматизация на GUI: управление на прозорци, менюта, бутони, изпращане на клавишни комбинации и управление на мишката.
  • Инсталационни скриптове и разгръщане: автоматизиране на инсталации, конфигурации и пакетиране на инструменти чрез самостоятелни .exe файлове.
  • Тестване и симулация на потребителско поведение: функционално тестване на приложения чрез симулиране на потребителски вход.
  • Администрация и управление на системи: работа с файлове и папки, запис в регистъра, планирани задачи, услуги и процеси.
  • Интеграция: извикване на DLL функции, използване на COM интерфейси, HTTP/FTP операции, връзка към бази данни чрез подходящи UDF.

Основни характеристики и възможности

  • Синтаксис, наподобяващ BASIC, с поддръжка на променливи, масиви, функции и условни оператори.
  • Възможност за компилиране на скриптове в самостоятелни .exe (често чрез инструмента Aut2Exe, включен в IDE-то).
  • Богата стандартна библиотека и голям набор от потребителски UDF (User Defined Functions), които разширяват възможностите (например за работа с интернет, бази данни, графични интерфейси и др.).
  • Поддръжка на COM обекти и директно извикване на системни DLL функции.
  • Интегрирана среда за разработка базирана на SciTE с помощни файлове, дебъгер и инструменти за компилиране.

Примерен скрипт

Ето много прост пример, който показва диалогово съобщение и отваря Notepad, въвежда текст и го записва:

 ; Пример в AutoIt MsgBox(0, "Пример", "Започва скриптът") Run("notepad.exe") WinWaitActive("Безименен - Бележник") Send("Това е текст, въведен от AutoIt.{ENTER}") Sleep(500) Send("^s") ; Ctrl+S - запис 

Изпълнение, компилиране и инструменти

AutoIt скриптовете (*.au3) могат да се изпълняват чрез интерпретатора AutoIt за разработчици. За разпространение на автоматизации е практично да се компилират в самостоятелен .exe, който може да работи на машини без инсталиран интерпретатор. Включеният в IDE инструмент (Aut2Exe) позволява лесно компилиране и опции за настройка на иконата и описанието на изпълнимия файл.

Общност, ресурси и UDF

Има активна общност от потребители и разработчици, които споделят скриптове, UDF библиотеки, примери и решения на форуми и в уеб архиви. Набора от UDF помага да се автоматизират специфични задачи — например достъп до браузъри (особено стари версии на Internet Explorer чрез COM), работа с файлови архиви, криптиране, комуникация по мрежата и интеграция с външни инструменти.

Сигурност и добри практики

  • Компилираните AutoIt изпълними файлове понякога могат да бъдат маркирани от антивирусни програми като потенциално опасни — това се дължи на автоматизацията и начина на опаковане. Винаги проверявайте и изтегляйте скриптове само от надеждни източници.
  • Документирайте вашите скриптове и използвайте коментари и версии, за да улесните поддръжката.
  • Ограничете правата на изпълнение и избягвайте да разпространявате скриптове, които съдържат пароли или други чувствителни данни в явен вид.

AutoIt остава популярен инструмент за бърза автоматизация и прототипиране в Windows среда — подходящ и за начинаещи, и за напреднали администратори и разработчици. За детайлна документация, примери и актуални UDF посетете официалния сайт и форуми на проекта.

 екранна снимка на типичен скрипт на AutoITZoom
екранна снимка на типичен скрипт на AutoIT

Функции

  • Език за писане на скриптове със структура, подобна на BASIC, за Windows
  • Компилиране в самостоятелни изпълними файлове
  • Допълнителни библиотеки и модули за конкретни приложения или приложения
  • Поддържа протоколи TCP и UDP
  • Поддържа обектния модел на компонентите (COM)
  • Извикване на функции в DLL файлове
  • Стартиране на конзолни приложения и достъп до стандартните потоци
  • Включване на файловете с данни в компилирания файл, който се извлича при стартиране
  • Създаване на графични потребителски интерфейси, включително полета за съобщения и въвеждане
  • Възпроизвеждане на звуци, пауза, възобновяване, спиране, търсене, получаване на текущата позиция на звука и получаване на дължината на звука
  • Симулиране на движенията на мишката
  • Манипулиране на прозорци и процеси
  • Автоматизиране на изпращането на потребителски вход и натискане на клавиши към приложения, както и към отделни контроли в рамките на дадено приложение
  • Поддръжка на Unicode от версия 3.2.4.0
  • Поддръжка на 64-битов код от версия 3.2.10.0
  • Поддържа регулярни изрази
  • Съвместимост с User Account Control
  • Обектно-ориентирано проектиране чрез библиотека



Употреба

AutoIt често се използва за създаване на помощен софтуер за Microsoft Windows. Тези програми могат да автоматизират рутинни задачи. Примерната употреба включва: управление на системи, мониторинг, поддръжка и инсталиране на софтуер. Използва се и за симулиране на взаимодействието с потребителя. При тази употреба приложението се "управлява" от скрипт на AutoIt, който се държи като човешки потребител. Скриптът AutoIT може да натиска клавиши, да щрака с мишката, да въвежда текст и т.н. По този начин той симулира човешки потребител на дадено приложение.

AutoIt се използва за евтина лабораторна автоматизация. Приложенията включват синхронизиране на инструменти, наблюдение на аларми и събиране на резултати. Устройства като 3D принтери също могат да бъдат управлявани.



Примери

Здравей, свят

; Осигурете библиотека от постоянни стойности. #include < MsgBoxConstants. au3> ; Показва "Hello, world!" в кутия за съобщения. MsgBox($MB_SYSTEMMODAL, "Title", "Hello, world!")

Автоматизиране на калкулатора на Windows

; Осигурете библиотека от постоянни стойности. #include < MsgBoxConstants. au3> ; Показвайте кутия със съобщения с времетраене 6 секунди. MsgBox($MB_OK, "Attention", "Avoid touching the keyboard or mouse during automation.", 6) ; Стартирайте калкулатора на Windows. Run("calc.exe") ; Изчакайте калкулаторът да стане активен с таймаут от 10 секунди. WinWaitActive("[CLASS:CalcFrame]", "", 10) ; Ако калкулаторът не се появи след 10 секунди, излезте от скрипта. If WinExists("[CLASS:CalcFrame]") = 0 Then Exit ; Автоматично въведете текущата година в калкулатора. Send(@YEAR) ; Нека забавим малко скрипта, за да можем да видим какво се случва. Sleep(600) ; Автоматично въведете "дели на 4" и след това заспивайте на 600 ms. Send("/4") Sleep(600) ; Натиснете клавиша return, за да се покаже резултатът, и заспете 600 ms. Send("{ENTER}") Sleep(600) ; Копирайте резултата в клипборда, като използвате бързата клавишна комбинация Ctrl+C в Windows. Send("^c") ; Декларирайте и присвоете съдържанието на клипборда към променлива. Local $fResult = ClipGet() ; Проверете дали променливата съдържа десетична запетая или не. If StringInStr($fResult, ".") Then ; Изведете кутия за съобщения с времетраене 5 секунди.     MsgBox($MB_OK, "Високосна година", @YEAR & " не е високосна година.", 5) Else ; Това съобщение ще се покаже само ако текущата година е високосна.     MsgBox($MB_OK, "Leap Year", @YEAR & " is a leap year.", 5) EndIf ; Затворете калкулатора на Windows - винаги почиствайте след това. WinClose("[CLASS:CalcFrame]")

Намиране на средна стойност

; Find Average by JohnOne, modified by czardas #include < MsgBoxConstants. au3> _Example() ; Изпълнете примера.  Func _Example() ; Покажете поле за въвеждане и поискайте от потребителя да въведе няколко числа, разделени със запетаи.     Local $sInput = InputBox("Find Average", "Enter some numbers separated by commas: 1,2,42,100,3")         ; Ако възникне грешка, излезте от скрипта.    If @error Then Exit ; Попълнете масив с въведените от потребителя данни.     Local $aSplit = StringSplit($sInput, ",") ; Предайте масива на функцията _Find_Average() и след това проверете за грешки.     Local $fAverage = _Find_Average($aSplit) If @error Then Exit ; Покажете резултата в полето за съобщения.     MsgBox($MB_OK, "Find Average", "Result: " & $fAverage) EndFunc ;==>_Example Func _Find_Average($aArray) ; Ако входът не е от правилния тип (масив), върнете съобщение за грешка заедно с подробностите.     If Not IsArray($aArray) Then Return SetError(1, 0, VarGetType($aArray))     ; Възможни са и по-подробни проверки, но за краткост тук се извършва само една. ; Декларирайте променлива, в която да се съхранява сумата на числата.     Local $iArraySum = 0 ; Цикъл през масива.     For $i = 1 To $aArray[0] ; Увеличете сумата с числото във всеки елемент на масива.         $iArraySum += Number($aArray[$i]) Next ; Върнете средната стойност, закръглена до два знака след десетичната запетая.     Върнете Round($iArraySum / $aArray[0], 2) EndFunc ;==>_Find_Average



История

  • януари 1999 г. - Първа версия на AutoIt (1.0)
  • август 1999 г. - AutoIt v2 и AutoItX
  • септември 1999 г. - Първа версия на AutoIt с компилатор
  • Декември 2002 г. - AutoIt v3 (публична бета версия)
  • февруари 2004 г. - AutoIt v3 (стабилна версия)
  • септември 2006 - стартиране на Auto3Lib
  • ноември 2007 г. - излиза AutoIt v3.2.10.0, Auto3Lib е включена в AutoIt v3
  • Май 2008 г. - Издадена е версия AutoIt v3.2.12.0 с добавена функционалност на графичния потребителски интерфейс
  • Декември 2008 г. - Излиза AutoIt (и AutoItX) v3.3.0.0
  • Декември 2009 - Издаден е AutoIt v3.3.2.0
  • Януари 2010 - Издаден е AutoIt v3.3.4.0
  • Март 2010 - Издаден е AutoIt v3.3.6.0
  • април 2010 - Издаден е AutoIt v3.3.6.1
  • Декември 2011 - Издаден е AutoIt v3.3.8.0
  • Януари 2012 г. - Излиза AutoIt v3.3.8.1
  • Декември 2013 - Издаден е AutoIt v3.3.10.0
  • Юни 2014 - Издаден е AutoIt v3.3.12.0
  • Юли 2015 - Излизат версиите на AutoIt v3.3.14.0 и v3.3.14.1
  • септември 2015 - AutoIt v3.3.14.2 е пуснат
  • февруари 2018 - AutoIt v3.3.14.3 е пуснат



Лиценз

Първоначално разработчиците на AutoIt публикуваха изходния код под Общия публичен лиценз на GNU (GPL).

През 2006 г. лицензът е променен за версия 3.2.0 и следващите версии на собствен лиценз със затворен код.

Част от кода на версия 3.1 беше използван за създаване на разклонение от проекта AutoHotkey. Това е разрешено съгласно условията на лиценза GPL. Общността на AutoHotkey продължава да разработва и публикува кода под GPL.



Въпроси и отговори

В: Какво представлява AutoIt?


О: AutoIt е безплатен език за програмиране за Microsoft Windows.

В: Как се използваше AutoIt във версии 1 и 2?


О: Във версии 1 и 2 той се използваше за създаване на скриптове за автоматизация на програми за Microsoft Windows, известни също като макроси.

В: Какво се промени във версия 3 на AutoIt?


О: Езикът за създаване на скриптове във версия 3 беше разширен, за да може да прави повече неща, а синтаксисът се промени, за да бъде подобен на езика за програмиране BASIC.

В: Какъв тип данни може да съдържа скриптът на AutoIt?


О: Скриптът AutoIt може да съдържа видове данни, като например масиви.

В: Може ли скрипт AutoIt да се изпълнява на компютри без инсталиран интерпретатор?


О: Да, скриптът AutoIt може да бъде превърнат в самостоятелен изпълним файл, който може да бъде стартиран на компютри, на които не е инсталиран интерпретаторът.

В: Има ли допълнителни възможности за езика?


О: Да, на разположение са широк набор от библиотеки с функции, известни като UDF или "User Defined Functions" (Функции, дефинирани от потребителя), някои от които са включени стандартно, а други са достъпни от уебсайта и добавят допълнителни възможности към езика.

В: Има ли специален редактор за разработка с AutoIt?


О: Да, има специален редактор, базиран на безплатния редактор SciTE, който включва както компилатор, така и помощен текст, предоставящ на разработчиците стандартна среда за разработка.


обискирам
AlegsaOnline.com - 2020 / 2025 - License CC3