AutoIt
Encyclopedia
AutoIt is a freeware
Freeware
Freeware is computer software that is available for use at no cost or for an optional fee, but usually with one or more restricted usage rights. Freeware is in contrast to commercial software, which is typically sold for profit, but might be distributed for a business or commercial purpose in the...

 automation
Automation
Automation is the use of control systems and information technologies to reduce the need for human work in the production of goods and services. In the scope of industrialization, automation is a step beyond mechanization...

 language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 for Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

. In its earliest release, the software 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.

With the release of Version 3, the syntax of AutoIt has been restructured to be more like the BASIC
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....

 family of languages. It is a third-generation programming language
Third-generation programming language
A third-generation programming language is a refinement of a second-generation programming language. The second generation of programming languages brought logical structure to software. The third generation brought refinements to make the languages more programmer-friendly...

 using a classical data model, utilizing a variant data type that can store several types of data, including arrays. It is compatible with Windows 95
Windows 95
Windows 95 is a consumer-oriented graphical user interface-based operating system. It was released on August 24, 1995 by Microsoft, and was a significant progression from the company's previous Windows products...

, 98
Windows 98
Windows 98 is a graphical operating system by Microsoft. It is the second major release in the Windows 9x line of operating systems. It was released to manufacturing on 15 May 1998 and to retail on 25 June 1998. Windows 98 is the successor to Windows 95. Like its predecessor, it is a hybrid...

, ME
Windows Me
Windows Millennium Edition, or Windows Me , is a graphical operating system released on September 14, 2000 by Microsoft, and was the last operating system released in the Windows 9x series. Support for Windows Me ended on July 11, 2006....

, NT4, 2000
Windows 2000
Windows 2000 is a line of operating systems produced by Microsoft for use on personal computers, business desktops, laptops, and servers. Windows 2000 was released to manufacturing on 15 December 1999 and launched to retail on 17 February 2000. It is the successor to Windows NT 4.0, and is the...

, XP
Windows XP
Windows XP is an operating system produced by Microsoft for use on personal computers, including home and business desktops, laptops and media centers. First released to computer manufacturers on August 24, 2001, it is the second most popular version of Windows, based on installed user base...

, 2003, Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...

 and Windows 7 (however, support for operating systems older than Windows 2000
Windows 2000
Windows 2000 is a line of operating systems produced by Microsoft for use on personal computers, business desktops, laptops, and servers. Windows 2000 was released to manufacturing on 15 December 1999 and launched to retail on 17 February 2000. It is the successor to Windows NT 4.0, and is the...

 was discontinued with the release of v3.3.0).

An AutoIt automation script can be compiled into a compressed, stand-alone executable which can be run on computers that do not have the AutoIt interpreter installed. A wide range of function libraries (known as UDF's, 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
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 based on the free SciTE
SciTE
SciTE or SCIntilla based Text Editor is a cross-platform text editor written by Neil Hodgson using the Scintilla editing component. It is licensed under a minimal version of the Historical Permission Notice and Disclaimer...

 editor. The compiler and help text are fully integrated and provide a de facto standard environment for developers using AutoIt.

Features

  • Scripting language with BASIC-like structure for Windows Desktop Environment.
  • Add-on libraries and modules for specific applications.
  • On-line support forum for AutoIt users and developers.
  • Supports TCP
    Transmission Control Protocol
    The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...

     and UDP
    User Datagram Protocol
    The User Datagram Protocol is one of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol network without requiring...

     protocols.
  • Supports COM (component object model
    Component Object Model
    Component Object Model is a binary-interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages...

    ling) objects.
  • Call functions in Win32 DLLs.
  • Run console applications and access the standard streams
    Standard streams
    In Unix and Unix-like operating systems , as well as certain programming language interfaces, the standard streams are preconnected input and output channels between a computer program and its environment when it begins execution...

    .
  • Include files in the compiled file to be extracted when run.
  • GUI
    Graphical user interface
    In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

     interfaces, create message and input boxes.
  • Play sounds, pause, resume, stop, seek, get the current position of the sound and get the length of the sound.
  • Simulate mouse
    Mouse (computing)
    In computing, a mouse is a pointing device that functions by detecting two-dimensional motion relative to its supporting surface. Physically, a mouse consists of an object held under one of the user's hands, with one or more buttons...

     movements.
  • Manipulate windows and processes.
  • Automate sending user input and keystrokes to applications, as well as to individual controls within an application.
  • Scripts can be compiled into standalone executables.
  • Unicode support from version 3.2.4.0.
  • 64-bit code support from version 3.2.10.0.
  • Supports regular expressions.
  • Works with Windows Vista
    Windows Vista
    Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...

    's User Account Control
    User Account Control
    User Account Control is a technology and security infrastructure introduced with Microsoft's Windows Vista and Windows Server 2008 operating systems, with a more relaxed version also present in Windows 7 and Windows Server 2008 R2...

    .
  • Object oriented design through library

Limitations

  • AutoIt is single threaded
    Thread (computer science)
    In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

     which makes asynchronous programming, concurrency and parallelism (e.g. communications applications) extremely difficult.

(This can be worked around through the use of such things as multiple processes
Process (computing)
In computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system , a process may be made up of multiple threads of execution that execute instructions concurrently.A computer program is a...

, Component Object Model
Component Object Model
Component Object Model is a binary-interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages...

 etc. but it would be much less onerous if a multithreading
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

 API was provided for use within the language itself or its libraries.)
  • AutoIt applications sometimes get a false positive report from virus scanners using heuristics, because the application is a self extracting executable.

Usage

AutoIt can be used to produce utility software
Utility software
Utility software is system software designed to help analyze, configure, optimize or maintain a computer. A single piece of utility software is usually called a utility or tool....

 for Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 and automate common tasks, such as website monitoring
Website monitoring
Website monitoring is the process of testing and verifying that end-users can interact with a website or web application. Website monitoring is often used by businesses to ensure that their sites are live and responding....

, network monitoring
Network monitoring
The term network monitoring describes the use of a system that constantly monitors a computer network for slow or failing components and that notifies the network administrator in case of outages...

, disk defragging and backup
Backup
In information technology, a backup or the process of backing up is making copies of data which may be used to restore the original after a data loss event. The verb form is back up in two words, whereas the noun is backup....

. It is also used to simulate application users, whereby an application
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...

 is driven by an AutoIt script in place of manual application control during software testing
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...

. It is also commonly used for developing Computer game bot
Computer game bot
A bot, most prominently in the first-person shooter types , is a type of weak AI expert system software which for each instance of the program controls a player in deathmatch, team deathmatch and/or cooperative human player. Computer bots may play against other bots and/or human players in unison,...

s, for automating in-game tasks.

Hello world


Displays "Hello, world!" in a MsgBox and exits.
MsgBox(0, "Title", "Hello, world!")
Exit


Find Average



Finds the average of numbers specified by a user.
The numbers must be delimited by commas.
  1. NoTrayIcon
  2. include
  3. include

  1. region---------------GUI-----------------------

$form = GUICreate("Average Finder", 300, 100)
$label = GUICtrlCreateLabel("Enter the numbers to be averaged separated by commas", 19, 0)
$textbox = GUICtrlCreateInput("", 20, 20, 220)
$label1 = GUICtrlCreateLabel("=", 245, 20, 30, 20)
$ansLabel = GUICtrlCreateLabel("", 255, 20, 50, 20)
$button = GUICtrlCreateButton("Find Average", 100, 40)
GUISetState(@SW_SHOW)
  1. endregion---------------END GUI-----------------------


While 1
$msg = GUIGetMsg
If $msg = $GUI_EVENT_CLOSE Then Exit
If $msg = $button Then
$answer = _findAvg(GuiCtrlRead($textbox))
if $answer Then
GUICtrlSetData($ansLabel,$answer)
Else
GUICtrlSetData($ansLabel,"Error. Malformed input.")
EndIf
EndIf
WEnd

Func _findAvg($nums)
Local $sData
Local $ans
;Clean up input ----------------->
$chk = StringRight($nums, 5)
If $chk = "," Then $nums = StringTrimRight($nums, 1)
If StringInStr($nums, ",") < 1 Then
return false
EndIf
;---------------------------------->
$sData = StringSplit($nums, ",")
$ans = 0
For $i = 1 To $sData[0]
$ans += $sData[$i]
Next
$ans = $ans / $sData[0]
Return floor($ans)
EndFunc ;

>_findAvg

History
  • December 1998 - Idea of C program that should send keystrokes
  • January 1999 - First AutoIt Version (1.0)
  • August 1999 - AutoIt v2 and AutoItX
  • September 1999 - First AutoIt version with Compiler
  • December 2002 - AutoIt v3 (Public Beta)
  • February 2004 - AutoIt v3 (Stable)
  • September 2006 - Auto3Lib started
  • November 2007 - AutoIt v3.2.10.0 released, Auto3Lib incorporated into AutoIt v3
  • May 2008 - AutoIt v3.2.12.0 released, incorporating added GUI functionality
  • December 2008 - AutoIt (and AutoItX) v3.3.0.0 released
  • December 2009 - AutoIt v3.3.2.0 released
  • January 2010 - AutoIt v3.3.4.0 released
  • March 2010 - AutoIt v3.3.6.0 released
  • April 2010 - AutoIt v3.3.6.1 released

The developers of AutoIt originally released the source code under the GPL license but the practice was discontinued beginning with version 3.2.0 in August 2006. Some of the code from version 3.1 was used to create a fork by the AutoHotkey
AutoHotkey
AutoHotkey is a free, open source macro-creation and automation software utility which allows users to automate repetitive tasks. Any application user interface can be modified by AutoHotkey...

 project, where now the community is continuing to develop the code as GPL.
See also

  • AutoHotkey
    AutoHotkey
    AutoHotkey is a free, open source macro-creation and automation software utility which allows users to automate repetitive tasks. Any application user interface can be modified by AutoHotkey...

  • Automator
    Automator (software)
    Automator is an application developed by Apple for Mac OS X that implements point-and-click creation of workflows for automating repetitive tasks into batches for quicker alteration, thus saving time and effort over human intervention to manually change each file separately...

     (for Macintosh)
  • iMacros
    IMacros
    iMacros is an extension for the Mozilla Firefox, Google Chrome, and Internet Explorer web browsers which adds record and replay functionality similar to that found in web testing and form filler software. The macros can be combined and controlled via JavaScript. Demo macros and JavaScript code...

  • thinBasic
    ThinBasic
    thinBasic is a BASIC-like computer programming language interpreter with a central core engine architecture surrounded by many specialized modules...

  • Visual Basic
    Visual Basic
    Visual Basic is the third-generation event-driven programming language and integrated development environment from Microsoft for its COM programming model...

  • Winbatch
    Winbatch
    Winbatch is a Microsoft Windows scripting language developed by Wilson WindowWare. Its environment includes an interpreter and a code editor along with a dialog designer and optional compiler to create self-contained executables....

  • Expect
    Expect
    Expect is a Unix automation and testing tool, written by Don Libes as an extension to the Tcl scripting language, for interactive applications such as telnet, ftp, passwd, fsck, rlogin, tip, ssh, and others. It uses Unix pseudo terminals to wrap up subprocesses transparently, allowing the...


External links
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK