# AutoIt

AutoIt /ɔːtoʊ ɪt/ is a freeware programming language for Microsoft Windows. In its earliest release, it was primarily intended to create automation scripts (sometimes called macros) for Microsoft Windows programs but has since grown to include enhancements in both programming language design and overall functionality.
The scripting language in AutoIt 1 and 2 was statement-driven and designed primarily for simulating user interaction. From version 3 onward, the AutoIt syntax is similar to that found in the BASIC family of languages. In this form, AutoIt is a general-purpose, third-generation programming language with a classical data model and a variant data type that can store several types of data, including arrays.
An AutoIt automation script can be converted into a compressed, stand-alone executable which can be run on computers even if they do not have the AutoIt interpreter installed. A wide range of function libraries (known as UDFs, or "User Defined Functions") are also included as standard or are available from the website to add specialized functionality. AutoIt is also distributed with an IDE based on the free SciTE editor. The compiler and help text are fully integrated and provide a de facto standard environment for developers using AutoIt.

## History

Release timeline :
| 1999 | January: First AutoIt Version (1.0) |
| 1999 | August: AutoIt v2 and AutoItX |
| 1999 | September: First AutoIt version with Compiler |
| 2000 |
| 2001 |
| 2002 | December: AutoIt v3 (Public Beta) |
| 2003 |
| 2004 | February: AutoIt v3 (Stable) |
| 2005 |
| 2006 | September: Auto3Lib started |
| 2007 | November: AutoIt v3.2.10.0 released, Auto3Lib incorporated into AutoIt v3 |
| 2008 | May: AutoIt v3.2.12.0 released, incorporating added GUI functionality |
| 2008 | December: AutoIt (and AutoItX) v3.3.0.0 released |
| 2009 | December: AutoIt v3.3.2.0 released |
| 2010 | January: AutoIt v3.3.4.0 released |
| 2010 | March: AutoIt v3.3.6.0 released |
| 2010 | April: AutoIt v3.3.6.1 released |
| 2011 | December: AutoIt v3.3.8.0 released |
| 2012 | January: AutoIt v3.3.8.1 released |
| 2013 | December: AutoIt v3.3.10.0 released |
| 2014 | June: AutoIt v3.3.12.0 released |
| 2015 | July: AutoIt v3.3.14.0 and v3.3.14.1 released |
| 2015 | September: AutoIt v3.3.14.2 released |
| 2016 |
| 2017 |
| 2018 | February: AutoIt v3.3.14.3 released |
| 2018 | March: AutoIt v3.3.14.5 released |
| 2019 |
| 2020 |
| 2021 |
| 2022 | March: AutoIt v3.3.16.0 released |
| 2022 | September: AutoIt v3.3.16.1 released |
AutoIt1 and AutoIt2 were closed-source projects, and had a very different syntax than AutoIt3, whose syntax is more like VBScript and BASIC.
AutoIt3 was initially free and open-source, licensed under the terms of the GNU General Public License, with its initial public release 3.0.100 in February 2004, and had open-source releases in March 2004 and August 2004. Version 3.0.102, released in August 2004, was initially open-source, but by January 2005 was distributed as closed-source. Subsequent releases, starting from the February 2005 release of version 3.1.0, were all closed-source. Version 3.1.0 was also the first release with support for GUI scripts.

### Related projects

The free and open-source AutoHotkey project derived 29 of its functions from the AutoIt 3.1 source code. The AutoHotkey syntax is quite different from AutoIt3 syntax, and rather resembles AutoIt2 syntax.

## Features

AutoIt is typically used to produce utility software for Microsoft Windows and to automate routine tasks, such as systems management, monitoring, maintenance, or software installation. It is also used to simulate user interaction, whereby an application is "driven" (via automated form entry, keypresses, mouse clicks, and so on) to do things by an AutoIt script.
AutoIt can also be used in low-cost laboratory automation. Applications include instrument synchronization, alarm monitoring and results gathering. Devices such as CNC routers and 3D-printers can also be controlled.
* 64-bit code support from version 3.2.10.0
* Add-on libraries and modules for specific apps
* Automate sending user input and keystrokes to apps, as well as to individual controls within an app
* Call functions in DLL files
* Compatible with User Account Control
* Compiling into standalone executables
* Create graphical user interfaces, including message and input boxes
* Include data files in the compiled file to be extracted when running
* Manipulate windows and processes
* Object-oriented design through a library
* Play sounds, pause, resume, stop, seek, get the current position of the sound and get the length of the sound
* Run console apps and access the standard streams
* Scripting language with BASIC-like structure for Windows
* Simulate mouse movements
* Supports component object model (COM)
* Supports regular expressions
* Supports TCP and UDP protocols
* Unicode support from version 3.2.4.0