AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting
- It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages
- Features Include:
- Manipulate windows and processes
- Interact with all standard windows controls
- Scripts can be compiled into standalone executables
- Create Graphical User Interfaces (GUIs)
- Supports Regular expressions
Table of Contents
AutoIT Options
# Tags
Specifies certain keywords with predefined functions
| #comments-start | Specify that an entire section of script should be commented out. |
| #include-once | Specifies that the current file may only be included once. |
| #include | Includes a file in the current script. |
| #NoAutoIt3Execute | Specifies that the current compiled script cannot run with /AutoIt3ExecuteLine or /AutoIt3ExecuteScript switch. |
| #NoTrayIcon | Indicates that the AutoIt tray icon will not be shown when the script starts. |
| #OnAutoItStartRegister | Registers a function to be called when AutoIt starts. |
| #RequireAdmin | Specifies that the current script requires full administrator rights to run. |
@ Tags
Predefined Macros that can be used with AutoIT.
| @ScriptName | Filename of the running script. |
| @ScriptDir | Directory containing the running script. (Result does not contain a trailing backslash) |
| @ScriptFullPath | Equivalent to @ScriptDir & “\” & @ScriptName |
| @SW_MAXIMIZE | Maximizes the specified window. |
| @SW_MINIMIZE | Minimizes the specified window and activates the next top-level window in the Z order. |
| @DesktopDir | path to current user’s Desktop |
| @MyDocumentsDir | path to My Documents target |
Math functions
Some of the predefined keyword functions for math calculations.
| Exp | Calculates e to the power of a number. |
| Floor | Returns a number rounded down to the closest integer. |
| Log | Calculates the natural logarithm of a number. |
| Mod | Performs the modulus operation. |
| Random | Generates a pseudo-random float-type number. |
| Round | Returns a number rounded to a specified number of decimal places. |
| Sin | Calculates the sine of a number. |
| Sqrt | Calculates the square-root of a number. |
SEND
SEND simulates keystrokes to the current window.
| Send Command (if zero flag) | Resulting Keypress |
| {!} | ! |
| ! | ALT |
| ^ | SHIFT |
| # | WINDOWS |
| + | CTRL |
| {SPACE} | SPACE |
| {ENTER} | ENTER key on the main keyboard |
| {ALT} | ALT |
Includes Files
These contain prewritten functions for AutoIt and should be used with “#Include”.
| Array.au3 | Functions that assist with array management |
| Date.au3 | Functions that assist with dates and times |
| File.au3 | Functions that assist with files and directories |
| GuiCombo.au3 | Functions that assist with ComboBox |
| GUIConstants.au3 | Includes all GUI related constants |
| IE.au3 | Internet Explorer Automation UDF Library for Auto-It3 |
| Inet.au3 | Functions that assist with the Internet |
SLEEP
- This Function is used to delay script execution.
- “Sleep ( delay )”.
| delay | Amount of time to pause (in milliseconds). |
_SINGLETON
- Used to enforce a design paradigm where only one instance of the script may be running.
- “_Singleton($sOccurenceName [, $iFlag = 0])”.
| $sOccurenceName | String to identify the occurrence of the script. This string may not contain the \ character unless you are placing the object in a namespace (See Remarks). |
| $iFlag | [optional] Behavior options. |
| 0 – Exit the script with the exit code -1 if another instance already exists. | |
| 1 – Return from the function without exiting the script. | |
| 2 – Allow the object to be accessed by anybody in the system. This is useful if specifying a “Global\” object in a multi-user environment. |
Windows Functions
Using Clipboard
When using them you need to add a #include <Clipboard.au3>.
| _ClipBoard_Open | Opens the clipboard and prevents other applications from modifying the clipboard |
| _ClipBoard_RegisterFormat | Registers a new clipboard format |
| _ClipBoard_SetData | Places data on the clipboard in a specified clipboard format |
| _ClipBoard_GetData | Retrieves data from the clipboard in a specified format |
| _ClipBoard_GetDataEx | Retrieves data from the clipboard in a specified format |
| _ClipBoard_GetFormatName | Retrieves the name of the specified registered format |
Macro References
| @CPUArch | Returns “X86” when the CPU is a 32-bit CPU and “X64” when the CPU is 64-bit. |
| @OSArch | Returns one of the following: “X86”, “IA64”, “X64” – this is the architecture type of the currently running operating system. |
| @OSLang | Returns code denoting OS Language. See Appendix for possible values. |
| @OSVersion | Returns one of the following: “WIN_2008R2”, “WIN_7”, “WIN_2008”, “WIN_VISTA”, “WIN_2003”, “WIN_XP”, “WIN_XPe”, “WIN_2000”. |
| @OSBuild | Returns the OS build number. For example, Windows 2003 Server returns 3790 |
| @OSServicePack | Service pack info in the form of “Service Pack 3” or, for Windows 95, it may return “B” |
Mouse Management
| MouseClick | Perform a mouse click operation. |
| MouseClickDrag | Perform a mouse click and drag operation. |
| MouseDown | Perform a mouse down event at the current mouse position. |
| MouseGetCursor | Returns the cursor ID Number for the current Mouse Cursor. |
| MouseGetPos | Retrieves the current position of the mouse cursor. |
| MouseMove | Moves the mouse pointer. |
| MouseUp | Perform a mouse up event at the current mouse position. |
File Management
| FileGetPos | Retrieves the current file position. |
| FileGetShortcut | Retrieves details about a shortcut. |
| FileGetShortName | Returns the 8.3 short path+name of the path+name passed. |
| ConsoleRead | Read from the STDIN stream of the AutoIt script process. |
| ConsoleWrite | Writes data to the STDOUT stream. Some text editors can read this stream as can other programs which may be expecting data on this stream. |
| DirMove | Moves a directory and all sub-directories and files. |
| DirRemove | Deletes a directory/folder. |
| DriveGetDrive | Returns an array containing the enumerated drives. |
Windows based Functions
| WinActivate | Activates (gives focus to) a window. |
| WinActive | Checks to see if a specified window exists and is currently active. |
| WinClose | Closes a window. |
| WinExists | Checks to see if a specified window exists. |
| WinGetProcess | Retrieves the Process ID (PID) associated with a window. |
| WinGetState | Retrieves the state of a given window. |
| WinGetText | Retrieves the text from a window. |
| WinGetTitle | Retrieves the full title from a window. |
Process Management
| ProcessClose | Terminates a named process. |
| ProcessExists | Checks to see if a specified process exists. |
| ProcessGetStats | Returns an array about Memory or IO infos of a running process. |
| ProcessSetPriority | Changes the priority of a process |
| ProcessList | Returns an array listing the currently running processes (names and PIDs). |
| ProcessWait | Pauses script execution until a given process exists. |
| ProcessWaitClose | Pauses script execution until a given process does not exist. |
| Run | Runs an external program. |
Date Functions
| _NowDate | Returns the current Date in the Pc’s format. |
| _NowTime | Returns the current Time in the requested format. |
| _SetDate | Sets the current date of the system |
| _SetTime | Sets the current time of the system |
| _DateIsValid | Checks the given date to determine if it is a valid date. |
| _DateTimeFormat | Returns the date in the PC’s regional settings format. |
| _DateTimeSplit | Split a string containing Date and Time into two separate Arrays. |
Ping
- Pings a host and returns the roundtrip-time.
- “Ping ( “address/hostname” [, timeout] )”.
| address/hostname | Can be i.e. “www.autoitscript.com” or “87.106.244.38”. |
| timeout | [optional] Is the time to wait for an answer in milliseconds (default is 4000). |
Constructs in AutoIt
If…Then
- Conditionally run a single statement
- “If <expression> Then statement”
| expression | If the expression is true, the statement is executed. |
If…ElseIf…Else…EndIf
- If <expression> Then
statements
…
[ElseIf expression-n Then
[elseif statements … ]]
…
[Else
[else statements]
…
EndIf
| expression | If the expression is true, the first statement block is executed. If not, the first true ElseIf block is executed. Otherwise, the “Else” block is executed. |
For…In…Next
Syntax :
For <$Variable> In <expression>
statements
…
Next
| Variable | A variable to which an element is being assigned |
| expression | Must be an expression resulting in an Object, or an Array with at least one element |
Do…Until
Syntax :
Do
statements
…
Until <expression>
| expression | The statements in between Do and Until are executed until the expression is true. |
Bitwise Functions
BitAND
- Performs a bitwise AND operation
- “BitAND ( value1, value2 [, value n] )”
| value1 | The first number. |
| value2 | The second number. |
| value n | [optional] The nth number – up to 255 values can be specified. |
BitNOT
- Performs a bitwise NOT operation.
- “BitNOT ( value )”
| value | The number to operate on. |
BitOR
- Performs a bitwise OR operation.
- “BitOR ( value1, value2 [, value n] )”
| value1 | The first number. |
| value2 | The second number. |
| value n | [optional] The nth number – up to 255 values can be specified. |
BitXOR
- Performs a bitwise exclusive OR (XOR) operation.
- “BitXOR ( value1, value2 [, value n] )”
| value1 | The first number. |
| Value2 | The second number. |
| value n | [optional] The nth number – up to 255 values can be specified. |


