<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.autoitscript.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rt01</id>
	<title>AutoIt Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.autoitscript.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rt01"/>
	<link rel="alternate" type="text/html" href="https://www.autoitscript.com/wiki/Special:Contributions/Rt01"/>
	<updated>2026-05-14T02:24:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=ADO_Example_Excel&amp;diff=13173</id>
		<title>ADO Example Excel</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=ADO_Example_Excel&amp;diff=13173"/>
		<updated>2015-08-15T12:40:37Z</updated>

		<summary type="html">&lt;p&gt;Rt01: Example didn&amp;#039;t work with $iOptions = 2 (adCmdTable)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Read XLS file and display the cells of a range =&lt;br /&gt;
The following example&lt;br /&gt;
* Reads the cells of a range of an XLS file and displays two columns of each row&lt;br /&gt;
* The Excel worksheet has no header row&lt;br /&gt;
Example AutoIt script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global Const $iCursorType = 0 ; adOpenForwardOnly&lt;br /&gt;
Global Const $iLockType = 1 ; adLockReadOnly&lt;br /&gt;
Global Const $iOptions = 512 ; adCmdTableDirect - Return all rows from the specified table&lt;br /&gt;
Global $oADOConnection = ObjCreate(&amp;quot;ADODB.Connection&amp;quot;) ; Create a connection object&lt;br /&gt;
Global $oADORecordset = ObjCreate(&amp;quot;ADODB.Recordset&amp;quot;) ; Create a recordset object&lt;br /&gt;
Global $sFilename = @ScriptDir &amp;amp; &amp;quot;\ADO_Example_Excel.xls&amp;quot;&lt;br /&gt;
Global $sADOConnectionString = &#039;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&#039; &amp;amp; $sFilename &amp;amp; &#039;;Extended Properties=&amp;quot;Excel 8.0;HDR=No&amp;quot;&#039;&lt;br /&gt;
$oADOConnection.Open($sADOConnectionString) ; Open the connection&lt;br /&gt;
Global $sADOSQL = &amp;quot;Select F1,F2 FROM [Sheet1$A1:B2]&amp;quot; ; Select all records and all fields&lt;br /&gt;
$oADORecordset.Open($sADOSQL, $oADOConnection, $iCursorType, $iLockType, $iOptions) ; Issue the SQL query&lt;br /&gt;
With $oADORecordset&lt;br /&gt;
    While Not .EOF ; repeat until End-Of-File (EOF) is reached&lt;br /&gt;
        ; Write the content of all fields to the console separated by | by processing the fields collection&lt;br /&gt;
        ConsoleWrite(&amp;quot;Process the fields collection:          &amp;quot;)&lt;br /&gt;
        For $oField In .Fields&lt;br /&gt;
            ConsoleWrite($oField.Value &amp;amp; &amp;quot;|&amp;quot;)&lt;br /&gt;
        Next&lt;br /&gt;
        ConsoleWrite(@CR)&lt;br /&gt;
        ; Write a second line by accessing all fields of the collection by name or item number&lt;br /&gt;
        ConsoleWrite(&amp;quot;Process the fields by name/item number: &amp;quot; &amp;amp; .Fields(&amp;quot;F1&amp;quot;).Value &amp;amp; &amp;quot;|&amp;quot; &amp;amp; .Fields(1).Value &amp;amp; &amp;quot;|&amp;quot; &amp;amp; @CR)&lt;br /&gt;
        .MoveNext ; Move To the Next record&lt;br /&gt;
    WEnd&lt;br /&gt;
EndWith&lt;br /&gt;
$oADORecordset.Close ; Close the recordset&lt;br /&gt;
$oADORecordset = 0 ; Release the recordset object&lt;br /&gt;
$oADOConnection.Close ; Close the connection&lt;br /&gt;
$oADOConnection = 0 ; Release the connection object&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Input file: [[Media:ADO_Example_Excel.xls|ADO_Example_Excel.xls]]&lt;br /&gt;
&lt;br /&gt;
Result:&lt;br /&gt;
 Process the fields collection:          F1|F2|&lt;br /&gt;
 Process the fields by name/item number: F1|F2|&lt;br /&gt;
 Process the fields collection:          F1.1|F2.1|&lt;br /&gt;
 Process the fields by name/item number: F1.1|F2.1|&lt;br /&gt;
&lt;br /&gt;
[[Category:ADO]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Active_Directory_UDF_-_General&amp;diff=13166</id>
		<title>Active Directory UDF - General</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Active_Directory_UDF_-_General&amp;diff=13166"/>
		<updated>2015-08-10T07:47:03Z</updated>

		<summary type="html">&lt;p&gt;Rt01: MSDN link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Active Directory UDF offers functions to control and manipulate Microsoft Active Directory. This page describes the Active Directory UDF in general.&lt;br /&gt;
== Concept ==&lt;br /&gt;
The Active Directory UDF is based upon this concept:&lt;br /&gt;
&lt;br /&gt;
* Open a connection to the AD, do all the work then close the connection&lt;br /&gt;
* Access one domain at a time. Cross domain scripts are not possible with this UDF&lt;br /&gt;
* Access the Global Catalog to search the complete forest&lt;br /&gt;
* Access to the Active Directory can be made secure using SSL for both the domain and the Global Catalog&lt;br /&gt;
&lt;br /&gt;
More information can be found on [https://msdn.microsoft.com/en-us/library/aa746492(v=vs.85).aspx MSDN].&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
You have to run version 3.3.6.0 of AutoIt or newer.&lt;br /&gt;
== Structure ==&lt;br /&gt;
Every script calls at least the following functions:&lt;br /&gt;
 _AD_Open()      ; Open a connection to the Active Directory&lt;br /&gt;
 _AD_*           ; Any function that queries or alters the Active Directory&lt;br /&gt;
 _AD_Close()     ; Close the connection&lt;br /&gt;
== Open a connection ==&lt;br /&gt;
There are multiple ways to open a connection to the Active Directory. &amp;lt;br&amp;gt;Only one connection can be open at any time. This means you can&#039;t connect to two domains at the same time. You have to connect to the first domain, do all the work, close the connection and open the connection to the second domain. This is true for the Global Catalog as well.&lt;br /&gt;
=== To current domain ===&lt;br /&gt;
No additional information is needed if you want to connect to the domain the computer is already connected to. _AD_Open uses the credentials of the currently logged in user to connect to the domain.&lt;br /&gt;
If the currently logged in user doesn&#039;t have the required privileges you can specify the credentials of a different user.&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;br&amp;gt;&lt;br /&gt;
Open an AD connection to the domain the computer has logged in and use the windows logon credentials:&lt;br /&gt;
 $iResult = _AD_Open()&lt;br /&gt;
Example:&amp;lt;br&amp;gt;&lt;br /&gt;
Open an AD connection to the domain the computer has logged in and specify the credentials to use. The UserID has to be in one of the following formats (assume the samAccountName = DJ and the domain name = microsoft):&lt;br /&gt;
 Windows Login Name   e.g. &amp;quot;DJ&amp;quot;&lt;br /&gt;
 NetBIOS Login Name   e.g. &amp;quot;microsoft\DJ&amp;quot;&lt;br /&gt;
 User Principal Name  e.g. &amp;quot;DJ@microsoft.com&amp;quot;&lt;br /&gt;
The following examples are equivalent:&lt;br /&gt;
 $iResult = _AD_Open(&amp;quot;DJ&amp;quot;, &amp;quot;password of DJ&amp;quot;)&lt;br /&gt;
 $iResult = _AD_Open(&amp;quot;microsoft\DJ&amp;quot;, &amp;quot;password of DJ&amp;quot;)&lt;br /&gt;
 $iResult = _AD_Open(&amp;quot;DJ@microsoft.com&amp;quot;, &amp;quot;password of DJ&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
If you want to connect to a specific Domain Controller in the domain then simply specify the HostServer.&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;br&amp;gt;&lt;br /&gt;
  $iResult = _AD_Open(&amp;quot;DJ&amp;quot;, &amp;quot;password of DJ&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;DC1.domain.com&amp;quot;) ; setting alternate credentials&lt;br /&gt;
  $iResult = _AD_Open(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;DC1.domain.com&amp;quot;)                 ; using the windows login credentials&lt;br /&gt;
&lt;br /&gt;
=== To another domain ===&lt;br /&gt;
Much more information is needed if you want to connect to a different domain than the computer is already connected to. You have to specify DNSDomain, HostServer and Configuration. If you don&#039;t specify alternate credentials then the credentials of the currently logged in windows user are used.&lt;br /&gt;
&lt;br /&gt;
Examples of the needed parameters:&lt;br /&gt;
 $sDNSDomainParam     = Active Directory domain name e.g. &amp;quot;DC=subdomain,DC=example,DC=com&amp;quot;&lt;br /&gt;
 $sHostServerParam    = Name of Domain Controller    e.g. &amp;quot;servername.subdomain.example.com&amp;quot; or &amp;quot;subdomain.example.com&amp;quot; (access the domain root)&lt;br /&gt;
 $sConfigurationParam = Configuration naming context e.g. &amp;quot;CN=Configuration,DC=subdomain,DC=example,DC=com&amp;quot;&lt;br /&gt;
Example:&amp;lt;br&amp;gt;&lt;br /&gt;
Open an AD connection to another domain and use the windows logon credentials:&lt;br /&gt;
 $iResult = _AD_Open(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;DC=subdomain,DC=example,DC=com&amp;quot;, &amp;quot;servername.subdomain.example.com&amp;quot;, &amp;quot;CN=Configuration,DC=subdomain,DC=example,DC=com&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;br&amp;gt;&lt;br /&gt;
Open an AD connection to another domain and specify alternate credentials:&lt;br /&gt;
 $iResult = _AD_Open(&amp;quot;DJ&amp;quot;, &amp;quot;password of DJ&amp;quot;, &amp;quot;DC=subdomain,DC=example,DC=com&amp;quot;, &amp;quot;servername.subdomain.example.com&amp;quot;, &amp;quot;CN=Configuration,DC=subdomain,DC=example,DC=com&amp;quot;)&lt;br /&gt;
More information on how to specify credentials can be found [[Active_Directory_UDF_-_General#To_current_domain|here]].&lt;br /&gt;
&lt;br /&gt;
=== From a workgroup ===&lt;br /&gt;
If your computer is not connected to any domain you have to provide the same information as if connecting to another domain. How to connect to another domain is described [[Active_Directory_UDF_-_General#To_another_domain|here]].&lt;br /&gt;
&lt;br /&gt;
=== To a Global Catalog ===&lt;br /&gt;
If you want to connect to a Global Catalog - so the search functions work on the whole forest and not just on a single domain - you have to append port number 3268 to the HostServer parameter.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 $iResult = _AD_Open(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;DC1.company.com:3268&amp;quot;)&lt;br /&gt;
All functions now access the Global Catalog. Every search function now returns results for the whole forest not just the domain.&amp;lt;br&amp;gt;&lt;br /&gt;
In a forest there can be multiple Global Catalogs. To get a list of Global Catalogs connect to the domain and use _AD_ListDomainControllers.&lt;br /&gt;
 $iResult = _AD_Open()&lt;br /&gt;
 $aDCs = _AD_ListDomainControllers()&lt;br /&gt;
 For $iIndex = 1 to $aDCs[0][0]&lt;br /&gt;
   If $aDCs[$iIndex][6] = True Then ConsoleWrite(&amp;quot;DC &amp;quot; &amp;amp; $aDCs[$iIndex][0] &amp;amp; &amp;quot; is a Global Catalog&amp;quot;)&lt;br /&gt;
 Next&lt;br /&gt;
 _AD_Close()&lt;br /&gt;
&lt;br /&gt;
=== Secure connection ===&lt;br /&gt;
==== To a Domain Controller ====&lt;br /&gt;
If you want to use SSL and/or password encryption when you connect to a Domain Controller you have to set parameter 6 of _AD_Open.&amp;lt;br&amp;gt;&lt;br /&gt;
Valid entries are:&lt;br /&gt;
 1 = Sets the connection property &amp;quot;Encrypt Password&amp;quot; to True to encrypt userid and password&lt;br /&gt;
 2 = The channel is encrypted using Secure Sockets Layer (SSL). AD requires that the Certificate Server be installed to support SSL&lt;br /&gt;
 3 = Combination of 1 and 2&lt;br /&gt;
Example:&lt;br /&gt;
 $iResult = _AD_Open(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, 2)    ; Uses SSL to connect to a Domain Controller of the current domain&lt;br /&gt;
&lt;br /&gt;
==== To a Global Catalog ====&lt;br /&gt;
If you want to use SSL for your connection to the Global Catalog use port 3269 instead of 3268.&lt;br /&gt;
&lt;br /&gt;
=== Error handling ===&lt;br /&gt;
_AD_Open sets the return value to 0 and @error plus @extended to denote what kind of error occurred.&amp;lt;br&amp;gt;&lt;br /&gt;
On Windows Vista and later - if you specified the UserID as NetBIOS Login Name or User Principal Name - you can get additional information about the error.&lt;br /&gt;
_AD_GetlastADSIError will return an array of additional information:&lt;br /&gt;
 $iResult = _AD_Open()&lt;br /&gt;
 If @error &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
   $aError = _AD_GetlastADSIError()&lt;br /&gt;
   _ArrayDisplay($aError, &amp;quot;Error occurred when running _AD_Open&amp;quot;)&lt;br /&gt;
   Exit&lt;br /&gt;
 EndIf&lt;br /&gt;
This could look like:&lt;br /&gt;
 [0] 5 &lt;br /&gt;
 [1] 2148074248                                                                              - ADSI error code (decimal)&lt;br /&gt;
 [2] 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db0 - Unicode string that describes the error&lt;br /&gt;
 [3] LDAP Provider                                                                           - name of the provider that raised the error&lt;br /&gt;
 [4] 52e                                                                                     - Win32 error code extracted from element[2]&lt;br /&gt;
 [5] Logon failure: unknown user name or bad password                                        - description of the Win32 error code as returned by _WinAPI_FormatMessage&lt;br /&gt;
&lt;br /&gt;
Some of the Win32 error codes you can see:&lt;br /&gt;
 525 = user not found&lt;br /&gt;
 52e = invalid credentials&lt;br /&gt;
 530 = not permitted to logon at this time&lt;br /&gt;
 532 = password expired&lt;br /&gt;
 533 = account disabled&lt;br /&gt;
 701 = account expired&lt;br /&gt;
 773 = user must reset password&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
=== _AD_ErrorNotify ===&lt;br /&gt;
To get detailed error information about COM errors add function _AD_ErrorNotify. This function traps all COM errors and logs them. The following values can be used as first parameter:&lt;br /&gt;
 1 = Uses ConsoleWrite to display the COM error message. Therefore doesn&#039;t work for compiled scripts&lt;br /&gt;
 2 = Uses MsgBox to display the COM error message&lt;br /&gt;
 3 = Uses FileWrite to write (append) the COM error message to a defined file&lt;br /&gt;
 4 = Enable Debugging. The COM errors will be handled (the script no longer crashes) but without any output&lt;br /&gt;
The second parameter sets the output file. Default = @ScriptDir &amp;amp; &amp;quot;\AD_Debug.txt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following example parses the commandline and sets debugging to &amp;quot;MsgBox&amp;quot; when command line parameter one is set to &amp;quot;/debug&amp;quot; or &amp;quot;-debug&amp;quot;.&lt;br /&gt;
 If $CmdLine[0] And ($CmdLine[1] = &amp;quot;/debug&amp;quot; Or $CmdLine[1] = &amp;quot;-debug&amp;quot;) Then _AD_ErrorNotify(2)&lt;br /&gt;
&lt;br /&gt;
=== _AD_Open ===&lt;br /&gt;
When _AD_Open returns @error = 4 and @extended = -2147023541 (decimal) = 0x8007054b (hex) which translates to &amp;quot;The specified domain either does not exist or could not be contacted.&amp;quot; then most of the time the reason is that you try to connect using a local account. To solve the issue logon with a domain account or provide the needed parameters to _AD_Open.&lt;br /&gt;
&lt;br /&gt;
== Running queries ==&lt;br /&gt;
There are many functions in the UDF that allow to query the Active Directory. The most important functions are:&lt;br /&gt;
* [[Active_Directory_UDF_-_GetObjectsInOU|_AD_GetObjectsInOU]]: This function uses LDAP to query objects (users, computers ...) in the whole domain or a subtree&lt;br /&gt;
== Tips &amp;amp; Tricks ==&lt;br /&gt;
* The UDF does not support the &amp;quot;granular password policy&amp;quot; feature implemented with Windows Server 2008. Invalid results for all password related functions might be returned&lt;br /&gt;
* Keyword &amp;quot;Default&amp;quot;: You can&#039;t use the keyword &amp;quot;Default&amp;quot; to omit parameters in a function call as the UDF does not support this keyword&lt;br /&gt;
* If you run Windows Vista or higher, UAC is enabled and you use functions that change the AD then you might need to insert #RequireAdmin into your script&lt;br /&gt;
* The SamAccountName of a computer is the computername with a trailing &amp;quot;$&amp;quot; e.g. @ComputerName &amp;amp; &amp;quot;$&amp;quot;&lt;br /&gt;
* Special characters: If you call a function with a Fully Qualified Domain Name (FQDN) as parameter you as a user have to make sure that all special characters (&amp;quot;\/#,+&amp;lt;&amp;gt;;=) are escaped with a preceding backslash. You can call function _AD_FixSpecialChars(String, 1) to escape or _AD_FixSpecialChars(string, 0) to unescape the special characters&lt;br /&gt;
&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Tutorial_GUIRegisterMsg&amp;diff=13146</id>
		<title>Tutorial GUIRegisterMsg</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Tutorial_GUIRegisterMsg&amp;diff=13146"/>
		<updated>2015-07-11T11:06:01Z</updated>

		<summary type="html">&lt;p&gt;Rt01: $iParam seems to be a typo. It uses $lParam for the rest of the tutorial.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a short tutorial on &#039;&#039;GUIRegisterMsg&#039;&#039; - one of the more mysterious functions within AutoIt for newcomers.  Purists might quibble over details here, but it is good enough for hobbyists like me!  &lt;br /&gt;
&lt;br /&gt;
Windows works by sending messages to everything on the system, so that everything knows what is going on. By messages, I mean things like the &#039;&#039;$GUI_EVENT_CLOSE&#039;&#039; we look for when we exit a GUI - but the possible range is much, much wider; change of focus, change of state, mouseclicks, mousemoves, key presses, etc, etc, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;GUIRegisterMsg&#039;&#039; allows us to intercept certain of these messages as they are sent by the GUIs we have created, so we can see who sent what. So when you see a &#039;&#039;GUIRegisterMsg($WM_COMMAND, &amp;quot;MY_WM_COMMAND&amp;quot;)&#039;&#039; line in a script, this translates as &amp;quot;&#039;&#039;Whenever a WM_COMMAND message is sent by my GUI, please intercept it and pass it through the MY_WM_COMMAND function in this script&#039;&#039;&amp;quot;. The actual message title is denoted by the constant &#039;&#039;$WM_COMMAND&#039;&#039; which is stored in &#039;&#039;WindowsConstant.au3&#039;&#039; include file.  Of course, you can use other message types as well (such as &#039;&#039;$WM_NOTIFY&#039;&#039;) - and call your function whatever you wish!&lt;br /&gt;
&lt;br /&gt;
The function that you use &#039;&#039;GUIRegisterMsg&#039;&#039; to call &#039;&#039;&#039;MUST&#039;&#039;&#039; have these 4 parameters - &#039;&#039;$hWnd, $iMsg, $wParam, $lParam&#039;&#039; - because that is what Windows uses itself to pass the messages around.  In the majority of cases, these parameters relate to the following:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;$hWnd&#039;&#039; - the GUI which sent the message&lt;br /&gt;
*&#039;&#039;$iMsg&#039;&#039; - the code for the message sent&lt;br /&gt;
*&#039;&#039;$wParam, $lParam&#039;&#039; - details of what exactly the message is about. This varies according to the message and details can be found in MSDN but often these parameters will hold the identity of control that has been used and the exact version of the message that has been sent.&lt;br /&gt;
&lt;br /&gt;
Let us look at some examples:&lt;br /&gt;
-----------------------------------&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
 GUIRegisterMsg($WM_COMMAND, &amp;quot;MY_WM_COMMAND&amp;quot;)&lt;br /&gt;
 ;&lt;br /&gt;
 Func MY_WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
 ;&lt;br /&gt;
     Local $iIDFrom = BitAND($wParam, 0xFFFF) ; LoWord - this gives the control which sent the message&lt;br /&gt;
     Local $iCode = BitShift($wParam, 16)     ; HiWord - this gives the message that was sent&lt;br /&gt;
     If $iCode = $EN_CHANGE Then ; If we have the correct message&lt;br /&gt;
         Switch $iIDFrom ; See if it comes from one of the inputs&lt;br /&gt;
             Case $hInput1&lt;br /&gt;
                 ; Do something&lt;br /&gt;
             Case $hInput2&lt;br /&gt;
                 ; Do something else&lt;br /&gt;
         EndSwitch&lt;br /&gt;
     EndIf&lt;br /&gt;
 ;&lt;br /&gt;
 EndFunc ;==&amp;gt;MY_WM_COMMAND&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
Here we are looking to see if the contents of two Input controls have been altered.  We first intercept the &#039;&#039;$WM_COMMAND&#039;&#039; messages from our GUI using &#039;&#039;GUIRegisterMsg&#039;&#039;.  We can ignore the GUI and the main message in this case - &#039;&#039;$WM_COMMAND&#039;&#039; is a huge set and as we are interested in the control we need not worry about the GUI - if we correctly identify the control, it can only come from our GUI!  But in other cases, this is vital information, as you can imagine.&lt;br /&gt;
&lt;br /&gt;
To see if an Input has been altered, we need to look for the &#039;&#039;$EN_CHANGE&#039;&#039; submessage and as you can see we need to investigate the contents of &#039;&#039;$wParam&#039;&#039; to determine this - and then determine the identity of the Input control which is also obtained from&#039;&#039; $wParam&#039;&#039; (MSDN is the bible here). The &#039;&#039;Bit*&#039;&#039; operators allow us to extract these values:&lt;br /&gt;
-----------------------------------&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
 Local $iIDFrom = BitAND($wParam, 0xFFFF) ; LoWord - this gives the ControlID of the control which sent the message &lt;br /&gt;
 Local $iCode = BitShift($wParam, 16)     ; HiWord - this gives the submessage that was sent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
We now know which control sent the message and what the sub-message was - so we check if it matches what we are looking for and if it does then we do whatever we need to do:&lt;br /&gt;
&lt;br /&gt;
Another example:&lt;br /&gt;
-----------------------------------&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
 GUIRegisterMsg($WM_NOTIFY, &amp;quot;MY_WM_NOTIFY&amp;quot;)&lt;br /&gt;
 ;&lt;br /&gt;
 Func MY_WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
 ;&lt;br /&gt;
 	Local $tNMHDR = DllStructCreate(&amp;quot;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
 	If @error Then Return&lt;br /&gt;
 	If DllStructGetData($tNMHDR, 1) = $hLV_Handle Then ; Is it our ListView&lt;br /&gt;
 		If DllStructGetData($tNMHDR, 3) = $NM_DBLCLK Then $fDblClk = True ; Was it a double click&lt;br /&gt;
 	EndIf&lt;br /&gt;
 	$tNMHDR = 0 ; This not strictly necessary but does not hurt!&lt;br /&gt;
 ;&lt;br /&gt;
 	Return $GUI_RUNDEFMSG ; This tells AutoIt to process the message itself&lt;br /&gt;
 ;&lt;br /&gt;
 EndFunc   ;==&amp;gt;MY_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
This time we are trapping the &#039;&#039;$WM_NOTIFY&#039;&#039; message which lets us know about events like mouse clicks.  In particular we are looking for a double click on a ListView within our GUI.  As above we use &#039;&#039;GUIRegisterMsg&#039;&#039; to intercept the message.  Again we can ignore the GUI and main message and just look for the control and submessage.  In this case we need to do a bit more work on the &#039;&#039;$lParam&#039;&#039; parameter which is actually a &#039;&#039;Struct&#039;&#039;.  However, AutoIt again makes it easy to obtain the handle of the control and the actual submessage - if these are the correct ones, we set a flag to &#039;&#039;True&#039;&#039;.  Why, well keep reading and you will find out!&lt;br /&gt;
&lt;br /&gt;
When we have finished dealing with the message we have intercepted, it gets passed along the chain of all the other message handlers so all the other applications in the system can see if they are interested too.   But in some cases you might actually want to stop the message going further - I wrote a UDF to prevent the system adding the dotted lines around the control when it has focus and passing the message on was exactly what I was trying to prevent!  So in the UDF I added a &#039;&#039;Return&#039;&#039; line to the function to stop it dead - just as here.  Returning the &#039;&#039;$GUI_RUNDEFMSG&#039;&#039; constant tells AutoIt to run its own internal message handler. &lt;br /&gt;
&lt;br /&gt;
Now, what about the use of a flag in the second example?  Well, if you read the Help file for &#039;&#039;GUIRegisterMsg&#039;&#039; you will see the following:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;Warning: blocking of running user functions which execute Windows messages with commands such as &amp;quot;Msgbox()&amp;quot; can lead to unexpected behavior, the return to the system should be as fast as possible !!!&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Basically, if you spend too long in your message handling function, the rest of the system gets behind and becomes unstable.  So you should get out of it as quickly as you can - and certainly never create anything that waits for user input.&lt;br /&gt;
&lt;br /&gt;
There are 2 ways we can still run something long and complicated but still leave the handler quickly: either set a flag or action a dummy control.  If we set a flag inside the handler, we can then look for it within our idle loop and run our blocking code from here without affecting the handler at all.  If we action a dummy control then we do not even have to look for the flag!  Here is an example of both methods to show you how to apply them.&lt;br /&gt;
-----------------------------------&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
 #include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
 #include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ; Whichever method we use, we need to declare the dummy control or the flag as a Global variable&lt;br /&gt;
 Global $hLeftClick, $fRightClick = False&lt;br /&gt;
 &lt;br /&gt;
 GUICreate(&amp;quot;Click me!&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 ; Create a dummy control for the handler to action&lt;br /&gt;
 $hLeftClick = GUICtrlCreateDummy()&lt;br /&gt;
 &lt;br /&gt;
 GUISetState()&lt;br /&gt;
 &lt;br /&gt;
 ; Register our messages&lt;br /&gt;
 GUIRegisterMsg($WM_LBUTTONUP, &amp;quot;_WM_LBUTTONUP&amp;quot;)&lt;br /&gt;
 GUIRegisterMsg($WM_RBUTTONUP, &amp;quot;_WM_RBUTTONUP&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 While 1&lt;br /&gt;
     Switch GUIGetMsg()&lt;br /&gt;
         Case $GUI_EVENT_CLOSE&lt;br /&gt;
             ExitLoop&lt;br /&gt;
         Case $hLeftClick&lt;br /&gt;
             ; Our dummy control was actioned so run the required code&lt;br /&gt;
             MsgBox(0, &amp;quot;Click&amp;quot;, &amp;quot;LEFT CLICK!&amp;quot;)&lt;br /&gt;
     EndSwitch&lt;br /&gt;
 &lt;br /&gt;
     ; Look for the flag&lt;br /&gt;
     If $fRightClick = True Then&lt;br /&gt;
         ; Run the code&lt;br /&gt;
         MsgBox(0, &amp;quot;Click&amp;quot;, &amp;quot;RIGHT CLICK!&amp;quot;)&lt;br /&gt;
         ; Do not forget to reset the flag!&lt;br /&gt;
         $fRightClick = False&lt;br /&gt;
     EndIf&lt;br /&gt;
 &lt;br /&gt;
 WEnd&lt;br /&gt;
 &lt;br /&gt;
 Func _WM_LBUTTONUP($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
     ; Action the dummy control&lt;br /&gt;
     GUICtrlSendToDummy($hLeftClick)&lt;br /&gt;
 EndFunc&lt;br /&gt;
 &lt;br /&gt;
 Func _WM_RBUTTONUP($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
     ; Set the flag&lt;br /&gt;
     $fRightClick = True&lt;br /&gt;
 EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
I hope this short tutorial has made &#039;&#039;GUIRegisterMsg&#039;&#039; a little less complicated.  Now I suggest you go and look at the many examples on the forum to see how they work and how each differs slightly depending on exactly the author is trying to do.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:GUI]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=AutoIt_Programs&amp;diff=13114</id>
		<title>AutoIt Programs</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=AutoIt_Programs&amp;diff=13114"/>
		<updated>2015-06-09T09:35:24Z</updated>

		<summary type="html">&lt;p&gt;Rt01: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this site is to provide a list of programs created in AutoIt. This list should contain only fully functional programs rather than pieces of code, or any type of library (UDF).&amp;lt;br /&amp;gt;&lt;br /&gt;
You can talk about this list [http://www.autoitscript.com/forum/index.php?showtopic=167824 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Directory tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153072-active-directory-tool-userinfo Active Directory Tool: UserInfo (by Marc)]&lt;br /&gt;
:The tool displays information for a specified user taken from the active directory. It offers additional functions like comparing group membership with other users, unlock an account etc.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts AD Audit (by water)]&lt;br /&gt;
:On one/multiple big sheet(s) you get users (columns) and groups (rows). The list is sorted descending by number of members so you get the users with most groups and the groups with most members on top of the page. You can filter by (multiple) samaccountname(s), department or you can create your own LDAP query filter. You can filter the resulting list of groups using a Regular Expression.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADAT - Active Directory Administration Tool (by water)]&lt;br /&gt;
:ADAT is a tool to simplify common AD administration tasks. Every administration task has its own tab. It is easy to add new functions (tabs) to the tool. Some often used functions are already available: list users, computers, OUs. File ADAT.ini can be customized to hold the AD logon information if necessary. By default the user running the script connects to the AD.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADCU - Active Directory Compare Users (by water)]&lt;br /&gt;
:ADCU displays two users and their group membership in two listviews. You can filter and export the data to Excel, Outlook mail and the clipboard.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADCG - Active Directory Compare Groups (by water)]&lt;br /&gt;
:ADCG displays two groups and their direct members in two listviews. You can filter and export the data to Excel, Outlook mail and the clipboard.&lt;br /&gt;
&lt;br /&gt;
== Desktop tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/80320-cop-color-picker-multi-value-color-picking COP - Color Picker - Multi value color picking (by KaFu)]&lt;br /&gt;
:Color Picker displays the color codes in six different formats, allows to copy them to the clipboard, picks color under mouse pointer by using a magnifier, moveable with keyboard cursor etc.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/134537-icu-icon-configuration-utility-updated-2013-may-24 ICU - Icon Configuration Utility (by KaFu)]&lt;br /&gt;
:Restore your desktop when the icons get &amp;quot;rearranged&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122941 AutoIt Windows Screenshooter (by UEZ)] &lt;br /&gt;
:Takes a screenshot from any visible window or any region of the desktop incl. freehand capturing. Allows to watermark captured image, send it to a printer or the clipboard etc. The program includes a basic image editor and a lot of additional functions.&lt;br /&gt;
&lt;br /&gt;
== File/Data/Image Processing/Viewers ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164383 AuPad (by MikahS) ]&lt;br /&gt;
:This is a notepad program written entirely in AutoIt. It has all the basics of notepad that you would expect. Also with Au3 Syntax Highlighting.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=110463 CSV-Editor (by funkey) ] &lt;br /&gt;
:This script allows to edit CSV-files. Just doubleclick the entry you want to edit.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144961 CSV Viewer (by llewxam) ]&lt;br /&gt;
:This tool displays CSV files when Excel is not available. It expands the columns to fit the text properly, which Excel doesn&#039;t by default.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118289 File Types Manager (by Yashied)] &lt;br /&gt;
:File Types Manager (FTM) is designed to viewing and editing properties (type name, icon, context menu, etc.) of the registered file types. This is something that is present in Windows XP by default and is available from the menu of any folder, but for some unknown reason is not in the Windows Vista/7.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80747 Search my files (byKaFu)]&lt;br /&gt;
:File searching and duplicates finder tool.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167578 SPDiff (by orbs) ]&lt;br /&gt;
:Single-pane character-based text comparison tool.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=165250 TextDiff (by wakillon) ]&lt;br /&gt;
:Side-by-side line-based text comparison tool.&lt;br /&gt;
&lt;br /&gt;
== Network tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115976 IP Scanner (by llewxam) ] &lt;br /&gt;
:This is a very useful tool when performing any sort of network diagnostics, as it will identify the router without you needing to use ipconfig to find it, you can ping specific locations inside or outside the network, save the scan results to a CSV file, resolve the public IP, and open the addresses using a web browser, Windows Explorer, or a Remote Desktop session.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105150 Network Connections Viewer (by trancexx) ]&lt;br /&gt;
:The script is analyzing every connection that your machine has. Either TCP or UDP. It&#039;ll give you port numbers, IP addresses, names of the processes issuing connections, their PIDs, locations on HD, user names, connection statuses, and hints on protocols for used ports (so that you know roughly what that connection is or could be). Also you will be given the ability to disable desired connections.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=88782 s!mpL3 LAN Messenger (by AoRaToS) ]&lt;br /&gt;
:s!mpL3 LAN Messenger is a simple to use, small, serverless messenger program designed and developed to offer chat communication over Local Area Networks. No installation is needed to make it work.&lt;br /&gt;
&lt;br /&gt;
== Misc/Others/Not yet grouped ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=139380 Computer Audit Tool (by llewxam)] &lt;br /&gt;
:All important physical information about the computer is gathered and displayed.&lt;br /&gt;
:The tool can be used as-is or a site-specific version can be compiled from the script itself, reducing time spent running the tool on each workstation and ensuring that the data is all appended to a single file for later review.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143890 TextCorrection (by AZJIO)] &lt;br /&gt;
:The program is designed to automatically edit the text typed in the wrong keyboard layout. It is useful if you use multiple (2) languages in the OS.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116735 TYPELIB Viewer (by trancexx)] &lt;br /&gt;
:It&#039;s a tool-script you would use when you want to know details about specific type libraries.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=168087 GifCamEx (by wakillon)] &lt;br /&gt;
:Easy and handy to use for create animated gif from capture.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170300 Bitmap2AscII (by wakillon)] &lt;br /&gt;
:You can convert an image into a ASCIIArt, and saved as TXT, HTML, or as an image.&lt;br /&gt;
&lt;br /&gt;
== Games Made in AutoIt ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153735 A list of Games made ​​in Autoit]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Excel_Range&amp;diff=13084</id>
		<title>Excel Range</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Excel_Range&amp;diff=13084"/>
		<updated>2015-05-26T19:06:13Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Used Range */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page you will find some special ranges and how to define them in AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
As input file I will use the following Excel workbook. All cells which have a value now or had a value before (means: all cells which had been touched by the user or a script) are displayed in grey.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
All examples show cells of the selected range in yellow.&lt;br /&gt;
&lt;br /&gt;
== Current Region ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange = $oWorkBook.Activesheet.Range(&amp;quot;B4&amp;quot;).CurrentRegion&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The current region is a range bounded by any combination of blank rows and blank columns.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_CurrentRegion.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that cell B6 is not part of the region. The cell has been touched before but now is blank and hence bounds the region.&lt;br /&gt;
&lt;br /&gt;
== Empty Cells ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange = $oWorkbook.ActiveSheet.UsedRange.SpecialCells($xlCellTypeBlanks)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Marks all empty cells in the specified range.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_EmptyCells.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entire Row / Entire Column ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange = $oWorkBook.Activesheet.Range(&amp;quot;B2&amp;quot;).EntireRow&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Selects the entire row(s) of the specified range.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_EntireRow.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Use method &amp;quot;EntireColumn&amp;quot; to select the columns for the specified range.&lt;br /&gt;
&lt;br /&gt;
== Last Cell ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange = $oWorkbook.ActiveSheet.UsedRange.SpecialCells($xlCellTypeLastCell)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Returns the last used cell (bottom right) in the specified range.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_LastCell.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
External Link: [http://www.ozgrid.com/VBA/ExcelRanges.htm Excel Ranges: Finding the Last Cell in a Range]&lt;br /&gt;
&lt;br /&gt;
== Used Range ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange = $oWorkBook.Activesheet.UsedRange&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Selects all cells which have a value now or had a value before (means: all cells which had been touched by the user or a script).&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that the range does not contain row 1 and column 1!&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_UsedRange.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$sUpperLeftCell = $oWorkbook.ActiveSheet.UsedRange.Cells(1, 1).Address&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Returns the address of the upper left cell of the used range. In this examle: B2&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;With $oWorkbook.ActiveSheet&lt;br /&gt;
	$oRangeLast = .UsedRange.SpecialCells($xlCellTypeLastCell)&lt;br /&gt;
	$oRange = .Range(.Cells(1, 1), .Cells($oRangeLast.Row, $oRangeLast.Column))&lt;br /&gt;
EndWith&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This lines extend the used range to start with cell A1.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_UsedRangeFull.jpg]]&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=AutoIt_Introduction&amp;diff=13035</id>
		<title>AutoIt Introduction</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=AutoIt_Introduction&amp;diff=13035"/>
		<updated>2015-05-03T13:40:23Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;[[Image:logo2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
©1999-2014 Jonathan Bennett &amp;amp; [[AutoIt_Team | AutoIt Team]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.autoitscript.com/autoit3/index.php AutoIt v3 Homepage]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
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 (e.g. VBScript and SendKeys). AutoIt is also very small, self-contained and will run on all versions of Windows out-of-the-box with no annoying &amp;quot;runtimes&amp;quot; required! &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; AutoIt was initially designed for PC &amp;quot;roll out&amp;quot; situations to reliably automate and configure thousands of PCs. Over time it has become a powerful language that supports complex expressions, user functions, loops and everything else that veteran scripters would expect.&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
* Easy to learn BASIC-like syntax&lt;br /&gt;
* Simulate keystrokes and mouse movements&lt;br /&gt;
* Manipulate windows and processes&lt;br /&gt;
* Interact with all standard windows controls&lt;br /&gt;
* Scripts can be compiled into standalone executables&lt;br /&gt;
* Create Graphical User Interfaces (GUIs)&lt;br /&gt;
* COM support&lt;br /&gt;
* Regular expressions&lt;br /&gt;
* Directly call external DLL and Windows API functions&lt;br /&gt;
* Scriptable RunAs functions&lt;br /&gt;
* Detailed helpfile and large community-based support forums&lt;br /&gt;
* Compatible with Windows XP / Server 2003 / Vista / Server 2008 / Windows 7 / Windows 8&lt;br /&gt;
* Unicode and x64 support&lt;br /&gt;
* Digitally signed for peace of mind&lt;br /&gt;
* Works with the User Account Control (UAC) found in Windows beginning with Vista&lt;br /&gt;
&lt;br /&gt;
AutoIt has been designed to be as small as possible and stand-alone with no external .dll files or registry entries required making it safe to use on Servers. Scripts can be compiled into stand-alone executables with &#039;&#039;&#039;Aut2Exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Also supplied is a combined COM and DLL version of AutoIt called AutoItX that allows you to add the unique features of AutoIt to your own favourite scripting or programming languages!&lt;br /&gt;
&lt;br /&gt;
Best of all, AutoIt continues to be &#039;&#039;&#039;FREE&#039;&#039;&#039; - but if you want to support the time, money and effort spent on the project and web hosting then you may donate at the AutoIt [http://www.autoitscript.com/autoit3/ homepage].&lt;br /&gt;
&lt;br /&gt;
=Features in Detail=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Basic-like Syntax and Rich Function Set&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AutoIt has a BASIC-like syntax which means that most people who have ever written a script or used a high-level language should be able to pick it up easily.&lt;br /&gt;
&lt;br /&gt;
Although it started life as a simple automation tool, AutoIt now has functions and features that allow it to be used as a general purpose scripting language. Language features include:&lt;br /&gt;
&lt;br /&gt;
* The usual high-level elements for functions, loops and expression parsing&lt;br /&gt;
* A staggering amount of string handling functions &#039;&#039;&#039;and&#039;&#039;&#039; a Perl compatible regular expression engine (using the [http://www.pcre.org/ PCRE] library).&lt;br /&gt;
* COM support&lt;br /&gt;
* Call Win32 and third-party DLL APIs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Built-in Editor with Syntax Highlighting&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AutoIt comes with a customised &amp;quot;lite&amp;quot; version of SciTE that makes editing scripts easy. Users can also [http://www.autoitscript.com/autoit3/scite/ download a complete version of SciTE] that includes additional tools to make things even easier.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Standalone and Small&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AutoIt is a very small and standalone application with no reliance on massive runtimes like .NET or VB. All you need to run AutoIt scripts are the main AutoIt executable (AutoIt3.exe) and the script. Scripts can also be encoded into standalone executables with the built-in script compiler &#039;&#039;&#039;Aut2Exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;International and 64-bit Support&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AutoIt is fully Unicode aware and also includes x64 versions of all the main components! How many other free scripting languages can you say that about?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Key and Mouse Simulation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Much time has been spent optimizing the keystroke and mouse simulation functions to be as accurate as possible on all versions of Windows. All the mouse and keyboard routines are highly configurable both in terms of simulation &amp;quot;speed&amp;quot; and functionality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Window Management&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can expect to move, hide, show, resize, activate, close and pretty much do what you want with windows. Windows can be referenced by title, text on the window, size, position, class and even internal Win32 API handles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Controls&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Directly get information on and interact with edit boxes, check boxes, list boxes, combos, buttons, status bars without the risk of keystrokes getting lost. Even work with controls in windows that are not active!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graphical User Interfaces (GUIs)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AutoIt v3 will also allow you to create some complex GUIs - just like those below!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:gui_eg1.png|284px|GUI Example 1]] [[Image:gui_eg2.png|274px|GUI Example 2]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And much, much more...&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13034</id>
		<title>User Defined Functions</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13034"/>
		<updated>2015-05-03T10:55:47Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Microsoft Office Automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a listing of libraries of &#039;&#039;&#039;user defined functions&#039;&#039;&#039; (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.&lt;br /&gt;
This list is probably not complete, but constantly supplemented.&lt;br /&gt;
If you do not find a solution here, ask a new question on the [http://www.autoitscript.com/forum/forum/2-general-help-and-support/ forum].&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106163 Active Directory (by water)] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150231 GTK+  (by prazetto)] - GTK+ Framework | Widgets.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153520 IUIAutomation MS framework (by junkew)] - IUIAutomation MS framework to automate chrome, FF, IE etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87956 Java (by seangriffin)] - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86574 SAP (by seangriffin)] - SAP business management automation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149540 SAPWizard (by ozmike)] - SAPWizard UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80201 Service (by arcker)] - Build your own service with AutoIt code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91018 WiFi (by MattyD)] - Low level control over your wireless LAN.&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95595 Firefox (by Stilgar)] - A little less support for automation than IE, but still very good.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166542 HTMLDocumentEvents (by SmOke_N)] - Track IE document events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166304 IEJS (by SmOke_N)] - IEJS - IE Javascript options, an IE.au3 personal extension.&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - Everything about Internet explorer can be automated with the IE library supplied with a standard AutoIt install.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149203 NavInfo (by Nessie)] - With this UDF you can check if a specified browser/software is installed and which version is being used.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=61090 Opera (by MrCreatoR,)] - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32144 Microsoft Office Access (by randallc)] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel (by water et al.) - This UDF is included in AutoIt. Link to the [[Excel_UDF|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by water, GreenCan)] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by water )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft PowerPoint (by Toady)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word (by water et al.) - This UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&lt;br /&gt;
&lt;br /&gt;
===OpenOffice Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI]] - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL&#039;s (using Windows API calls).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77731 Device Management (by ... )] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by ... )] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by ... )] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by ... )] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by ... )] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by ... )] - This is a simple I/O (Input/Output) UDF for interacting with ports. (I/O Port Functions - x64 Parallel Port IO, Keyboard, etc + Restore PC Speaker Beep).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by ... )] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by ... )] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ... )] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by ... )] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by ... )] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20121 Screen Resolution (by ... )] - Screen Resolution Changing UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by ... )] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ... )] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=15864 SPI Hardware Interface (by ... )] - This script is made to comunicate with the MAX335 chip  using the SPI protocol via the LPT(printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68866 Webcam (by LIMITER)] - Webcam UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70857 Webcam (by ludocus)] - Webcam UDF.&lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29404 Computer information (by JSThePatriot)] - A general purpose library to get various details about a Windows machine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=54039 WinPcap (by JRSmile)] - Wrapper for the windows packet capture library WinPcap.&lt;br /&gt;
* [http://opensource.grisambre.net/pcapau3/ WinPcap (by Nicolas Ricquemaque)] - A library to access the main functionalities offered by the WinPcap driver.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105875 ADODB (by spudw2k)] - ADODB Example.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145142 DBF (by funkey)] - dBase database read and write with DLL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by ... )] - EzMySql - Use MySql Databases with autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94920-solved-passing-parameters-using-dllcall-to-a-c-dll/#entry684751 FireBird (by ... )] - FireBird, Interbase dll udf.&lt;br /&gt;
* [http://stackoverflow.com/questions/21991475/autoit-firebird-sql-combo-return-data-as-csv-instead-of-xml FireBird (by ... )] - Additional link to FireBird UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by ... )] - MSSQL.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ... )] - _SQL.au3. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by ... )] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ... )] - MySQL UDFs (without ODBC).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ... )] - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by ... )] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
&lt;br /&gt;
== Internet protocol suite ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by ... )] - cURL UDF - a UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by ... )] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by ... )]  - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by ... )] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by ... )] IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by ... )] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by ... )] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ... )] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by ... )] - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167339 _POP3_Ex (by ... )] POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by ... )] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by ... )]  - Prowl UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by ... )] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by ... )]  - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by ... )] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ... )] (Reading toner status from SNMP device with WMI).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by ... )]  - This UDF allows to use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ... )]  - UPnP : Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by ... )] - Enables scripts to access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77503 WinInet (by ... )] - Enables scripts to access standard Internet protocols, such as FTP, Gopher and HTTP. Also supports creating GET and POST requests and submitting them with conforming standards, cookies supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by ... )]  - multi client, event-based, able to bind console app to socket.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by ... )] - More extensive library than the one above. Uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87441 LZMA (by trancexx )] - LZMA (Native Windows).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112273 LZMA Compression (by ... )] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by ... )] - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it&#039;s faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by ... )] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by ... )] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by ... )] - UnRAR.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by ... )] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by ... )] - ZIP.au3 UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by ... )] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by ... )] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by ... )] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17727 XZip (by eltorro)] - another UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161847 XZip (by mLipok)] - UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by ... )] - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by ... )] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by ... )] - TrueCrypt UDFs.&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ... )] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by ... )] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ... )] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by ... )] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by ... )] - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73993 Printing (by ... )] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by ... )] - RTF_Printer.au3 - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by ... )] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by ... )] - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by ... )] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by ... )] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by ... )] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by ... )] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70506 IrrLicht (by ... )] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by ... )] - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by ... )] - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by ... )] - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148129 OpenGL (2.0) (by ... )] - new set of UDFs for OpenGL + AutoIt.&lt;br /&gt;
&lt;br /&gt;
===Players===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114143 VLC (by ... )] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ... )] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ... )] - Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32494 XSkin (by ... )] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by ... )] - A library that allows a user to skin their application GUI using the Windows &#039;&#039;.MSstyles&#039;&#039; files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by ... )] - Allows the creation of modern, fancy GUI and tray menus with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by ... )] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119505 GUIFrame (by ... )] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 Easy Scrollbars (by ... )] - Easily create scrollable sections in your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by ... )] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp.au3 (by ... )] - Management of context help ([http://www.autoitscript.com/forum/index.php?showtopic=72152-contexthelp/ original]).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by ... )] - Expand and contract sections of your GUI ([http://www.autoitscript.com/forum/index.php?showtopic=117909 original]).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109096 ExtMsgBox (by ... )] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by ... )] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by ... )] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by ... )] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by ... )] - 3D Pie chart.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by ... )] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by ... )] - Allows you to create a window finder control like the one seen in AutoIt Window Info.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by ... )] - Create and control native pager controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by ... )] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107965 GUIHotkey (by ... )] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103904&amp;amp;p=735769 Marquees (by ... )] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by ... )] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by ... )] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ... )] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by ... )] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 GUI/Tray Menu (by Holger, LarsJ, AZJIO)] - GUI/Tray Menu with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by ... )] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166594 GUITreeViewEx (by ... )] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by ... )] - Calendar UDF.&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by ... )] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by ... )] - Make calculations with extremely large numbers that AutoIt normally is not able to support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by ... )] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106551 Decimal To fraction (by ... )] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometry math functions (by ... )] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by ... )] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by ... )] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by ... )] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by ... )] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by Mat)] - Integer to roman numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/123398-snippet-dump/page-3#entry1005157 Roman Numerals (by czardas)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94770-integer-to-roman-numerals/#entry1043544 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by ... )] - inline APL interpreter.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90492 Hotkey.au3 (by ... )] - Management of Hotkeys UDF, with several advantages over HotkeySet().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by ... )] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by ... )] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by ... )] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by ... )] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by ... )] - TVExplorer UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by ... )] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by ... )] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History/Sotrage (by ... )] - UDF to save and restore the entire clipboard contents.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by ... )] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by ... )] - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by ... )] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by ... )] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by ... )] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by ... )] - With DDEML UDF one can use an AutoIt script as a DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by ... )] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by ... )] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by ... )] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/117033-file-locking-with-cooperative-semaphores File locking with cooperative semaphores (by ... )] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=142977 SQLite Array Functions (by ... )] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by ... )] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by ... )] - Basically, a bunch of strings can be stored locally (at program level) or globally (at O/S level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by ... )] - This small library allows simple and reliable way to copy or move files and directories without suspending your script. Moreover, you can get the current state (number of copied bytes, system error code, and other status information) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 AutoIt Inline Assembly (by ... )] - &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by ... )] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by ... )] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by ... )] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170087 barcode-generators (by willichan )] - Creates a Code128A/B/C or Creates a Code39 or Code39Extended optimized barcode from supplied data.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ... )] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160875 Debenu Quick PDF Library (by ... )] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by ... )] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by ... )] - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ... )] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by ... )] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by ... )] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by ... )] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ... )] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by ... )] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by ... )] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by ... )] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by ... )] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by ... )] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by ... )] - Magnifier Functions - Windows Vista+ Magnifier Manipulation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by ... )] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by ... )] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by ... )] - RegWriteAllUsers / RegDeleteAllUsers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by ... )] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Sheduler (by ... )] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplaner/Taskscheduler COM (by ... )] - an UDF for using the Windows Taskplaner / Task Scheduler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by ... )] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by ... )] - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by ... )] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by ... )] - VirusTotal API 2.0 UDF.&lt;br /&gt;
&lt;br /&gt;
== Social Media and other Website API ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by ... )] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by ... )] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by ... )] - another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by ... )] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by ... )] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150473 Google API (by ... )] - JSON queries for Google API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131343 PasteBin (by ... )] - PasteBin (powered by PasteBin).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by ... )] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by ... )] - eBay UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by ... )] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by ... )] - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by ... )] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by ... )] - Google Functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by ... )] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by ... )] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by ... )] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166205 TeamViewer API (by ... )] - UDF for TeamViewer API - a modest beginning.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by ... )] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by ... )] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by ... )] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API] a couple of function, which allows you to create projects in Crowdin, add and update files, download translations or integrate localization with your development process.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by ... )] - Android UDF.&lt;br /&gt;
&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13033</id>
		<title>User Defined Functions</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13033"/>
		<updated>2015-05-03T10:54:48Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a listing of libraries of &#039;&#039;&#039;user defined functions&#039;&#039;&#039; (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.&lt;br /&gt;
This list is probably not complete, but constantly supplemented.&lt;br /&gt;
If you do not find a solution here, ask a new question on the [http://www.autoitscript.com/forum/forum/2-general-help-and-support/ forum].&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106163 Active Directory (by water)] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150231 GTK+  (by prazetto)] - GTK+ Framework | Widgets.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153520 IUIAutomation MS framework (by junkew)] - IUIAutomation MS framework to automate chrome, FF, IE etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87956 Java (by seangriffin)] - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86574 SAP (by seangriffin)] - SAP business management automation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149540 SAPWizard (by ozmike)] - SAPWizard UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80201 Service (by arcker)] - Build your own service with AutoIt code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91018 WiFi (by MattyD)] - Low level control over your wireless LAN.&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95595 Firefox (by Stilgar)] - A little less support for automation than IE, but still very good.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166542 HTMLDocumentEvents (by SmOke_N)] - Track IE document events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166304 IEJS (by SmOke_N)] - IEJS - IE Javascript options, an IE.au3 personal extension.&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - Everything about Internet explorer can be automated with the IE library supplied with a standard AutoIt install.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149203 NavInfo (by Nessie)] - With this UDF you can check if a specified browser/software is installed and which version is being used.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=61090 Opera (by MrCreatoR,)] - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32144 Microsoft Office Access (by randallc )] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel (by water et al.) - This UDF is included in AutoIt. Link to the [[Excel_UDF|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by GreenCan &amp;amp; water )] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by water )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft PowerPoint (by Toady )] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word (by water et al.) - This UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&lt;br /&gt;
&lt;br /&gt;
===OpenOffice Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI]] - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL&#039;s (using Windows API calls).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77731 Device Management (by ... )] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by ... )] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by ... )] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by ... )] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by ... )] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by ... )] - This is a simple I/O (Input/Output) UDF for interacting with ports. (I/O Port Functions - x64 Parallel Port IO, Keyboard, etc + Restore PC Speaker Beep).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by ... )] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by ... )] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ... )] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by ... )] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by ... )] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20121 Screen Resolution (by ... )] - Screen Resolution Changing UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by ... )] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ... )] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=15864 SPI Hardware Interface (by ... )] - This script is made to comunicate with the MAX335 chip  using the SPI protocol via the LPT(printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68866 Webcam (by LIMITER)] - Webcam UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70857 Webcam (by ludocus)] - Webcam UDF.&lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29404 Computer information (by JSThePatriot)] - A general purpose library to get various details about a Windows machine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=54039 WinPcap (by JRSmile)] - Wrapper for the windows packet capture library WinPcap.&lt;br /&gt;
* [http://opensource.grisambre.net/pcapau3/ WinPcap (by Nicolas Ricquemaque)] - A library to access the main functionalities offered by the WinPcap driver.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105875 ADODB (by spudw2k)] - ADODB Example.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145142 DBF (by funkey)] - dBase database read and write with DLL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by ... )] - EzMySql - Use MySql Databases with autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94920-solved-passing-parameters-using-dllcall-to-a-c-dll/#entry684751 FireBird (by ... )] - FireBird, Interbase dll udf.&lt;br /&gt;
* [http://stackoverflow.com/questions/21991475/autoit-firebird-sql-combo-return-data-as-csv-instead-of-xml FireBird (by ... )] - Additional link to FireBird UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by ... )] - MSSQL.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ... )] - _SQL.au3. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by ... )] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ... )] - MySQL UDFs (without ODBC).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ... )] - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by ... )] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
&lt;br /&gt;
== Internet protocol suite ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by ... )] - cURL UDF - a UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by ... )] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by ... )]  - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by ... )] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by ... )] IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by ... )] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by ... )] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ... )] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by ... )] - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167339 _POP3_Ex (by ... )] POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by ... )] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by ... )]  - Prowl UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by ... )] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by ... )]  - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by ... )] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ... )] (Reading toner status from SNMP device with WMI).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by ... )]  - This UDF allows to use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ... )]  - UPnP : Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by ... )] - Enables scripts to access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77503 WinInet (by ... )] - Enables scripts to access standard Internet protocols, such as FTP, Gopher and HTTP. Also supports creating GET and POST requests and submitting them with conforming standards, cookies supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by ... )]  - multi client, event-based, able to bind console app to socket.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by ... )] - More extensive library than the one above. Uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87441 LZMA (by trancexx )] - LZMA (Native Windows).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112273 LZMA Compression (by ... )] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by ... )] - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it&#039;s faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by ... )] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by ... )] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by ... )] - UnRAR.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by ... )] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by ... )] - ZIP.au3 UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by ... )] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by ... )] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by ... )] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17727 XZip (by eltorro)] - another UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161847 XZip (by mLipok)] - UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by ... )] - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by ... )] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by ... )] - TrueCrypt UDFs.&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ... )] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by ... )] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ... )] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by ... )] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by ... )] - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73993 Printing (by ... )] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by ... )] - RTF_Printer.au3 - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by ... )] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by ... )] - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by ... )] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by ... )] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by ... )] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by ... )] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70506 IrrLicht (by ... )] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by ... )] - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by ... )] - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by ... )] - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148129 OpenGL (2.0) (by ... )] - new set of UDFs for OpenGL + AutoIt.&lt;br /&gt;
&lt;br /&gt;
===Players===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114143 VLC (by ... )] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ... )] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ... )] - Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32494 XSkin (by ... )] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by ... )] - A library that allows a user to skin their application GUI using the Windows &#039;&#039;.MSstyles&#039;&#039; files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by ... )] - Allows the creation of modern, fancy GUI and tray menus with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by ... )] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119505 GUIFrame (by ... )] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 Easy Scrollbars (by ... )] - Easily create scrollable sections in your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by ... )] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp.au3 (by ... )] - Management of context help ([http://www.autoitscript.com/forum/index.php?showtopic=72152-contexthelp/ original]).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by ... )] - Expand and contract sections of your GUI ([http://www.autoitscript.com/forum/index.php?showtopic=117909 original]).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109096 ExtMsgBox (by ... )] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by ... )] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by ... )] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by ... )] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by ... )] - 3D Pie chart.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by ... )] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by ... )] - Allows you to create a window finder control like the one seen in AutoIt Window Info.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by ... )] - Create and control native pager controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by ... )] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107965 GUIHotkey (by ... )] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103904&amp;amp;p=735769 Marquees (by ... )] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by ... )] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by ... )] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ... )] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by ... )] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 GUI/Tray Menu (by Holger, LarsJ, AZJIO)] - GUI/Tray Menu with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by ... )] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166594 GUITreeViewEx (by ... )] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by ... )] - Calendar UDF.&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by ... )] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by ... )] - Make calculations with extremely large numbers that AutoIt normally is not able to support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by ... )] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106551 Decimal To fraction (by ... )] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometry math functions (by ... )] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by ... )] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by ... )] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by ... )] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by ... )] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by Mat)] - Integer to roman numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/123398-snippet-dump/page-3#entry1005157 Roman Numerals (by czardas)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94770-integer-to-roman-numerals/#entry1043544 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by ... )] - inline APL interpreter.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90492 Hotkey.au3 (by ... )] - Management of Hotkeys UDF, with several advantages over HotkeySet().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by ... )] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by ... )] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by ... )] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by ... )] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by ... )] - TVExplorer UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by ... )] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by ... )] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History/Sotrage (by ... )] - UDF to save and restore the entire clipboard contents.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by ... )] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by ... )] - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by ... )] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by ... )] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by ... )] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by ... )] - With DDEML UDF one can use an AutoIt script as a DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by ... )] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by ... )] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by ... )] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/117033-file-locking-with-cooperative-semaphores File locking with cooperative semaphores (by ... )] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=142977 SQLite Array Functions (by ... )] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by ... )] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by ... )] - Basically, a bunch of strings can be stored locally (at program level) or globally (at O/S level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by ... )] - This small library allows simple and reliable way to copy or move files and directories without suspending your script. Moreover, you can get the current state (number of copied bytes, system error code, and other status information) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 AutoIt Inline Assembly (by ... )] - &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by ... )] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by ... )] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by ... )] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170087 barcode-generators (by willichan )] - Creates a Code128A/B/C or Creates a Code39 or Code39Extended optimized barcode from supplied data.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ... )] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160875 Debenu Quick PDF Library (by ... )] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by ... )] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by ... )] - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ... )] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by ... )] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by ... )] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by ... )] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ... )] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by ... )] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by ... )] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by ... )] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by ... )] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by ... )] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by ... )] - Magnifier Functions - Windows Vista+ Magnifier Manipulation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by ... )] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by ... )] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by ... )] - RegWriteAllUsers / RegDeleteAllUsers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by ... )] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Sheduler (by ... )] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplaner/Taskscheduler COM (by ... )] - an UDF for using the Windows Taskplaner / Task Scheduler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by ... )] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by ... )] - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by ... )] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by ... )] - VirusTotal API 2.0 UDF.&lt;br /&gt;
&lt;br /&gt;
== Social Media and other Website API ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by ... )] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by ... )] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by ... )] - another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by ... )] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by ... )] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150473 Google API (by ... )] - JSON queries for Google API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131343 PasteBin (by ... )] - PasteBin (powered by PasteBin).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by ... )] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by ... )] - eBay UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by ... )] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by ... )] - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by ... )] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by ... )] - Google Functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by ... )] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by ... )] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by ... )] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166205 TeamViewer API (by ... )] - UDF for TeamViewer API - a modest beginning.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by ... )] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by ... )] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by ... )] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API] a couple of function, which allows you to create projects in Crowdin, add and update files, download translations or integrate localization with your development process.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by ... )] - Android UDF.&lt;br /&gt;
&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13032</id>
		<title>User Defined Functions</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13032"/>
		<updated>2015-05-03T10:45:36Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* OpenOffice Automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a listing of libraries of &#039;&#039;&#039;user defined functions&#039;&#039;&#039; (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.&lt;br /&gt;
This list is probably not complete, but constantly supplemented.&lt;br /&gt;
If you do not find a solution here, ask a new question on the [http://www.autoitscript.com/forum/forum/2-general-help-and-support/ forum].&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106163 Active Directory (by water)] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150231 GTK+  (by prazetto)] - GTK+ Framework | Widgets&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153520 IUIAutomation MS framework (by junkew)] - IUIAutomation MS framework to automate chrome, FF, IE, ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87956 Java (by seangriffin)] - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86574 SAP (by seangriffin)] - SAP business management automation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149540 SAPWizard (by ozmike)] - SAPWizard UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80201 Service (by arcker)] - Build your own service with AutoIt code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91018 WiFi (by MattyD)] - Low level control over your wireless LAN.&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95595 Firefox (by Stilgar)] - A little less support for automation than IE, but still very good.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166542 HTMLDocumentEvents (by SmOke_N)] - Track IE document events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166304 IEJS (by SmOke_N)] - IEJS - IE Javascript options, an IE.au3 personal extension.&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - Everything about Internet explorer can be automated with the IE library supplied with a standard AutoIt install.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149203 NavInfo (by Nessie)] - With this UDF you can check if a specified browser/software is installed and which version is being used.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=61090 Opera (by MrCreatoR,)] - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32144 Microsoft Office Access (by randallc )] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel (by water et al.) - This UDF is included in AutoIt. Link to the [[Excel_UDF|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by GreenCan &amp;amp; water )] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by water )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft PowerPoint (by Toady )] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word (by water et al.) - This UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&lt;br /&gt;
&lt;br /&gt;
===OpenOffice Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI]] - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL&#039;s (using Windows API calls)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77731 Device Management (by ... )] - Device Management API&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by ... )] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by ... )] - DirectSound UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by ... )] - Direct2D UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by ... )] - _FB_Tools - manage your FritzBox from Autoit&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by ... )] - This is a simple I/O (Input/Output) UDF for interacting with ports. (I/O Port Functions - x64 Parallel Port IO, Keyboard, etc + Restore PC Speaker Beep)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by ... )] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by ... )] - AutoIt powered mouse events&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ... )] - MouseTrapEvent UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by ... )] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by ... )] - Network configuration UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20121 Screen Resolution (by ... )] - Screen Resolution Changing UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by ... )] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ... )] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=15864 SPI Hardware Interface (by ... )] - This script is made to comunicate with the MAX335 chip  using the SPI protocol via the LPT(printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68866 Webcam (by ... )] - Webcam UDF made by LIMITER.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70857 Webcam (by ... )] - Webcam UDF made by ludocus.&lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29404 Computer information (by JSThePatriot)] - A general purpose library to get various details about a Windows machine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=54039 WinPcap (by JRSmile)] - Wrapper for the windows packet capture library WinPcap.&lt;br /&gt;
* [http://opensource.grisambre.net/pcapau3/ WinPcap (by Nicolas Ricquemaque)] - A library to access the main functionalities offered by the WinPcap driver.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105875 ADODB (by spudw2k)] - ADODB Example.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145142 DBF (by funkey)] - dBase database read and write with DLL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by ... )] - EzMySql - Use MySql Databases with autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94920-solved-passing-parameters-using-dllcall-to-a-c-dll/#entry684751 FireBird (by ... )] - FireBird, Interbase dll udf.&lt;br /&gt;
* [http://stackoverflow.com/questions/21991475/autoit-firebird-sql-combo-return-data-as-csv-instead-of-xml FireBird (by ... )] - Additional link to FireBird UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by ... )] - MSSQL.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ... )] - _SQL.au3. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by ... )] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ... )] - MySQL UDFs (without ODBC).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ... )] - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by ... )] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
&lt;br /&gt;
== Internet protocol suite ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by ... )] - cURL UDF - a UDF for transferring data with URL syntax&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by ... )]  - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by ... )]  - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by ... )] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by ... )] IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by ... )] - RFC4627 compliant JSON encode/decode&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by ... )] - JSMN - A Non-Strict JSON UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ... )] - Bridge to Native Windows JSON plus OO extension for AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by ... )] - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167339 _POP3_Ex (by ... )] POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by ... )] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by ... )]  - Prowl UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by ... )] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by ... )]  - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by ... )] - SNMP_UDF for SNMPv1 and SNMPv2c&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ... )] (Reading toner status from SNMP device with WMI).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by ... )]  - This UDF allows to use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ... )]  - UPnP : Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by ... )] - Enables scripts to access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77503 WinInet (by ... )] - Enables scripts to access standard Internet protocols, such as FTP, Gopher and HTTP. Also supports creating GET and POST requests and submitting them with conforming standards, cookies supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by ... )]  - multi client, event-based, able to bind console app to socket.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by ... )] - More extensive library than the one above. Uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87441 LZMA (by trancexx )] - LZMA (Native Windows)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112273 LZMA Compression (by ... )] - LZMA Compression UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by ... )] - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it&#039;s faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by ... )] - Package UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by ... )] - PureZIP_L library UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by ... )] - UnRAR.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by ... )] - Zip plugin&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by ... )] - ZIP.au3 UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by ... )] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by ... )] - ZIP STRUCTS UDF (from scratch)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by ... )] - zLib (Deflate/Inflate/GZIP) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17727 XZip (by eltorro)] - another UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161847 XZip (by mLipok)] - UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by ... )] - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by ... )] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by ... )] - TrueCrypt UDFs.&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ... )] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by ... )] - HtmlHelp UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ... )] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by ... )] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by ... )] - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73993 Printing (by ... )] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by ... )] - RTF_Printer.au3 - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by ... )] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by ... )] - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by ... )] - MIDI UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by ... )] - SAPIListBox (Speech Recognition) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by ... )] - Text-to-Speech UDF&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by ... )] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70506 IrrLicht (by ... )] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by ... )] - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by ... )] - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by ... )] - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148129 OpenGL (2.0) (by ... )] - new set of UDFs for OpenGL + AutoIt&lt;br /&gt;
&lt;br /&gt;
===Players===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114143 VLC (by ... )] - VLC (Media Player) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ... )] - VLC Media Player&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ... )] - Windows Media Player UDF&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32494 XSkin (by ... )] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by ... )] - A library that allows a user to skin their application GUI using the Windows &#039;&#039;.MSstyles&#039;&#039; files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by ... )] - Allows the creation of modern, fancy GUI and tray menus with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by ... )] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119505 GUIFrame (by ... )] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 Easy Scrollbars (by ... )] - Easily create scrollable sections in your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by ... )] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp.au3 (by ... )] - Management of context help ([http://www.autoitscript.com/forum/index.php?showtopic=72152-contexthelp/ original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by ... )] - Expand and contract sections of your GUI. ([http://www.autoitscript.com/forum/index.php?showtopic=117909 original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109096 ExtMsgBox (by ... )] - A very customisable replacement for MsgBox&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by ... )] - Small message GUIs which pop out of the Systray&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by ... )] - Manage child GUIs as panel ctrls&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by ... )] - Pie chart&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by ... )] - 3D Pie chart&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by ... )] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by ... )] - Allows you to create a window finder control like the one seen in AutoIt Window Info.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by ... )] - Create and control native pager controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by ... )] - Hotkeys Input Control UDF Library (Non-native)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107965 GUIHotkey (by ... )] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103904&amp;amp;p=735769 Marquees (by ... )] - Make tickertape info bars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by ... )] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by ... )] - Provides a convenient way to embed hypertext links in a window&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ... )] - You even can use full textured images&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by ... )] - Table UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 GUI/Tray Menu (by ... )] - GUI/Tray Menu with icons and colors (modified by LarsJ with extra examples by LarsJ and AZJIO)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by ... )] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166594 GUITreeViewEx (by ... )] - Check/clear parent and child checkboxes in a TreeView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by ... )] - Calendar UDF&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by ... )] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by ... )] - Make calculations with extremely large numbers that AutoIt normally is not able to support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by ... )] - From, to and between positive bases less than 63 (decimals supported)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106551 Decimal To fraction (by ... )] - Converts any decimal number to a fraction. Example: 1.2 to 6/5&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometry math functions (by ... )] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by ... )] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by ... )] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by ... )] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by ... )] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by ... )] - integer to roman numerals made by Mat.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/123398-snippet-dump/page-3#entry1005157 Roman Numerals (by ... )] - Roman Numerals made by czardas.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94770-integer-to-roman-numerals/#entry1043544 Roman Numerals (by ... )] - Roman Numerals made by AZJIO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by ... )] - inline APL interpreter.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90492 Hotkey.au3 (by ... )] - Management of Hotkeys UDF, with several advantages over HotkeySet().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by ... )] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by ... )] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by ... )] - Automatically size controls to fit the text you want to put in them&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by ... )] - Spell Checker UDF - Hunspell&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by ... )] - TVExplorer UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by ... )] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by ... )] - LFN UDF - overcome MAX_PATH limit of 256 chars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History/Sotrage (by ... )] - UDF to save and restore the entire clipboard contents&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by ... )] - Resources UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by ... )] - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by ... )] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by ... )] - Binary UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by ... )] - Show Struct in ListView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by ... )] - With DDEML UDF one can use an AutoIt script as a DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by ... )] - _FileGetMimeType UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by ... )] - FindMimeFromData using urlmon.dll&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by ... )] - Get or Read Pixel from Memory UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/117033-file-locking-with-cooperative-semaphores File locking with cooperative semaphores (by ... )] - Simple file locking without a server&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=142977 SQLite Array Functions (by ... )] - SQLite Array Functions - a faster method for unique arrays and sorting methods&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by ... )] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by ... )] - Basically, a bunch of strings can be stored locally (at program level) or globally (at O/S level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by ... )] - This small library allows simple and reliable way to copy or move files and directories without suspending your script. Moreover, you can get the current state (number of copied bytes, system error code, and other status information) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 AutoIt Inline Assembly (by ... )] - TODO Description&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by ... )] - The Embedded Flat Assembler (FASM) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by ... )] - Embed DLLs in script and call functions from memory&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by ... )] - ReadDirectoryChanges Wrapper&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170087 barcode-generators (by willichan )] - Creates a Code128A/B/C or Creates a Code39 or Code39Extended optimized barcode from supplied data&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ... )] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160875 Debenu Quick PDF Library (by ... )] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by ... )] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by ... )] - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ... )] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by ... )] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by ... )] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by ... )] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ... )] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by ... )] - Create Startup entries in the Startup Folder or Registry&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by ... )] - Local account UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by ... )] - Windows Services UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by ... )] - ITaskBarList UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by ... )] - FileSystemMonitor UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by ... )] - Magnifier Functions - Windows Vista+ Magnifier Manipulation&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by ... )] - WRMF - Windows Registry Monitor Call Function&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by ... )] - Windows Registry UDFs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by ... )] - RegWriteAllUsers / RegDeleteAllUsers&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by ... )] - System restore UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Sheduler (by ... )] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplaner/Taskscheduler COM (by ... )] - an UDF for using the Windows Taskplaner / Task Scheduler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by ... )] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by ... )] - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by ... )] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by ... )] - VirusTotal API 2.0 UDF.&lt;br /&gt;
&lt;br /&gt;
== Social Media and other Website API ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by ... )] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by ... )] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by ... )] - another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by ... )] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by ... )] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150473 Google API (by ... )] - JSON queries for Google API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131343 PasteBin (by ... )] - PasteBin (powered by PasteBin).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by ... )] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by ... )] - eBay UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by ... )] - Remote Gmail (UDF)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by ... )] - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by ... )] - AYTU - AutoIt Youtube Uploader&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by ... )] - Google Functions&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by ... )] - Dropbox authenticator&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by ... )] - TVmaze.com API UDF (TV-Series)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by ... )] - Teamspeak 3 UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166205 TeamViewer API (by ... )] - UDF for TeamViewer API - a modest beginning&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by ... )] - Print USPS Postage Labels&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by ... )] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by ... )] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API] a couple of function, which allows you to create projects in Crowdin, add and update files, download translations or integrate localization with your development process.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by ... )] - Android UDF.&lt;br /&gt;
&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13031</id>
		<title>User Defined Functions</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13031"/>
		<updated>2015-05-03T10:42:36Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a listing of libraries of &#039;&#039;&#039;user defined functions&#039;&#039;&#039; (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.&lt;br /&gt;
This list is probably not complete, but constantly supplemented.&lt;br /&gt;
If you do not find a solution here, ask a new question on the [http://www.autoitscript.com/forum/forum/2-general-help-and-support/ forum].&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106163 Active Directory (by water)] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150231 GTK+  (by prazetto)] - GTK+ Framework | Widgets&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153520 IUIAutomation MS framework (by junkew)] - IUIAutomation MS framework to automate chrome, FF, IE, ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87956 Java (by seangriffin)] - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86574 SAP (by seangriffin)] - SAP business management automation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149540 SAPWizard (by ozmike)] - SAPWizard UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80201 Service (by arcker)] - Build your own service with AutoIt code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91018 WiFi (by MattyD)] - Low level control over your wireless LAN.&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95595 Firefox (by Stilgar)] - A little less support for automation than IE, but still very good.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166542 HTMLDocumentEvents (by SmOke_N)] - Track IE document events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166304 IEJS (by SmOke_N)] - IEJS - IE Javascript options, an IE.au3 personal extension.&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - Everything about Internet explorer can be automated with the IE library supplied with a standard AutoIt install.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149203 NavInfo (by Nessie)] - With this UDF you can check if a specified browser/software is installed and which version is being used.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=61090 Opera (by MrCreatoR,)] - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32144 Microsoft Office Access (by randallc )] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel (by water et al.) - This UDF is included in AutoIt. Link to the [[Excel_UDF|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by GreenCan &amp;amp; water )] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by water )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft PowerPoint (by Toady )] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word (by water et al.) - This UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&lt;br /&gt;
&lt;br /&gt;
===OpenOffice Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI]] - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL&#039;s (using Windows API calls)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77731 Device Management (by ... )] - Device Management API&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by ... )] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by ... )] - DirectSound UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by ... )] - Direct2D UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by ... )] - _FB_Tools - manage your FritzBox from Autoit&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by ... )] - This is a simple I/O (Input/Output) UDF for interacting with ports. (I/O Port Functions - x64 Parallel Port IO, Keyboard, etc + Restore PC Speaker Beep)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by ... )] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by ... )] - AutoIt powered mouse events&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ... )] - MouseTrapEvent UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by ... )] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by ... )] - Network configuration UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20121 Screen Resolution (by ... )] - Screen Resolution Changing UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by ... )] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ... )] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=15864 SPI Hardware Interface (by ... )] - This script is made to comunicate with the MAX335 chip  using the SPI protocol via the LPT(printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68866 Webcam (by ... )] - Webcam UDF made by LIMITER.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70857 Webcam (by ... )] - Webcam UDF made by ludocus.&lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29404 Computer information (by JSThePatriot)] - A general purpose library to get various details about a Windows machine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=54039 WinPcap (by JRSmile)] - Wrapper for the windows packet capture library WinPcap.&lt;br /&gt;
* [http://opensource.grisambre.net/pcapau3/ WinPcap (by Nicolas Ricquemaque)] - A library to access the main functionalities offered by the WinPcap driver.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105875 ADODB (by spudw2k)] - ADODB Example.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145142 DBF (by funkey)] - dBase database read and write with DLL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by ... )] - EzMySql - Use MySql Databases with autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94920-solved-passing-parameters-using-dllcall-to-a-c-dll/#entry684751 FireBird (by ... )] - FireBird, Interbase dll udf.&lt;br /&gt;
* [http://stackoverflow.com/questions/21991475/autoit-firebird-sql-combo-return-data-as-csv-instead-of-xml FireBird (by ... )] - Additional link to FireBird UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by ... )] - MSSQL.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ... )] - _SQL.au3. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by ... )] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ... )] - MySQL UDFs (without ODBC).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ... )] - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by ... )] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
&lt;br /&gt;
== Internet protocol suite ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by ... )] - cURL UDF - a UDF for transferring data with URL syntax&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by ... )]  - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by ... )]  - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by ... )] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by ... )] IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by ... )] - RFC4627 compliant JSON encode/decode&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by ... )] - JSMN - A Non-Strict JSON UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ... )] - Bridge to Native Windows JSON plus OO extension for AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by ... )] - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167339 _POP3_Ex (by ... )] POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by ... )] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by ... )]  - Prowl UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by ... )] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by ... )]  - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by ... )] - SNMP_UDF for SNMPv1 and SNMPv2c&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ... )] (Reading toner status from SNMP device with WMI).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by ... )]  - This UDF allows to use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ... )]  - UPnP : Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by ... )] - Enables scripts to access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77503 WinInet (by ... )] - Enables scripts to access standard Internet protocols, such as FTP, Gopher and HTTP. Also supports creating GET and POST requests and submitting them with conforming standards, cookies supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by ... )]  - multi client, event-based, able to bind console app to socket.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by ... )] - More extensive library than the one above. Uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87441 LZMA (by trancexx )] - LZMA (Native Windows)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112273 LZMA Compression (by ... )] - LZMA Compression UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by ... )] - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it&#039;s faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by ... )] - Package UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by ... )] - PureZIP_L library UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by ... )] - UnRAR.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by ... )] - Zip plugin&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by ... )] - ZIP.au3 UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by ... )] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by ... )] - ZIP STRUCTS UDF (from scratch)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by ... )] - zLib (Deflate/Inflate/GZIP) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17727 XZip (by eltorro)] - another UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161847 XZip (by mLipok)] - UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by ... )] - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by ... )] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by ... )] - TrueCrypt UDFs.&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ... )] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by ... )] - HtmlHelp UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ... )] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by ... )] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by ... )] - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73993 Printing (by ... )] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by ... )] - RTF_Printer.au3 - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by ... )] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by ... )] - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by ... )] - MIDI UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by ... )] - SAPIListBox (Speech Recognition) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by ... )] - Text-to-Speech UDF&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by ... )] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70506 IrrLicht (by ... )] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by ... )] - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by ... )] - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by ... )] - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148129 OpenGL (2.0) (by ... )] - new set of UDFs for OpenGL + AutoIt&lt;br /&gt;
&lt;br /&gt;
===Players===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114143 VLC (by ... )] - VLC (Media Player) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ... )] - VLC Media Player&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ... )] - Windows Media Player UDF&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32494 XSkin (by ... )] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by ... )] - A library that allows a user to skin their application GUI using the Windows &#039;&#039;.MSstyles&#039;&#039; files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by ... )] - Allows the creation of modern, fancy GUI and tray menus with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by ... )] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119505 GUIFrame (by ... )] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 Easy Scrollbars (by ... )] - Easily create scrollable sections in your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by ... )] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp.au3 (by ... )] - Management of context help ([http://www.autoitscript.com/forum/index.php?showtopic=72152-contexthelp/ original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by ... )] - Expand and contract sections of your GUI. ([http://www.autoitscript.com/forum/index.php?showtopic=117909 original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109096 ExtMsgBox (by ... )] - A very customisable replacement for MsgBox&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by ... )] - Small message GUIs which pop out of the Systray&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by ... )] - Manage child GUIs as panel ctrls&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by ... )] - Pie chart&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by ... )] - 3D Pie chart&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by ... )] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by ... )] - Allows you to create a window finder control like the one seen in AutoIt Window Info.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by ... )] - Create and control native pager controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by ... )] - Hotkeys Input Control UDF Library (Non-native)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107965 GUIHotkey (by ... )] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103904&amp;amp;p=735769 Marquees (by ... )] - Make tickertape info bars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by ... )] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by ... )] - Provides a convenient way to embed hypertext links in a window&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ... )] - You even can use full textured images&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by ... )] - Table UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 GUI/Tray Menu (by ... )] - GUI/Tray Menu with icons and colors (modified by LarsJ with extra examples by LarsJ and AZJIO)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by ... )] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166594 GUITreeViewEx (by ... )] - Check/clear parent and child checkboxes in a TreeView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by ... )] - Calendar UDF&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by ... )] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by ... )] - Make calculations with extremely large numbers that AutoIt normally is not able to support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by ... )] - From, to and between positive bases less than 63 (decimals supported)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106551 Decimal To fraction (by ... )] - Converts any decimal number to a fraction. Example: 1.2 to 6/5&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometry math functions (by ... )] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by ... )] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by ... )] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by ... )] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by ... )] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by ... )] - integer to roman numerals made by Mat.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/123398-snippet-dump/page-3#entry1005157 Roman Numerals (by ... )] - Roman Numerals made by czardas.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94770-integer-to-roman-numerals/#entry1043544 Roman Numerals (by ... )] - Roman Numerals made by AZJIO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by ... )] - inline APL interpreter.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90492 Hotkey.au3 (by ... )] - Management of Hotkeys UDF, with several advantages over HotkeySet().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by ... )] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by ... )] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by ... )] - Automatically size controls to fit the text you want to put in them&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by ... )] - Spell Checker UDF - Hunspell&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by ... )] - TVExplorer UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by ... )] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by ... )] - LFN UDF - overcome MAX_PATH limit of 256 chars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History/Sotrage (by ... )] - UDF to save and restore the entire clipboard contents&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by ... )] - Resources UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by ... )] - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by ... )] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by ... )] - Binary UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by ... )] - Show Struct in ListView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by ... )] - With DDEML UDF one can use an AutoIt script as a DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by ... )] - _FileGetMimeType UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by ... )] - FindMimeFromData using urlmon.dll&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by ... )] - Get or Read Pixel from Memory UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/117033-file-locking-with-cooperative-semaphores File locking with cooperative semaphores (by ... )] - Simple file locking without a server&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=142977 SQLite Array Functions (by ... )] - SQLite Array Functions - a faster method for unique arrays and sorting methods&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by ... )] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by ... )] - Basically, a bunch of strings can be stored locally (at program level) or globally (at O/S level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by ... )] - This small library allows simple and reliable way to copy or move files and directories without suspending your script. Moreover, you can get the current state (number of copied bytes, system error code, and other status information) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 AutoIt Inline Assembly (by ... )] - TODO Description&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by ... )] - The Embedded Flat Assembler (FASM) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by ... )] - Embed DLLs in script and call functions from memory&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by ... )] - ReadDirectoryChanges Wrapper&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170087 barcode-generators (by willichan )] - Creates a Code128A/B/C or Creates a Code39 or Code39Extended optimized barcode from supplied data&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ... )] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160875 Debenu Quick PDF Library (by ... )] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by ... )] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by ... )] - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ... )] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by ... )] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by ... )] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by ... )] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ... )] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by ... )] - Create Startup entries in the Startup Folder or Registry&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by ... )] - Local account UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by ... )] - Windows Services UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by ... )] - ITaskBarList UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by ... )] - FileSystemMonitor UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by ... )] - Magnifier Functions - Windows Vista+ Magnifier Manipulation&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by ... )] - WRMF - Windows Registry Monitor Call Function&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by ... )] - Windows Registry UDFs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by ... )] - RegWriteAllUsers / RegDeleteAllUsers&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by ... )] - System restore UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Sheduler (by ... )] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplaner/Taskscheduler COM (by ... )] - an UDF for using the Windows Taskplaner / Task Scheduler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by ... )] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by ... )] - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by ... )] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by ... )] - VirusTotal API 2.0 UDF.&lt;br /&gt;
&lt;br /&gt;
== Social Media and other Website API ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by ... )] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by ... )] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by ... )] - another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by ... )] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by ... )] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150473 Google API (by ... )] - JSON queries for Google API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131343 PasteBin (by ... )] - PasteBin (powered by PasteBin).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by ... )] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by ... )] - eBay UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by ... )] - Remote Gmail (UDF)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by ... )] - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by ... )] - AYTU - AutoIt Youtube Uploader&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by ... )] - Google Functions&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by ... )] - Dropbox authenticator&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by ... )] - TVmaze.com API UDF (TV-Series)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by ... )] - Teamspeak 3 UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166205 TeamViewer API (by ... )] - UDF for TeamViewer API - a modest beginning&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by ... )] - Print USPS Postage Labels&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by ... )] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by ... )] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API] a couple of function, which allows you to create projects in Crowdin, add and update files, download translations or integrate localization with your development process.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by ... )] - Android UDF.&lt;br /&gt;
&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13030</id>
		<title>User Defined Functions</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13030"/>
		<updated>2015-05-03T10:35:03Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Information gathering */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a listing of libraries of &#039;&#039;&#039;user defined functions&#039;&#039;&#039; (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.&lt;br /&gt;
This list is probably not complete, but constantly supplemented.&lt;br /&gt;
If you do not find a solution here, ask a new question on the [http://www.autoitscript.com/forum/forum/2-general-help-and-support/ forum].&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106163 Active Directory (by water)] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150231 GTK+  (by prazetto)] - GTK+ Framework | Widgets&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153520 IUIAutomation MS framework (by junkew)] - IUIAutomation MS framework to automate chrome, FF, IE, ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87956 Java UDF (by seangriffin)] - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86574 SAP (by seangriffin)] - SAP business management automation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149540 SAPWizard (by ozmike)] - SAPWizard UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80201 Service (by arcker)] - Build your own service with AutoIt code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91018 WiFi (by MattyD)] - Low level control over your wireless LAN.&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95595 Firefox (by Stilgar)] - A little less support for automation than IE, but still very good.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166542 HTMLDocumentEvents UDF (by SmOke_N)] - Track IE document events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166304 IEJS UDF (by SmOke_N)] - IEJS - IE Javascript options, an IE.au3 personal extension.&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - Everything about Internet explorer can be automated with the IE library supplied with a standard AutoIt install.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149203 NavInfo UDF (by Nessie)] - With this UDF you can check if a specified browser/software is installed and which version is being used.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=61090 Opera (by MrCreatoR,)] - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32144 Microsoft Office Access (by randallc )] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel (by water et al.) - This UDF is included in AutoIt. Link to the [[Excel_UDF|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by GreenCan &amp;amp; water )] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by water )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft PowerPoint (by Toady )] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word (by water et al.) - This UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&lt;br /&gt;
&lt;br /&gt;
===OpenOffice Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc UDF (by GMK)] - OpenOfficeCalc UDF&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI]] - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL&#039;s (using Windows API calls)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77731 Device Management (by ... )] - Device Management API&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by ... )] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound UDF (by ... )] - DirectSound UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D UDF (by ... )] - Direct2D UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by ... )] - _FB_Tools - manage your FritzBox from Autoit&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions UDF (by ... )] - This is a simple I/O (Input/Output) UDF for interacting with ports. (I/O Port Functions - x64 Parallel Port IO, Keyboard, etc + Restore PC Speaker Beep)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by ... )] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse UDF (by ... )] - AutoIt powered mouse events&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ... )] - MouseTrapEvent UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo UDF (by ... )] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration UDF (by ... )] - Network configuration UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20121 Screen Resolution (by ... )] - Screen Resolution Changing UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by ... )] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ... )] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=15864 SPI Hardware Interface (by ... )] - This script is made to comunicate with the MAX335 chip  using the SPI protocol via the LPT(printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68866 Webcam UDF (by ... )] - Webcam UDF made by LIMITER.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70857 Webcam UDF (by ... )] - Webcam UDF made by ludocus.&lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29404 Computer information (by JSThePatriot)] - A general purpose library to get various details about a Windows machine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=54039 WinPcap (by JRSmile)] - Wrapper for the windows packet capture library WinPcap.&lt;br /&gt;
* [http://opensource.grisambre.net/pcapau3/ WinPcap (by Nicolas Ricquemaque)] - A library to access the main functionalities offered by the WinPcap driver.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105875 ADODB (by spudw2k)] - ADODB Example.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145142 DBF (by funkey)] - dBase database read and write with DLL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by ... )] - EzMySql UDF - Use MySql Databases with autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94920-solved-passing-parameters-using-dllcall-to-a-c-dll/#entry684751 FireBird UDF (by ... )] - FireBird, Interbase dll udf.&lt;br /&gt;
* [http://stackoverflow.com/questions/21991475/autoit-firebird-sql-combo-return-data-as-csv-instead-of-xml FireBird UDF (by ... )] - Additional link to FireBird UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by ... )] - MSSQL.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ... )] - _SQL.au3. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by ... )] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ... )] - MySQL UDFs (without ODBC).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ... )] - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by ... )] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
&lt;br /&gt;
== Internet protocol suite ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by ... )] - cURL UDF - a UDF for transferring data with URL syntax&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by ... )]  - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 UDF (by ... )]  - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by ... )] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by ... )] IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by ... )] - RFC4627 compliant JSON encode/decode&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by ... )] - JSMN - A Non-Strict JSON UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ... )] - Bridge to Native Windows JSON plus OO extension for AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by ... )] - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167339 _POP3_Ex.au3 UDF (by ... )] POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by ... )] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by ... )]  - Prowl UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by ... )] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by ... )]  - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP UDF (by ... )] - SNMP_UDF for SNMPv1 and SNMPv2c&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ... )] (Reading toner status from SNMP device with WMI).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH UDF (by ... )]  - This UDF allows to use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ... )]  - UPnP : Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by ... )] - Enables scripts to access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77503 WinInet (by ... )] - Enables scripts to access standard Internet protocols, such as FTP, Gopher and HTTP. Also supports creating GET and POST requests and submitting them with conforming standards, cookies supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer UDF (by ... )]  - multi client, event-based, able to bind console app to socket.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by ... )] - More extensive library than the one above. Uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87441 LZMA (by trancexx )] - LZMA (Native Windows)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112273 LZMA Compression UDF (by ... )] - LZMA Compression UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack UDF (by ... )] - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it&#039;s faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package UDF (by ... )] - Package UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by ... )] - PureZIP_L library UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by ... )] - UnRAR.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by ... )] - Zip plugin&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by ... )] - ZIP.au3 UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by ... )] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by ... )] - ZIP STRUCTS UDF (from scratch)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by ... )] - zLib (Deflate/Inflate/GZIP) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17727 XZip (by eltorro)] - another UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161847 XZip (by mLipok)] - UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by ... )] - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by ... )] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by ... )] - TrueCrypt UDFs.&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ... )] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp UDF (by ... )] - HtmlHelp UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ... )] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by ... )] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by ... )] - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73993 Printing (by ... )] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by ... )] - RTF_Printer.au3 - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer UDF (by ... )] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by ... )] - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by ... )] - MIDI UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox UDF (by ... )] - SAPIListBox (Speech Recognition) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by ... )] - Text-to-Speech UDF&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by ... )] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70506 IrrLicht (by ... )] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by ... )] - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by ... )] - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL UDF (by ... )] - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148129 OpenGL UDFs (2.0) (by ... )] - new set of UDFs for OpenGL + AutoIt&lt;br /&gt;
&lt;br /&gt;
===Players===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114143 VLC UDF (by ... )] - VLC (Media Player) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ... )] - VLC Media Player&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP UDF (by ... )] - Windows Media Player UDF&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32494 XSkin (by ... )] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by ... )] - A library that allows a user to skin their application GUI using the Windows &#039;&#039;.MSstyles&#039;&#039; files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by ... )] - Allows the creation of modern, fancy GUI and tray menus with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by ... )] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119505 GUIFrame (by ... )] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 Easy Scrollbars (by ... )] - Easily create scrollable sections in your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by ... )] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp.au3 (by ... )] - Management of context help ([http://www.autoitscript.com/forum/index.php?showtopic=72152-contexthelp/ original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by ... )] - Expand and contract sections of your GUI. ([http://www.autoitscript.com/forum/index.php?showtopic=117909 original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109096 ExtMsgBox (by ... )] - A very customisable replacement for MsgBox&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by ... )] - Small message GUIs which pop out of the Systray&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel UDF (by ... )] - Manage child GUIs as panel ctrls&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by ... )] - Pie chart&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by ... )] - 3D Pie chart&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control UDF (by ... )] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by ... )] - Allows you to create a window finder control like the one seen in AutoIt Window Info.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by ... )] - Create and control native pager controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by ... )] - Hotkeys Input Control UDF Library (Non-native)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107965 GUIHotkey (by ... )] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103904&amp;amp;p=735769 Marquees (by ... )] - Make tickertape info bars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by ... )] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by ... )] - Provides a convenient way to embed hypertext links in a window&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ... )] - You even can use full textured images&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table UDF (by ... )] - Table UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 GUI/Tray Menu UDF (by ... )] - GUI/Tray Menu with icons and colors (modified by LarsJ with extra examples by LarsJ and AZJIO)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by ... )] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166594 GUITreeViewEx (by ... )] - Check/clear parent and child checkboxes in a TreeView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar UDF (by ... )] - Calendar UDF&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes UDF (by ... )] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number UDF (by ... )] - Make calculations with extremely large numbers that AutoIt normally is not able to support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by ... )] - From, to and between positive bases less than 63 (decimals supported)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106551 Decimal To fraction (by ... )] - Converts any decimal number to a fraction. Example: 1.2 to 6/5&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometry math functions (by ... )] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by ... )] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by ... )] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by ... )] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by ... )] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by ... )] - integer to roman numerals made by Mat.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/123398-snippet-dump/page-3#entry1005157 Roman Numerals (by ... )] - Roman Numerals made by czardas.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94770-integer-to-roman-numerals/#entry1043544 Roman Numerals (by ... )] - Roman Numerals made by AZJIO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL UDF (by ... )] - inline APL interpreter.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90492 Hotkey.au3 (by ... )] - Management of Hotkeys UDF, with several advantages over HotkeySet().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by ... )] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by ... )] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by ... )] - Automatically size controls to fit the text you want to put in them&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by ... )] - Spell Checker UDF - Hunspell&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by ... )] - TVExplorer UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by ... )] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by ... )] - LFN UDF - overcome MAX_PATH limit of 256 chars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History/Sotrage (by ... )] - UDF to save and restore the entire clipboard contents&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources UDF (by ... )] - Resources UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx UDF (by ... )] - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon UDF (by ... )] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary UDF (by ... )] - Binary UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by ... )] - Show Struct in ListView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML UDF (by ... )] - With DDEML UDF one can use an AutoIt script as a DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType UDF (by ... )] - _FileGetMimeType UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by ... )] - FindMimeFromData using urlmon.dll&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor UDF (by ... )] - Get or Read Pixel from Memory UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/117033-file-locking-with-cooperative-semaphores File locking with cooperative semaphores (by ... )] - Simple file locking without a server&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=142977 SQLite Array Functions (by ... )] - SQLite Array Functions - a faster method for unique arrays and sorting methods&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation UDF (by ... )] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table UDF (by ... )] - Basically, a bunch of strings can be stored locally (at program level) or globally (at O/S level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy UDF (by ... )] - This small library allows simple and reliable way to copy or move files and directories without suspending your script. Moreover, you can get the current state (number of copied bytes, system error code, and other status information) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 AutoIt Inline Assembly UDF (by ... )] - TODO Description&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM UDF (by ... )] - The Embedded Flat Assembler (FASM) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll UDF (by ... )] - Embed DLLs in script and call functions from memory&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC UDF (by ... )] - ReadDirectoryChanges Wrapper&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170087 barcode-generators (by willichan )] - Creates a Code128A/B/C or Creates a Code39 or Code39Extended optimized barcode from supplied data&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ... )] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160875 Debenu Quick PDF Library (by ... )] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by ... )] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK - UDF (by ... )] - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader UDF (by ... )] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF UDF (by ... )] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by ... )] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by ... )] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ... )] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by ... )] - Create Startup entries in the Startup Folder or Registry&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account UDF (by ... )] - Local account UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services UDF (by ... )] - Windows Services UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList UDF (by ... )] - ITaskBarList UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor UDF (by ... )] - FileSystemMonitor UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - Magnifier Functions - Windows Vista+ Magnifier Manipulation&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF UDF (by ... )] - WRMF - Windows Registry Monitor Call Function&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry UDFs (by ... )] - Windows Registry UDFs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by ... )] - RegWriteAllUsers / RegDeleteAllUsers&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore UDF (by ... )] - System restore UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Sheduler (by ... )] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplaner/Taskscheduler COM UDF (by ... )] - an UDF for using the Windows Taskplaner / Task Scheduler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by ... )] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI UDF (by ... )] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by ... )] - VirusTotal API 2.0 UDF.&lt;br /&gt;
[[Category:UDF (by ... )] (by ... )]&lt;br /&gt;
&lt;br /&gt;
== Social Media and other Website API ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by ... )] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by ... )] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by ... )] - another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by ... )] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by ... )] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150473 Google API (by ... )] - JSON queries for Google API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131343 PasteBin (by ... )] - PasteBin (powered by PasteBin).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by ... )] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay UDF (by ... )] - eBay UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by ... )] - Remote Gmail (UDF)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP UDF (by ... )] - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by ... )] - AYTU - AutoIt Youtube Uploader&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by ... )] - Google Functions&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by ... )] - Dropbox authenticator&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API UDF (by ... )] - TVmaze.com API UDF (TV-Series)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 UDF (by ... )] - Teamspeak 3 UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166205 TeamViewer API - UDF (by ... )] - UDF for TeamViewer API - a modest beginning&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost UDF (by ... )] - Print USPS Postage Labels&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype UDF (by ... )] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI UDF (by ... )] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API] a couple of function, which allows you to create projects in Crowdin, add and update files, download translations or integrate localization with your development process.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android UDF (by ... )] - Android UDF.&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13029</id>
		<title>User Defined Functions</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13029"/>
		<updated>2015-05-03T10:27:22Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a listing of libraries of &#039;&#039;&#039;user defined functions&#039;&#039;&#039; (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.&lt;br /&gt;
This list is probably not complete, but constantly supplemented.&lt;br /&gt;
If you do not find a solution here, ask a new question on the [http://www.autoitscript.com/forum/forum/2-general-help-and-support/ forum].&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106163 Active Directory (by water)] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150231 GTK+  (by prazetto)] - GTK+ Framework | Widgets&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153520 IUIAutomation MS framework (by junkew)] - IUIAutomation MS framework to automate chrome, FF, IE, ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87956 Java UDF (by seangriffin)] - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86574 SAP (by seangriffin)] - SAP business management automation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149540 SAPWizard (by ozmike)] - SAPWizard UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80201 Service (by arcker)] - Build your own service with AutoIt code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91018 WiFi (by MattyD)] - Low level control over your wireless LAN.&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95595 Firefox (by Stilgar)] - A little less support for automation than IE, but still very good.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166542 HTMLDocumentEvents UDF (by SmOke_N)] - Track IE document events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166304 IEJS UDF (by SmOke_N)] - IEJS - IE Javascript options, an IE.au3 personal extension.&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - Everything about Internet explorer can be automated with the IE library supplied with a standard AutoIt install.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149203 NavInfo UDF (by Nessie)] - With this UDF you can check if a specified browser/software is installed and which version is being used.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=61090 Opera (by MrCreatoR,)] - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32144 Microsoft Office Access (by randallc )] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel (by water et al.) - This UDF is included in AutoIt. Link to the [[Excel_UDF|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by GreenCan &amp;amp; water )] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by water )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft PowerPoint (by Toady )] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word (by water et al.) - This UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&lt;br /&gt;
&lt;br /&gt;
===OpenOffice Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc UDF (by GMK)] - OpenOfficeCalc UDF&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI]] - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL&#039;s (using Windows API calls)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77731 Device Management (by ... )] - Device Management API&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by ... )] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound UDF (by ... )] - DirectSound UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D UDF (by ... )] - Direct2D UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by ... )] - _FB_Tools - manage your FritzBox from Autoit&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions UDF (by ... )] - This is a simple I/O (Input/Output) UDF for interacting with ports. (I/O Port Functions - x64 Parallel Port IO, Keyboard, etc + Restore PC Speaker Beep)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by ... )] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse UDF (by ... )] - AutoIt powered mouse events&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ... )] - MouseTrapEvent UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo UDF (by ... )] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration UDF (by ... )] - Network configuration UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20121 Screen Resolution (by ... )] - Screen Resolution Changing UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by ... )] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ... )] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=15864 SPI Hardware Interface (by ... )] - This script is made to comunicate with the MAX335 chip  using the SPI protocol via the LPT(printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68866 Webcam UDF (by ... )] - Webcam UDF made by LIMITER.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70857 Webcam UDF (by ... )] - Webcam UDF made by ludocus.&lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29404 Computer information (by ... )] - A general purpose library to get various details about a Windows machine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=54039 WinPcap - Packet.dll UDF (by ... )] - &lt;br /&gt;
* [http://opensource.grisambre.net/pcapau3/#reference WinPcap Autoit3 UDF (by ... )] - This UDF allows very simply from an Autoit script to access the main functionalities offered by the WinPcap driver.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105875 ADODB (by spudw2k)] - ADODB Example.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145142 DBF (by funkey)] - dBase database read and write with DLL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by ... )] - EzMySql UDF - Use MySql Databases with autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94920-solved-passing-parameters-using-dllcall-to-a-c-dll/#entry684751 FireBird UDF (by ... )] - FireBird, Interbase dll udf.&lt;br /&gt;
* [http://stackoverflow.com/questions/21991475/autoit-firebird-sql-combo-return-data-as-csv-instead-of-xml FireBird UDF (by ... )] - Additional link to FireBird UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by ... )] - MSSQL.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ... )] - _SQL.au3. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by ... )] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ... )] - MySQL UDFs (without ODBC).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ... )] - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by ... )] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
&lt;br /&gt;
== Internet protocol suite ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by ... )] - cURL UDF - a UDF for transferring data with URL syntax&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by ... )]  - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 UDF (by ... )]  - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by ... )] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by ... )] IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by ... )] - RFC4627 compliant JSON encode/decode&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by ... )] - JSMN - A Non-Strict JSON UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ... )] - Bridge to Native Windows JSON plus OO extension for AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by ... )] - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167339 _POP3_Ex.au3 UDF (by ... )] POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by ... )] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by ... )]  - Prowl UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by ... )] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by ... )]  - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP UDF (by ... )] - SNMP_UDF for SNMPv1 and SNMPv2c&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ... )] (Reading toner status from SNMP device with WMI).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH UDF (by ... )]  - This UDF allows to use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ... )]  - UPnP : Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by ... )] - Enables scripts to access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77503 WinInet (by ... )] - Enables scripts to access standard Internet protocols, such as FTP, Gopher and HTTP. Also supports creating GET and POST requests and submitting them with conforming standards, cookies supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer UDF (by ... )]  - multi client, event-based, able to bind console app to socket.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by ... )] - More extensive library than the one above. Uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87441 LZMA (by trancexx )] - LZMA (Native Windows)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112273 LZMA Compression UDF (by ... )] - LZMA Compression UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack UDF (by ... )] - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it&#039;s faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package UDF (by ... )] - Package UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by ... )] - PureZIP_L library UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by ... )] - UnRAR.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by ... )] - Zip plugin&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by ... )] - ZIP.au3 UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by ... )] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by ... )] - ZIP STRUCTS UDF (from scratch)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by ... )] - zLib (Deflate/Inflate/GZIP) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17727 XZip (by eltorro)] - another UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161847 XZip (by mLipok)] - UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by ... )] - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by ... )] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by ... )] - TrueCrypt UDFs.&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ... )] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp UDF (by ... )] - HtmlHelp UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ... )] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by ... )] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by ... )] - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73993 Printing (by ... )] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by ... )] - RTF_Printer.au3 - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer UDF (by ... )] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by ... )] - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by ... )] - MIDI UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox UDF (by ... )] - SAPIListBox (Speech Recognition) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by ... )] - Text-to-Speech UDF&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by ... )] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70506 IrrLicht (by ... )] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by ... )] - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by ... )] - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL UDF (by ... )] - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148129 OpenGL UDFs (2.0) (by ... )] - new set of UDFs for OpenGL + AutoIt&lt;br /&gt;
&lt;br /&gt;
===Players===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114143 VLC UDF (by ... )] - VLC (Media Player) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ... )] - VLC Media Player&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP UDF (by ... )] - Windows Media Player UDF&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32494 XSkin (by ... )] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by ... )] - A library that allows a user to skin their application GUI using the Windows &#039;&#039;.MSstyles&#039;&#039; files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by ... )] - Allows the creation of modern, fancy GUI and tray menus with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by ... )] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119505 GUIFrame (by ... )] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 Easy Scrollbars (by ... )] - Easily create scrollable sections in your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by ... )] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp.au3 (by ... )] - Management of context help ([http://www.autoitscript.com/forum/index.php?showtopic=72152-contexthelp/ original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by ... )] - Expand and contract sections of your GUI. ([http://www.autoitscript.com/forum/index.php?showtopic=117909 original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109096 ExtMsgBox (by ... )] - A very customisable replacement for MsgBox&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by ... )] - Small message GUIs which pop out of the Systray&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel UDF (by ... )] - Manage child GUIs as panel ctrls&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by ... )] - Pie chart&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by ... )] - 3D Pie chart&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control UDF (by ... )] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by ... )] - Allows you to create a window finder control like the one seen in AutoIt Window Info.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by ... )] - Create and control native pager controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by ... )] - Hotkeys Input Control UDF Library (Non-native)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107965 GUIHotkey (by ... )] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103904&amp;amp;p=735769 Marquees (by ... )] - Make tickertape info bars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by ... )] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by ... )] - Provides a convenient way to embed hypertext links in a window&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ... )] - You even can use full textured images&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table UDF (by ... )] - Table UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 GUI/Tray Menu UDF (by ... )] - GUI/Tray Menu with icons and colors (modified by LarsJ with extra examples by LarsJ and AZJIO)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by ... )] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166594 GUITreeViewEx (by ... )] - Check/clear parent and child checkboxes in a TreeView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar UDF (by ... )] - Calendar UDF&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes UDF (by ... )] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number UDF (by ... )] - Make calculations with extremely large numbers that AutoIt normally is not able to support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by ... )] - From, to and between positive bases less than 63 (decimals supported)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106551 Decimal To fraction (by ... )] - Converts any decimal number to a fraction. Example: 1.2 to 6/5&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometry math functions (by ... )] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by ... )] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by ... )] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by ... )] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by ... )] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by ... )] - integer to roman numerals made by Mat.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/123398-snippet-dump/page-3#entry1005157 Roman Numerals (by ... )] - Roman Numerals made by czardas.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94770-integer-to-roman-numerals/#entry1043544 Roman Numerals (by ... )] - Roman Numerals made by AZJIO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL UDF (by ... )] - inline APL interpreter.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90492 Hotkey.au3 (by ... )] - Management of Hotkeys UDF, with several advantages over HotkeySet().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by ... )] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by ... )] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by ... )] - Automatically size controls to fit the text you want to put in them&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by ... )] - Spell Checker UDF - Hunspell&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by ... )] - TVExplorer UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by ... )] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by ... )] - LFN UDF - overcome MAX_PATH limit of 256 chars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History/Sotrage (by ... )] - UDF to save and restore the entire clipboard contents&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources UDF (by ... )] - Resources UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx UDF (by ... )] - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon UDF (by ... )] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary UDF (by ... )] - Binary UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by ... )] - Show Struct in ListView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML UDF (by ... )] - With DDEML UDF one can use an AutoIt script as a DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType UDF (by ... )] - _FileGetMimeType UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by ... )] - FindMimeFromData using urlmon.dll&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor UDF (by ... )] - Get or Read Pixel from Memory UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/117033-file-locking-with-cooperative-semaphores File locking with cooperative semaphores (by ... )] - Simple file locking without a server&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=142977 SQLite Array Functions (by ... )] - SQLite Array Functions - a faster method for unique arrays and sorting methods&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation UDF (by ... )] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table UDF (by ... )] - Basically, a bunch of strings can be stored locally (at program level) or globally (at O/S level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy UDF (by ... )] - This small library allows simple and reliable way to copy or move files and directories without suspending your script. Moreover, you can get the current state (number of copied bytes, system error code, and other status information) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 AutoIt Inline Assembly UDF (by ... )] - TODO Description&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM UDF (by ... )] - The Embedded Flat Assembler (FASM) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll UDF (by ... )] - Embed DLLs in script and call functions from memory&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC UDF (by ... )] - ReadDirectoryChanges Wrapper&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170087 barcode-generators (by willichan )] - Creates a Code128A/B/C or Creates a Code39 or Code39Extended optimized barcode from supplied data&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ... )] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160875 Debenu Quick PDF Library (by ... )] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by ... )] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK - UDF (by ... )] - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader UDF (by ... )] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF UDF (by ... )] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by ... )] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by ... )] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ... )] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by ... )] - Create Startup entries in the Startup Folder or Registry&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account UDF (by ... )] - Local account UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services UDF (by ... )] - Windows Services UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList UDF (by ... )] - ITaskBarList UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor UDF (by ... )] - FileSystemMonitor UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - Magnifier Functions - Windows Vista+ Magnifier Manipulation&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF UDF (by ... )] - WRMF - Windows Registry Monitor Call Function&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry UDFs (by ... )] - Windows Registry UDFs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by ... )] - RegWriteAllUsers / RegDeleteAllUsers&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore UDF (by ... )] - System restore UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Sheduler (by ... )] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplaner/Taskscheduler COM UDF (by ... )] - an UDF for using the Windows Taskplaner / Task Scheduler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by ... )] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI UDF (by ... )] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by ... )] - VirusTotal API 2.0 UDF.&lt;br /&gt;
[[Category:UDF (by ... )] (by ... )]&lt;br /&gt;
&lt;br /&gt;
== Social Media and other Website API ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by ... )] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by ... )] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by ... )] - another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by ... )] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by ... )] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150473 Google API (by ... )] - JSON queries for Google API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131343 PasteBin (by ... )] - PasteBin (powered by PasteBin).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by ... )] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay UDF (by ... )] - eBay UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by ... )] - Remote Gmail (UDF)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP UDF (by ... )] - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by ... )] - AYTU - AutoIt Youtube Uploader&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by ... )] - Google Functions&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by ... )] - Dropbox authenticator&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API UDF (by ... )] - TVmaze.com API UDF (TV-Series)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 UDF (by ... )] - Teamspeak 3 UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166205 TeamViewer API - UDF (by ... )] - UDF for TeamViewer API - a modest beginning&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost UDF (by ... )] - Print USPS Postage Labels&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype UDF (by ... )] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI UDF (by ... )] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API] a couple of function, which allows you to create projects in Crowdin, add and update files, download translations or integrate localization with your development process.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android UDF (by ... )] - Android UDF.&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Excel_UDF&amp;diff=13028</id>
		<title>Excel UDF</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Excel_UDF&amp;diff=13028"/>
		<updated>2015-05-03T10:16:30Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WIP}}&lt;br /&gt;
The Excel UDF offers functions to control and manipulate Microsoft Excel workbooks.&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the Excel UDF that comes with AutoIt 3.3.12.0 or later.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
New versions of Microsoft Office have been released since the last changes were made to the Excel UDF. The new extensions (e.g. xlsx) were not (fully) supported, new functions were missing etc. The current version of the Excel UDF lifts this limitations.&lt;br /&gt;
 &lt;br /&gt;
* Works with as many instances of Excel as you like - not just one&lt;br /&gt;
* Works with any Workbook - not just the active one&lt;br /&gt;
* Works with any Worksheet - not just the active one&lt;br /&gt;
* Only does what you tell it to do - no implicit &amp;quot;actions&amp;quot;&lt;br /&gt;
* Only one function to read from a cell or a range&lt;br /&gt;
* Only one function to write a string, a 1D or 2D array to a cell or a range&lt;br /&gt;
* Support for every file format Excel supports&lt;br /&gt;
* Speed enhancements when transferring data from/to an Excel sheet (20 - 100 times faster)&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
=== Range ===&lt;br /&gt;
A Range is a rectangular block made of one or more cells that Excel treats as a unit. The functions of the UDF mainly work with ranges. A range - unlike a selection - is not visible on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Examples how to define special ranges can be found [[Excel_Range|here]].&lt;br /&gt;
&lt;br /&gt;
=== Cell reference ===&lt;br /&gt;
The UDF only supports the A1 form (example: &amp;quot;B7&amp;quot;) to reference cells. The R1C1 form (example &amp;quot;R7C2&amp;quot;) is not supported. But the UDF provides functions to translate a cell reference between this two forms.&amp;lt;br /&amp;gt;&lt;br /&gt;
You can reference cells by name as well.&lt;br /&gt;
==== Examples ====&lt;br /&gt;
* Single cell: &amp;quot;B7&amp;quot;&lt;br /&gt;
* Multiple cells: &amp;quot;A1:B7&amp;quot;&lt;br /&gt;
* Row(s): &amp;quot;2&amp;quot; or &amp;quot;3:5&amp;quot;&lt;br /&gt;
* Column(s): &amp;quot;B&amp;quot; or &amp;quot;D:F&amp;quot;&lt;br /&gt;
* Name: &amp;quot;TestRange&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Features not covered by the UDF ==&lt;br /&gt;
The UDF only covers basic user needs. Single line functions (like switching to another sheet) or functions with too many parameters (like formatting a cell or range) are not covered by this UDF. You need to use the Excel COM yourself.&amp;lt;br /&amp;gt;&lt;br /&gt;
I will give a few examples here. The rest can be found on [http://msdn.microsoft.com/en-us/library/ff846392.aspx MSDN].&lt;br /&gt;
&lt;br /&gt;
=== Format a range ===&lt;br /&gt;
==== Alignment ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Horizontal alignment&lt;br /&gt;
; Enumeration for Excel 2010: http://msdn.microsoft.com/en-us/library/ff840772%28v=office.14%29.aspx&lt;br /&gt;
$oRange.HorizontalAlignment = $XlHAlign ; Can be xlCenter, xlDistributed, xlJustify, xlLeft or xlRight of the XlHAlign enumeration.&lt;br /&gt;
&lt;br /&gt;
; Vertical alignment&lt;br /&gt;
; Enumeration for Excel 2010: http://msdn.microsoft.com/en-us/library/ff835305%28v=office.14%29.aspx&lt;br /&gt;
$oRange.VerticalAlignment = $XlVAlign ; Can be xlBottom, xlCenter, xlDistributed, xlJustify or xlTop of the XlVAlign enumeration.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Background ====&lt;br /&gt;
See &lt;br /&gt;
==== Border ====&lt;br /&gt;
...&lt;br /&gt;
==== Color ====&lt;br /&gt;
...&lt;br /&gt;
==== Font ====&lt;br /&gt;
===== Bold etc. =====&lt;br /&gt;
True if the font is bold. Read/write.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange.Font.Bold = True&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This works similar for &#039;&#039;Italic&#039;&#039;, &#039;&#039;Strikethrough&#039;&#039;, &#039;&#039;Subscript&#039;&#039;, &#039;&#039;Superscript&#039;&#039; and &#039;&#039;Underline&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===== Color, ColorIndex =====&lt;br /&gt;
Color: Returns or sets the primary color of the object. Use the RGB function to create a color value.&amp;lt;br /&amp;gt;&lt;br /&gt;
ColorIndex: Returns or sets a variant value that represents the color of the font.&lt;br /&gt;
The color is specified as an index value into the current color palette.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Object !! Color&lt;br /&gt;
|-&lt;br /&gt;
| Border || The color of the border.&lt;br /&gt;
|-&lt;br /&gt;
| Borders || The color of all four borders of a range. If they&#039;re not all the same color, Color returns 0 (zero).&lt;br /&gt;
|-&lt;br /&gt;
| Font || The color of the font.&lt;br /&gt;
|-&lt;br /&gt;
| Interior || The cell shading color or the drawing object fill color.&lt;br /&gt;
|-&lt;br /&gt;
| Tab || The color of the tab.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange.Font.Color = 5 ; Set the color of the font&lt;br /&gt;
$oRange.Borders.ColorIndex = 5 ; Set the color of all four borders&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Name =====&lt;br /&gt;
Returns or sets a variant value that represents the name of the font.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange.Font.Name = &amp;quot;Arial&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Size =====&lt;br /&gt;
Returns or sets the size of the font specified in units of points.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange.Font.Size = 12&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Underline =====&lt;br /&gt;
Returns or sets the type of underline applied to the font. Can be one of the XlUnderlineStyle constants xlUnderlineStyleNone, xlUnderlineStyleSingle, xlUnderlineStyleDouble, &lt;br /&gt;
xlUnderlineStyleSingleAccounting or xlUnderlineStyleDoubleAccounting. Read/write.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange.Font.Underline = $xlUnderlineStyleSingle&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Height/Width ====&lt;br /&gt;
...&lt;br /&gt;
==== Number Format ====&lt;br /&gt;
Returns or sets a variant value that represents the format code for the object.&amp;lt;br /&amp;gt;&lt;br /&gt;
This property returns Null if all cells in the specified range don&#039;t have the same number format.&amp;lt;br /&amp;gt;&lt;br /&gt;
The format code is the same string as the Format Codes option in the Format Cells dialog box. The Format function uses different format code strings than do the NumberFormat and NumberFormatLocal properties.&amp;lt;br /&amp;gt;&lt;br /&gt;
A number format consists of up to 4 items, separated by semicolons. Each of the items is an individual number format. The first by default applies to positive numbers, the second to negative numbers, the third to zeros, and the fourth to text.&amp;lt;br /&amp;gt;&lt;br /&gt;
A very good description of format codes can be found [http://peltiertech.com/Excel/NumberFormats.html here].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| @ || Format as string&lt;br /&gt;
|-&lt;br /&gt;
| General || Default format&lt;br /&gt;
|-&lt;br /&gt;
| 0000 || Format number with 4 digits, add leading zeroes where needed&lt;br /&gt;
|-&lt;br /&gt;
| [Blue]$#,##0;[Red]$#,##0;$#,##0 || Format positive numbers in blue, negative in red and 0 in default color (black). The numbers are prefixed with the dollar sign and a thousands separator is inserted. The numbers are displayed as integers.&amp;lt;br /&amp;gt;&lt;br /&gt;
Available colors are [Black], [Blue], [Cyan], [Green], [Magenta], [Red], [White], and [Yellow].&lt;br /&gt;
|-&lt;br /&gt;
| [Blue][&amp;gt;=3000]$#,##0;[Red][&amp;lt;0]$#,##0;$#,##0 || Format values &amp;gt;= 3000 in blue, values &amp;lt; 0 in read and all other numbers in default color (black).&lt;br /&gt;
|-&lt;br /&gt;
| 0&amp;quot; feet&amp;quot; || append a label to the number&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange.NumberFormat = &amp;quot;General&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Script breaking changes after AutoIt version 3.3.10.2. ==&lt;br /&gt;
New versions of Microsoft Office have been released since the last changes were made to the Excel UDF. New file types and new functions needed to be supported, hence the UDF was complete rewritten.&lt;br /&gt;
&lt;br /&gt;
Some functions/parameters have been removed or renamed, new functions/parameters have been added. A detailed list of changes can be found [http://www.autoitscript.com/autoit3/docs/script_breaking_changes_excel_udf.htm here].&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
All function names have been changed from _Excel* to _Excel_*.&lt;br /&gt;
&lt;br /&gt;
@extended no longer contains the number of the invalid parameter. The code returned in @error tells exactly what went wrong.&lt;br /&gt;
&lt;br /&gt;
The following list shows the old/new function/parameter name (a &amp;quot;-&amp;quot; is shown if the function/parameter has been removed) and some example scripts how to mimic the behaviour of the &amp;quot;old&amp;quot; UDF. If there is no entry for a removed function/parameter then there is no need for this functionality.&lt;br /&gt;
&lt;br /&gt;
=== Function -/_Excel_Open ===&lt;br /&gt;
It&#039;s mandatory now to call function _Excel_Open before any other function. This function didn&#039;t exist in the old UDF.&lt;br /&gt;
@extended is set if Excel was already running.&lt;br /&gt;
&lt;br /&gt;
=== Function _ExcelFontSetProperties/- ===&lt;br /&gt;
There are so many formatting functions in Excel that they can&#039;t be covered by a few functions. The function only contained a single line of code. So it was removed.&lt;br /&gt;
Use the code examples above to format a range.&lt;br /&gt;
&lt;br /&gt;
=== Function _ExcelHorizontalAlignSet/- ===&lt;br /&gt;
There are so many formatting functions in Excel that they can&#039;t be covered by a few functions. The function only contained a single line of code. So it was removed.&lt;br /&gt;
Use the code examples above to format a range.&lt;br /&gt;
&lt;br /&gt;
=== Function _ExcelSheetActivate/- ===&lt;br /&gt;
The function only contained a single line of code. So it was removed.&lt;br /&gt;
Replace the function with the following code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
$oWorkbook.Sheets(x).Activate ; x can be the number or name of the sheet to be activated&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _ExcelSheetNameGet/- ===&lt;br /&gt;
The function only contained a single line of code. So it was removed.&lt;br /&gt;
Replace the function with the following code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
$sSheetName = $oSheet.Name&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _ExcelSheetNameSet/- ===&lt;br /&gt;
The function only contained a single line of code. So it was removed.&lt;br /&gt;
Replace the function with the following code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
$oSheet.Name = &amp;quot;Name of the sheet&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compare example scripts ==&lt;br /&gt;
In this section I will show how some selected example scripts taken from AutoIt 3.3.8.1 should look like with the new Excel UDF.&amp;lt;br /&amp;gt;&lt;br /&gt;
To enhance readability error checking statements have been omitted. &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;But I highly recommend to check for errors after each call of a _Excel_* function.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AutoIt 3.3.8.1 || AutoIt 3.3.12.0 and later&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! _ExcelBookAttach !! _Excel_BookAttach&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Excel.au3&amp;gt;&lt;br /&gt;
Local $sFilePath = @TempDir &amp;amp; &amp;quot;\Temp.xls&amp;quot;&lt;br /&gt;
_ExcelBookOpen($sFilePath)&lt;br /&gt;
Local $oExcel = _ExcelBookAttach($sFilePath)&amp;lt;/syntaxhighlight&amp;gt; || &amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Excel.au3&amp;gt;&lt;br /&gt;
Local $sWorkbook = @TempDir &amp;amp; &amp;quot;\Temp.xls&amp;quot;&lt;br /&gt;
Local $oExcel = _Excel_Open()&lt;br /&gt;
Local $oWorkbook = _Excel_BookOpen($oExcel, $sWorkbook)&lt;br /&gt;
$oWorkbook = _Excel_BookAttach($sWorkbook)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! _ExcelBookClose || _Excel_BookClose&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Excel.au3&amp;gt;&lt;br /&gt;
Local $oExcel = _ExcelBookNew()&lt;br /&gt;
_ExcelBookClose($oExcel)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|| &amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Excel.au3&amp;gt;&lt;br /&gt;
Local $oExcel = _Excel_Open()&lt;br /&gt;
Local $oWorkbook = _Excel_BookNew($oExcel)&lt;br /&gt;
_Excel_BookClose($oWorkbook, False)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! _ExcelBookNew || _Excel_BookNew&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Excel.au3&amp;gt;&lt;br /&gt;
Local $oExcel = _ExcelBookNew()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|| &amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Excel.au3&amp;gt;&lt;br /&gt;
Local $oExcel = _Excel_Open()&lt;br /&gt;
Local $oWorkbook = _Excel_BookNew($oExcel, 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! _ExcelBookOpen || _Excel_BookOpen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Excel.au3&amp;gt;&lt;br /&gt;
Local $sFilePath1 = @ScriptDir &amp;amp; &amp;quot;\Test.xls&amp;quot;&lt;br /&gt;
Local $oExcel = _ExcelBookOpen($sFilePath1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|| &amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Excel.au3&amp;gt;&lt;br /&gt;
Local $oExcel = _Excel_Open()&lt;br /&gt;
Local $sWorkbook = @ScriptDir &amp;amp; &amp;quot;\Test.xlsx&amp;quot;&lt;br /&gt;
Local $oWorkbook = _Excel_BookOpen($oExcel, $sWorkbook, Default, Default, True)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Word_UDF&amp;diff=13027</id>
		<title>Word UDF</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Word_UDF&amp;diff=13027"/>
		<updated>2015-05-03T10:01:36Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Word UDF offers functions to control and manipulate Microsoft Word documents.&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the Word UDF that comes with AutoIt 3.3.10.0 or later.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
New versions of Microsoft Office have been released since the last changes were made to the Word UDF. The new extensions (e.g. docx) were not (fully) supported, new functions were missing etc. The current version of the Word UDF lifts this limitations.&lt;br /&gt;
 &lt;br /&gt;
* Works with as many instances of Word as you like - not just one&lt;br /&gt;
* Works with any document - not just the active one&lt;br /&gt;
* Only does what you tell it to do - no implicit &amp;quot;actions&amp;quot;&lt;br /&gt;
* Works with ranges and lets you move the insert marker&lt;br /&gt;
* Supports reading/writing of tables&lt;br /&gt;
* Support for every file format Word supports&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The UDF only covers basic user needs. Single line functions (like getting document properties) or functions with too many parameters (like running a macro) are not covered by this UDF. You need to use the Word COM yourself.&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
&lt;br /&gt;
=== Range ===&lt;br /&gt;
A Range is a block made of one or more characters that Word treats as a unit. The functions of the UDF mainly work with ranges. A range - unlike a selection - is not visible on the screen.&lt;br /&gt;
&lt;br /&gt;
== Script breaking changes after AutoIt version 3.3.8.1 ==&lt;br /&gt;
New versions of Microsoft Office have been released since the last changes were made to the Word UDF. New file types and new functions needed to be supported, hence the UDF was complete rewritten.&lt;br /&gt;
&lt;br /&gt;
Some functions/parameters have been removed or renamed, new functions/parameters have been added. A detailed list of changes can be found [http://www.autoitscript.com/autoit3/docs/script_breaking_changes_word_udf.htm here].&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
All function names have been changed from _Word* to _Word_*.&lt;br /&gt;
&lt;br /&gt;
@extended no longer contains the number of the invalid parameter. The code returned in @error tells exactly what went wrong.&lt;br /&gt;
&lt;br /&gt;
The following list shows the old/new function/parameter name (a &amp;quot;-&amp;quot; is shown if the function/parameter has been removed) and some example scripts how to mimic the behaviour of the &amp;quot;old&amp;quot; UDF. If there is no entry for a removed function/parameter then there is no need for this functionality.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordCreate/_Word_Create ===&lt;br /&gt;
It&#039;s mandatory now to call function _Word_Create before any other function. You could have used _WordCreate or _WordAttach in the old Word UDF.&lt;br /&gt;
@extended is set if Word was already running.&lt;br /&gt;
&lt;br /&gt;
==== Parameter $s_FilePath/- ====&lt;br /&gt;
Optional parameter to specify the file to open upon creation.&lt;br /&gt;
Use _Word_DocOpen or _Word_DocAdd now.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordDocPropertyGet/- ===&lt;br /&gt;
Retrieves builtin document properties.&lt;br /&gt;
&lt;br /&gt;
Word object model reference on MSDN for Word 2010:&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ff195105%28v=office.14%29.aspx WdBuiltInProperty Enumeration]&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
Global $oDoc = _Word_DocOpen($oWord, @ScriptDir &amp;amp; &amp;quot;\test.doc&amp;quot;) &lt;br /&gt;
Global $wdPropertyAuthor = 3 &lt;br /&gt;
Global $sAuthor = $oDoc.BuiltInDocumentProperties($wdPropertyAuthor).Value ; Retrieves the Author of the document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordDocPropertySet/- ===&lt;br /&gt;
Sets builtin document properties.&lt;br /&gt;
&lt;br /&gt;
For links to the Word object model reference on MSDN see function _WordDocPropertyGet.&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
Global $oDoc = _Word_DocOpen($oWord, @ScriptDir &amp;amp; &amp;quot;\test.doc&amp;quot;) &lt;br /&gt;
Global $wdPropertyAuthor = 3 &lt;br /&gt;
$oDoc.BuiltInDocumentProperties($wdPropertyAuthor).Value = &amp;quot;PowerUser&amp;quot; ; Sets the Author of the document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordErrorHandlerDeRegister/_DebugCOMError ===&lt;br /&gt;
The default COM error handler has been moved to the Debug UDF. See _WordErrorHandlerRegister for details.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordErrorHandlerRegister/_DebugCOMError ===&lt;br /&gt;
The default COM error handler has been moved to the Debug UDF. But you can still create a custom COM error handler by using ObjEvent.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Debug.au3&amp;gt;&lt;br /&gt;
_DebugSetup(&amp;quot;Word Debug Window&amp;quot;, True, 1, &amp;quot;&amp;quot;, True)&lt;br /&gt;
_DebugCOMError(1) ; Register a default COM error handler to grab Word COM errors and write the messages to the Debug window&lt;br /&gt;
; Do Word processing here&lt;br /&gt;
_DebugCOMError(0) ; DeRegister the default COM error handler&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordErrorNotify/- ===&lt;br /&gt;
The Word UDF no longer creates text error messages and writes them to the Console. &lt;br /&gt;
&lt;br /&gt;
You need to check the macros @error and @extended after you called a function. The returned values are documented in the help file.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordMacroRun/- ===&lt;br /&gt;
A macro can now be run by a single line.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
Global $oDoc = _Word_DocOpen($oWord, @ScriptDir &amp;amp; &amp;quot;\test.doc&amp;quot;) &lt;br /&gt;
$oWord.Run(&amp;quot;macro_name&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordPropertyGet/- ===&lt;br /&gt;
Retrieves application and document properties. Many of the properties for the Options object correspond to items in the Options dialog box.&lt;br /&gt;
&lt;br /&gt;
Word object model reference on MSDN for Word 2010:&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ff841712%28v=office.14%29.aspx Word Application properties]&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ff821122%28v=office.14%29.aspx Word properties for the Options object]&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
$bVisible = $oWord.Visible ; Returns True when the Word application is visible, else False&lt;br /&gt;
$bUpdatePrint = $oWord.Options.UpdateFieldsAtPrint ; True if Microsoft Word updates fields automatically before printing a document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordPropertySet/- ===&lt;br /&gt;
Sets application and document properties. Many of the properties for the Options object correspond to items in the Options dialog box.&lt;br /&gt;
&lt;br /&gt;
For links to the Word object model reference on MSDN see function _WordPropertyGet.&lt;br /&gt;
&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
$bVisible = $oWord.Options.SaveInterval = 5 ; Sets Word to save AutoRecover information for all open documents every five minutes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Word_UDF&amp;diff=13026</id>
		<title>Word UDF</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Word_UDF&amp;diff=13026"/>
		<updated>2015-05-03T09:39:12Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Word UDF offers functions to control and manipulate Microsoft Word documents.&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the Word UDF that comes with AutoIt 3.3.12.0 or later.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
New versions of Microsoft Office have been released since the last changes were made to the Word UDF. The new extensions (e.g. docx) were not (fully) supported, new functions were missing etc. The current version of the Word UDF lifts this limitations.&lt;br /&gt;
 &lt;br /&gt;
* Works with as many instances of Word as you like - not just one&lt;br /&gt;
* Works with any document - not just the active one&lt;br /&gt;
* Only does what you tell it to do - no implicit &amp;quot;actions&amp;quot;&lt;br /&gt;
* Works with ranges and lets you move the insert marker&lt;br /&gt;
* Supports reading/writing of tables&lt;br /&gt;
* Support for every file format Word supports&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The UDF only covers basic user needs. Single line functions (like getting document properties) or functions with too many parameters (like running a macro) are not covered by this UDF. You need to use the Word COM yourself.&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
&lt;br /&gt;
=== Range ===&lt;br /&gt;
A Range is a block made of one or more characters that Word treats as a unit. The functions of the UDF mainly work with ranges. A range - unlike a selection - is not visible on the screen.&lt;br /&gt;
&lt;br /&gt;
== Script breaking changes after AutoIt version 3.3.8.1 ==&lt;br /&gt;
New versions of Microsoft Office have been released since the last changes were made to the Word UDF. New file types and new functions needed to be supported, hence the UDF was complete rewritten.&lt;br /&gt;
&lt;br /&gt;
Some functions/parameters have been removed or renamed, new functions/parameters have been added. A detailed list of changes can be found [http://www.autoitscript.com/autoit3/docs/script_breaking_changes_word_udf.htm here].&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
All function names have been changed from _Word* to _Word_*.&lt;br /&gt;
&lt;br /&gt;
@extended no longer contains the number of the invalid parameter. The code returned in @error tells exactly what went wrong.&lt;br /&gt;
&lt;br /&gt;
The following list shows the old/new function/parameter name (a &amp;quot;-&amp;quot; is shown if the function/parameter has been removed) and some example scripts how to mimic the behaviour of the &amp;quot;old&amp;quot; UDF. If there is no entry for a removed function/parameter then there is no need for this functionality.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordCreate/_Word_Create ===&lt;br /&gt;
It&#039;s mandatory now to call function _Word_Create before any other function. You could have used _WordCreate or _WordAttach in the old Word UDF.&lt;br /&gt;
@extended is set if Word was already running.&lt;br /&gt;
&lt;br /&gt;
==== Parameter $s_FilePath/- ====&lt;br /&gt;
Optional parameter to specify the file to open upon creation.&lt;br /&gt;
Use _Word_DocOpen or _Word_DocAdd now.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordDocPropertyGet/- ===&lt;br /&gt;
Retrieves builtin document properties.&lt;br /&gt;
&lt;br /&gt;
Word object model reference on MSDN for Word 2010:&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ff195105%28v=office.14%29.aspx WdBuiltInProperty Enumeration]&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
Global $oDoc = _Word_DocOpen($oWord, @ScriptDir &amp;amp; &amp;quot;\test.doc&amp;quot;) &lt;br /&gt;
Global $wdPropertyAuthor = 3 &lt;br /&gt;
Global $sAuthor = $oDoc.BuiltInDocumentProperties($wdPropertyAuthor).Value ; Retrieves the Author of the document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordDocPropertySet/- ===&lt;br /&gt;
Sets builtin document properties.&lt;br /&gt;
&lt;br /&gt;
For links to the Word object model reference on MSDN see function _WordDocPropertyGet.&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
Global $oDoc = _Word_DocOpen($oWord, @ScriptDir &amp;amp; &amp;quot;\test.doc&amp;quot;) &lt;br /&gt;
Global $wdPropertyAuthor = 3 &lt;br /&gt;
$oDoc.BuiltInDocumentProperties($wdPropertyAuthor).Value = &amp;quot;PowerUser&amp;quot; ; Sets the Author of the document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordErrorHandlerDeRegister/_DebugCOMError ===&lt;br /&gt;
The default COM error handler has been moved to the Debug UDF. See _WordErrorHandlerRegister for details.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordErrorHandlerRegister/_DebugCOMError ===&lt;br /&gt;
The default COM error handler has been moved to the Debug UDF. But you can still create a custom COM error handler by using ObjEvent.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Debug.au3&amp;gt;&lt;br /&gt;
_DebugSetup(&amp;quot;Word Debug Window&amp;quot;, True, 1, &amp;quot;&amp;quot;, True)&lt;br /&gt;
_DebugCOMError(1) ; Register a default COM error handler to grab Word COM errors and write the messages to the Debug window&lt;br /&gt;
; Do Word processing here&lt;br /&gt;
_DebugCOMError(0) ; DeRegister the default COM error handler&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordErrorNotify/- ===&lt;br /&gt;
The Word UDF no longer creates text error messages and writes them to the Console. &lt;br /&gt;
&lt;br /&gt;
You need to check the macros @error and @extended after you called a function. The returned values are documented in the help file.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordMacroRun/- ===&lt;br /&gt;
A macro can now be run by a single line.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
Global $oDoc = _Word_DocOpen($oWord, @ScriptDir &amp;amp; &amp;quot;\test.doc&amp;quot;) &lt;br /&gt;
$oWord.Run(&amp;quot;macro_name&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordPropertyGet/- ===&lt;br /&gt;
Retrieves application and document properties. Many of the properties for the Options object correspond to items in the Options dialog box.&lt;br /&gt;
&lt;br /&gt;
Word object model reference on MSDN for Word 2010:&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ff841712%28v=office.14%29.aspx Word Application properties]&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ff821122%28v=office.14%29.aspx Word properties for the Options object]&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
$bVisible = $oWord.Visible ; Returns True when the Word application is visible, else False&lt;br /&gt;
$bUpdatePrint = $oWord.Options.UpdateFieldsAtPrint ; True if Microsoft Word updates fields automatically before printing a document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordPropertySet/- ===&lt;br /&gt;
Sets application and document properties. Many of the properties for the Options object correspond to items in the Options dialog box.&lt;br /&gt;
&lt;br /&gt;
For links to the Word object model reference on MSDN see function _WordPropertyGet.&lt;br /&gt;
&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
$bVisible = $oWord.Options.SaveInterval = 5 ; Sets Word to save AutoRecover information for all open documents every five minutes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Word_UDF&amp;diff=13025</id>
		<title>Word UDF</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Word_UDF&amp;diff=13025"/>
		<updated>2015-05-03T09:34:32Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WIP}}&lt;br /&gt;
The Word UDF offers functions to control and manipulate Microsoft Word documents.&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the Word UDF that comes with AutoIt 3.3.12.0 or later.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
New versions of Microsoft Office have been released since the last changes were made to the Word UDF. The new extensions (e.g. docx) were not (fully) supported, new functions were missing etc. The current version of the Word UDF lifts this limitations.&lt;br /&gt;
 &lt;br /&gt;
* Works with as many instances of Word as you like - not just one&lt;br /&gt;
* Works with any document - not just the active one&lt;br /&gt;
* Only does what you tell it to do - no implicit &amp;quot;actions&amp;quot;&lt;br /&gt;
* Works with ranges and lets you move the insert marker&lt;br /&gt;
* Supports reading/writing of tables&lt;br /&gt;
* Support for every file format Word supports&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
=== Range ===&lt;br /&gt;
A Range is a block made of one or more characters that Word treats as a unit. The functions of the UDF mainly work with ranges. A range - unlike a selection - is not visible on the screen.&lt;br /&gt;
&lt;br /&gt;
== Features not covered by the UDF ==&lt;br /&gt;
The UDF only covers basic user needs. Single line functions (like getting document properties) or functions with too many parameters (like running a macro) are not covered by this UDF. You need to use the Word COM yourself.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Script breaking changes after AutoIt version 3.3.8.1 ==&lt;br /&gt;
New versions of Microsoft Office have been released since the last changes were made to the Word UDF. New file types and new functions needed to be supported, hence the UDF was complete rewritten.&lt;br /&gt;
&lt;br /&gt;
Some functions/parameters have been removed or renamed, new functions/parameters have been added. A detailed list of changes can be found [http://www.autoitscript.com/autoit3/docs/script_breaking_changes_word_udf.htm here].&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
All function names have been changed from _Word* to _Word_*.&lt;br /&gt;
&lt;br /&gt;
@extended no longer contains the number of the invalid parameter. The code returned in @error tells exactly what went wrong.&lt;br /&gt;
&lt;br /&gt;
The following list shows the old/new function/parameter name (a &amp;quot;-&amp;quot; is shown if the function/parameter has been removed) and some example scripts how to mimic the behaviour of the &amp;quot;old&amp;quot; UDF. If there is no entry for a removed function/parameter then there is no need for this functionality.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordCreate/_Word_Create ===&lt;br /&gt;
It&#039;s mandatory now to call function _Word_Create before any other function. You could have used _WordCreate or _WordAttach in the old Word UDF.&lt;br /&gt;
@extended is set if Word was already running.&lt;br /&gt;
&lt;br /&gt;
==== Parameter $s_FilePath/- ====&lt;br /&gt;
Optional parameter to specify the file to open upon creation.&lt;br /&gt;
Use _Word_DocOpen or _Word_DocAdd now.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordDocPropertyGet/- ===&lt;br /&gt;
Retrieves builtin document properties.&lt;br /&gt;
&lt;br /&gt;
Word object model reference on MSDN for Word 2010:&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ff195105%28v=office.14%29.aspx WdBuiltInProperty Enumeration]&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
Global $oDoc = _Word_DocOpen($oWord, @ScriptDir &amp;amp; &amp;quot;\test.doc&amp;quot;) &lt;br /&gt;
Global $wdPropertyAuthor = 3 &lt;br /&gt;
Global $sAuthor = $oDoc.BuiltInDocumentProperties($wdPropertyAuthor).Value ; Retrieves the Author of the document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordDocPropertySet/- ===&lt;br /&gt;
Sets builtin document properties.&lt;br /&gt;
&lt;br /&gt;
For links to the Word object model reference on MSDN see function _WordDocPropertyGet.&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
Global $oDoc = _Word_DocOpen($oWord, @ScriptDir &amp;amp; &amp;quot;\test.doc&amp;quot;) &lt;br /&gt;
Global $wdPropertyAuthor = 3 &lt;br /&gt;
$oDoc.BuiltInDocumentProperties($wdPropertyAuthor).Value = &amp;quot;PowerUser&amp;quot; ; Sets the Author of the document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordErrorHandlerDeRegister/_DebugCOMError ===&lt;br /&gt;
The default COM error handler has been moved to the Debug UDF. See _WordErrorHandlerRegister for details.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordErrorHandlerRegister/_DebugCOMError ===&lt;br /&gt;
The default COM error handler has been moved to the Debug UDF. But you can still create a custom COM error handler by using ObjEvent.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Debug.au3&amp;gt;&lt;br /&gt;
_DebugSetup(&amp;quot;Word Debug Window&amp;quot;, True, 1, &amp;quot;&amp;quot;, True)&lt;br /&gt;
_DebugCOMError(1) ; Register a default COM error handler to grab Word COM errors and write the messages to the Debug window&lt;br /&gt;
; Do Word processing here&lt;br /&gt;
_DebugCOMError(0) ; DeRegister the default COM error handler&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordErrorNotify/- ===&lt;br /&gt;
The Word UDF no longer creates text error messages and writes them to the Console. &lt;br /&gt;
&lt;br /&gt;
You need to check the macros @error and @extended after you called a function. The returned values are documented in the help file.&lt;br /&gt;
&lt;br /&gt;
=== Function _WordMacroRun/- ===&lt;br /&gt;
A macro can now be run by a single line.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
Global $oDoc = _Word_DocOpen($oWord, @ScriptDir &amp;amp; &amp;quot;\test.doc&amp;quot;) &lt;br /&gt;
$oWord.Run(&amp;quot;macro_name&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordPropertyGet/- ===&lt;br /&gt;
Retrieves application and document properties. Many of the properties for the Options object correspond to items in the Options dialog box.&lt;br /&gt;
&lt;br /&gt;
Word object model reference on MSDN for Word 2010:&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ff841712%28v=office.14%29.aspx Word Application properties]&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ff821122%28v=office.14%29.aspx Word properties for the Options object]&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
$bVisible = $oWord.Visible ; Returns True when the Word application is visible, else False&lt;br /&gt;
$bUpdatePrint = $oWord.Options.UpdateFieldsAtPrint ; True if Microsoft Word updates fields automatically before printing a document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function _WordPropertySet/- ===&lt;br /&gt;
Sets application and document properties. Many of the properties for the Options object correspond to items in the Options dialog box.&lt;br /&gt;
&lt;br /&gt;
For links to the Word object model reference on MSDN see function _WordPropertyGet.&lt;br /&gt;
&lt;br /&gt;
Example code:&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oWord = _Word_Create() &lt;br /&gt;
$bVisible = $oWord.Options.SaveInterval = 5 ; Sets Word to save AutoRecover information for all open documents every five minutes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Excel_Range&amp;diff=13024</id>
		<title>Excel Range</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Excel_Range&amp;diff=13024"/>
		<updated>2015-05-01T09:55:55Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Last Cell */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page you will find some special ranges and how to define them in AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
As input file I will use the following Excel workbook. All cells which have a value now or had a value before (means: all cells which had been touched by the user or a script) are displayed in grey.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
All examples show cells of the selected range in yellow.&lt;br /&gt;
&lt;br /&gt;
== Current Region ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange = $oWorkBook.Activesheet.Range(&amp;quot;B4&amp;quot;).CurrentRegion&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The current region is a range bounded by any combination of blank rows and blank columns.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_CurrentRegion.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that cell B6 is not part of the region. The cell has been touched before but now is blank and hence bounds the region.&lt;br /&gt;
&lt;br /&gt;
== Empty Cells ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange = $oWorkbook.ActiveSheet.UsedRange.SpecialCells($xlCellTypeBlanks)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Marks all empty cells in the specified range.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_EmptyCells.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entire Row / Entire Column ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange = $oWorkBook.Activesheet.Range(&amp;quot;B2&amp;quot;).EntireRow&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Selects the entire row(s) of the specified range.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_EntireRow.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Use method &amp;quot;EntireColumn&amp;quot; to select the columns for the specified range.&lt;br /&gt;
&lt;br /&gt;
== Last Cell ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange = $oWorkbook.ActiveSheet.UsedRange.SpecialCells($xlCellTypeLastCell)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Returns the last used cell (bottom right) in the specified range.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_LastCell.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
External Link: [http://www.ozgrid.com/VBA/ExcelRanges.htm Excel Ranges: Finding the Last Cell in a Range]&lt;br /&gt;
&lt;br /&gt;
== Used Range ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$oRange = $oWorkBook.Activesheet.UsedRange&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Selects all cells which have a value now or had a value before (means: all cells which had been touched by the user or a script).&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that the range does not contain row 1 and column 1!&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_UsedRange.jpg]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;With $oWorkbook.ActiveSheet&lt;br /&gt;
	$oRangeLast = .UsedRange.SpecialCells($xlCellTypeLastCell)&lt;br /&gt;
	$oRange = .Range(.Cells(1, 1), .Cells($oRangeLast.Row, $oRangeLast.Column))&lt;br /&gt;
EndWith&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This lines extend the used range to start with cell A1.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Range_UsedRangeFull.jpg]]&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Forum_FAQ&amp;diff=13021</id>
		<title>Forum FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Forum_FAQ&amp;diff=13021"/>
		<updated>2015-04-29T20:48:03Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{WIP}}&lt;br /&gt;
&#039;&#039;&#039;Takes shape and form only after changing the version of IPB.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DISCUSSION IS PROVIDED [http://www.autoitscript.com/forum/topic/169892-wiki-forum-faq-new-section/ HERE]&lt;br /&gt;
&lt;br /&gt;
This is a list of frequently asked questions - about using the forum.&lt;br /&gt;
&lt;br /&gt;
== Where can I read about forum rules and forum etiquette? ==&lt;br /&gt;
&lt;br /&gt;
=== Forum rules ===&lt;br /&gt;
You can read about forum rules [http://www.autoitscript.com/forum/topic/169097-forum-rules/ here].&lt;br /&gt;
&lt;br /&gt;
=== Announcements and site news ===&lt;br /&gt;
Additional information about forum you can read [http://www.autoitscript.com/forum/forum/1-announcements-and-site-news/ here].&lt;br /&gt;
&lt;br /&gt;
=== Forum etiquette ===&lt;br /&gt;
[http://www.autoitscript.com/wiki/FAQ#What_is_proper_forum_etiquette.3F_What_rules_are_there_for_the_forum.3F Here]  you can read about a proper forum etiquette.&lt;br /&gt;
&lt;br /&gt;
==How can I post &amp;quot;code&amp;quot; on the forum ?==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4 Editor AddCode Button.png|Step 1: click &amp;quot;Add code&amp;quot; button&lt;br /&gt;
File:IPB4 Editor AddCode Selecting Mode.png|Step 2: select mode&lt;br /&gt;
File:IPB4 Editor AddCode Paste content.png|Step 3: paste code and accept&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can read more [http://www.autoitscript.com/forum/guides/forum/posting-scripts-inline-attachment-or-downloads-r1/ here].&lt;br /&gt;
&lt;br /&gt;
==How can I setup my member profile ?==&lt;br /&gt;
=== Where and how can I edit signature? ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4_Signatures_User_Account_settings.png|STEP 1: Select Account &amp;quot;Settings&amp;quot;&lt;br /&gt;
File:IPB4_Signatures_User_Account_settings_Editing_Signatures.png|STEP 2: Select &amp;quot;Signtures&amp;quot; edit then and save&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please also read this [http://www.autoitscript.com/forum/topic/169341-signatures/ Announcement]&lt;br /&gt;
&lt;br /&gt;
=== WiP ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==How can I post screenshot or file on the forum ?==&lt;br /&gt;
First please read about posting [http://www.autoitscript.com/forum/guides/forum/posting-scripts-inline-attachment-or-downloads-r1/ here].&lt;br /&gt;
&lt;br /&gt;
=== Screenshot ===&lt;br /&gt;
Make a screenshot, edit it in program like mspaint.exe, remove all unnecessary, undesirable, proprietary, illegal ...... contents.&lt;br /&gt;
After that save it as file in jpg or png format.&lt;br /&gt;
&lt;br /&gt;
And now you have to put this file to the forum in 2 easy steps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4_Editor_Upload_image_First_step.png|STEP 1: Drag or select file&lt;br /&gt;
File:IPB4_Editor_Upload_image_Insert_to_post.png|STEP 2: insert file in cursor place&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== File ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==How can I search on the forum ?==&lt;br /&gt;
=== Simple searching ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Advanced searching ===&lt;br /&gt;
Click the magnifying glass symbol, located in the upper right corner, under login.&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Predefined searching ===&lt;br /&gt;
Just press &amp;quot;New content&amp;quot; button (is below the &amp;quot;Search&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Other questions==&lt;br /&gt;
=== How to use member name as link ===&lt;br /&gt;
Just type @name it should pop up a list of members matching typed name&lt;br /&gt;
&lt;br /&gt;
=== Friends &amp;lt;&amp;gt; Followers  ? ===&lt;br /&gt;
http://www.autoitscript.com/forum/topic/169956-friends-followers/&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Forum_FAQ&amp;diff=13020</id>
		<title>Forum FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Forum_FAQ&amp;diff=13020"/>
		<updated>2015-04-29T20:43:34Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Where and how can I edit signature */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;THIS PAGE IS WORK IN PROGRESS (Takes shape and form only after changing the version of IPB.).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DISCUSSION IS PROVIDED [http://www.autoitscript.com/forum/topic/169892-wiki-forum-faq-new-section/ HERE]&lt;br /&gt;
&lt;br /&gt;
This is a list of frequently asked questions - about using the forum.&lt;br /&gt;
&lt;br /&gt;
== Where can I read about forum rules and forum etiquette? ==&lt;br /&gt;
&lt;br /&gt;
=== Forum rules ===&lt;br /&gt;
You can read about forum rules [http://www.autoitscript.com/forum/topic/169097-forum-rules/ here].&lt;br /&gt;
&lt;br /&gt;
=== Announcements and site news ===&lt;br /&gt;
Additional information about forum you can read [http://www.autoitscript.com/forum/forum/1-announcements-and-site-news/ here].&lt;br /&gt;
&lt;br /&gt;
=== Forum etiquette ===&lt;br /&gt;
[http://www.autoitscript.com/wiki/FAQ#What_is_proper_forum_etiquette.3F_What_rules_are_there_for_the_forum.3F Here]  you can read about a proper forum etiquette.&lt;br /&gt;
&lt;br /&gt;
==How can I post &amp;quot;code&amp;quot; on the forum ?==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4 Editor AddCode Button.png|Step 1: click &amp;quot;Add code&amp;quot; button&lt;br /&gt;
File:IPB4 Editor AddCode Selecting Mode.png|Step 2: select mode&lt;br /&gt;
File:IPB4 Editor AddCode Paste content.png|Step 3: paste code and accept&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can read more [http://www.autoitscript.com/forum/guides/forum/posting-scripts-inline-attachment-or-downloads-r1/ here].&lt;br /&gt;
&lt;br /&gt;
==How can I setup my member profile ?==&lt;br /&gt;
=== Where and how can I edit signature? ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4_Signatures_User_Account_settings.png|STEP 1: Select Account &amp;quot;Settings&amp;quot;&lt;br /&gt;
File:IPB4_Signatures_User_Account_settings_Editing_Signatures.png|STEP 2: Select &amp;quot;Signtures&amp;quot; edit then and save&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please also read this [http://www.autoitscript.com/forum/topic/169341-signatures/ Announcement]&lt;br /&gt;
&lt;br /&gt;
=== WiP ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==How can I post screenshot or file on the forum ?==&lt;br /&gt;
First please read about posting [http://www.autoitscript.com/forum/guides/forum/posting-scripts-inline-attachment-or-downloads-r1/ here].&lt;br /&gt;
&lt;br /&gt;
=== Screenshot ===&lt;br /&gt;
Make a screenshot, edit it in program like mspaint.exe, remove all unnecessary, undesirable, proprietary, illegal ...... contents.&lt;br /&gt;
After that save it as file in jpg or png format.&lt;br /&gt;
&lt;br /&gt;
And now you have to put this file to the forum in 2 easy steps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4_Editor_Upload_image_First_step.png|STEP 1: Drag or select file&lt;br /&gt;
File:IPB4_Editor_Upload_image_Insert_to_post.png|STEP 2: insert file in cursor place&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== File ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==How can I search on the forum ?==&lt;br /&gt;
=== Simple searching ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Advanced searching ===&lt;br /&gt;
Click the magnifying glass symbol, located in the upper right corner, under login.&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Predefined searching ===&lt;br /&gt;
Just press &amp;quot;New content&amp;quot; button (is below the &amp;quot;Search&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Other questions==&lt;br /&gt;
=== How to use member name as link ===&lt;br /&gt;
Just type @name it should pop up a list of members matching typed name&lt;br /&gt;
&lt;br /&gt;
=== Friends &amp;lt;&amp;gt; Followers  ? ===&lt;br /&gt;
http://www.autoitscript.com/forum/topic/169956-friends-followers/&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Forum_FAQ&amp;diff=13019</id>
		<title>Forum FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Forum_FAQ&amp;diff=13019"/>
		<updated>2015-04-29T20:40:59Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Where can I read about forum rules and netiquette rules ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;THIS PAGE IS WORK IN PROGRESS (Takes shape and form only after changing the version of IPB.).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DISCUSSION IS PROVIDED [http://www.autoitscript.com/forum/topic/169892-wiki-forum-faq-new-section/ HERE]&lt;br /&gt;
&lt;br /&gt;
This is a list of frequently asked questions - about using the forum.&lt;br /&gt;
&lt;br /&gt;
== Where can I read about forum rules and forum etiquette? ==&lt;br /&gt;
&lt;br /&gt;
=== Forum rules ===&lt;br /&gt;
You can read about forum rules [http://www.autoitscript.com/forum/topic/169097-forum-rules/ here].&lt;br /&gt;
&lt;br /&gt;
=== Announcements and site news ===&lt;br /&gt;
Additional information about forum you can read [http://www.autoitscript.com/forum/forum/1-announcements-and-site-news/ here].&lt;br /&gt;
&lt;br /&gt;
=== Forum etiquette ===&lt;br /&gt;
[http://www.autoitscript.com/wiki/FAQ#What_is_proper_forum_etiquette.3F_What_rules_are_there_for_the_forum.3F Here]  you can read about a proper forum etiquette.&lt;br /&gt;
&lt;br /&gt;
==How can I post &amp;quot;code&amp;quot; on the forum ?==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4 Editor AddCode Button.png|Step 1: click &amp;quot;Add code&amp;quot; button&lt;br /&gt;
File:IPB4 Editor AddCode Selecting Mode.png|Step 2: select mode&lt;br /&gt;
File:IPB4 Editor AddCode Paste content.png|Step 3: paste code and accept&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can read more [http://www.autoitscript.com/forum/guides/forum/posting-scripts-inline-attachment-or-downloads-r1/ here].&lt;br /&gt;
&lt;br /&gt;
==How can I setup my member profile ?==&lt;br /&gt;
=== Where and how can I edit signature ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4_Signatures_User_Account_settings.png|STEP 1: Select Account &amp;quot;Settings&amp;quot;&lt;br /&gt;
File:IPB4_Signatures_User_Account_settings_Editing_Signatures.png|STEP 2: Select &amp;quot;Signtures&amp;quot; edit then and save&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please also read this [http://www.autoitscript.com/forum/topic/169341-signatures/ Announcement]&lt;br /&gt;
&lt;br /&gt;
=== WiP ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==How can I post screenshot or file on the forum ?==&lt;br /&gt;
First please read about posting [http://www.autoitscript.com/forum/guides/forum/posting-scripts-inline-attachment-or-downloads-r1/ here].&lt;br /&gt;
&lt;br /&gt;
=== Screenshot ===&lt;br /&gt;
Make a screenshot, edit it in program like mspaint.exe, remove all unnecessary, undesirable, proprietary, illegal ...... contents.&lt;br /&gt;
After that save it as file in jpg or png format.&lt;br /&gt;
&lt;br /&gt;
And now you have to put this file to the forum in 2 easy steps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4_Editor_Upload_image_First_step.png|STEP 1: Drag or select file&lt;br /&gt;
File:IPB4_Editor_Upload_image_Insert_to_post.png|STEP 2: insert file in cursor place&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== File ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==How can I search on the forum ?==&lt;br /&gt;
=== Simple searching ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Advanced searching ===&lt;br /&gt;
Click the magnifying glass symbol, located in the upper right corner, under login.&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Predefined searching ===&lt;br /&gt;
Just press &amp;quot;New content&amp;quot; button (is below the &amp;quot;Search&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Other questions==&lt;br /&gt;
=== How to use member name as link ===&lt;br /&gt;
Just type @name it should pop up a list of members matching typed name&lt;br /&gt;
&lt;br /&gt;
=== Friends &amp;lt;&amp;gt; Followers  ? ===&lt;br /&gt;
http://www.autoitscript.com/forum/topic/169956-friends-followers/&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Forum_FAQ&amp;diff=13018</id>
		<title>Forum FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Forum_FAQ&amp;diff=13018"/>
		<updated>2015-04-29T20:39:09Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Where I can read about forum rules and netiquette rules ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;THIS PAGE IS WORK IN PROGRESS (Takes shape and form only after changing the version of IPB.).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DISCUSSION IS PROVIDED [http://www.autoitscript.com/forum/topic/169892-wiki-forum-faq-new-section/ HERE]&lt;br /&gt;
&lt;br /&gt;
This is a list of frequently asked questions - about using the forum.&lt;br /&gt;
&lt;br /&gt;
== Where can I read about forum rules and netiquette rules ?==&lt;br /&gt;
&lt;br /&gt;
=== Forum rules ===&lt;br /&gt;
You can read about forum rules [http://www.autoitscript.com/forum/topic/169097-forum-rules/ here].&lt;br /&gt;
&lt;br /&gt;
=== Announcements and site news ===&lt;br /&gt;
Additional information about forum you can read [http://www.autoitscript.com/forum/forum/1-announcements-and-site-news/ here].&lt;br /&gt;
&lt;br /&gt;
=== Netiquette rules ===&lt;br /&gt;
[http://www.autoitscript.com/wiki/FAQ#What_is_proper_forum_etiquette.3F_What_rules_are_there_for_the_forum.3F Here]  you can read about a proper forum etiquette.&lt;br /&gt;
&lt;br /&gt;
==How can I post &amp;quot;code&amp;quot; on the forum ?==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4 Editor AddCode Button.png|Step 1: click &amp;quot;Add code&amp;quot; button&lt;br /&gt;
File:IPB4 Editor AddCode Selecting Mode.png|Step 2: select mode&lt;br /&gt;
File:IPB4 Editor AddCode Paste content.png|Step 3: paste code and accept&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can read more [http://www.autoitscript.com/forum/guides/forum/posting-scripts-inline-attachment-or-downloads-r1/ here].&lt;br /&gt;
&lt;br /&gt;
==How can I setup my member profile ?==&lt;br /&gt;
=== Where and how can I edit signature ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4_Signatures_User_Account_settings.png|STEP 1: Select Account &amp;quot;Settings&amp;quot;&lt;br /&gt;
File:IPB4_Signatures_User_Account_settings_Editing_Signatures.png|STEP 2: Select &amp;quot;Signtures&amp;quot; edit then and save&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please also read this [http://www.autoitscript.com/forum/topic/169341-signatures/ Announcement]&lt;br /&gt;
&lt;br /&gt;
=== WiP ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==How can I post screenshot or file on the forum ?==&lt;br /&gt;
First please read about posting [http://www.autoitscript.com/forum/guides/forum/posting-scripts-inline-attachment-or-downloads-r1/ here].&lt;br /&gt;
&lt;br /&gt;
=== Screenshot ===&lt;br /&gt;
Make a screenshot, edit it in program like mspaint.exe, remove all unnecessary, undesirable, proprietary, illegal ...... contents.&lt;br /&gt;
After that save it as file in jpg or png format.&lt;br /&gt;
&lt;br /&gt;
And now you have to put this file to the forum in 2 easy steps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:IPB4_Editor_Upload_image_First_step.png|STEP 1: Drag or select file&lt;br /&gt;
File:IPB4_Editor_Upload_image_Insert_to_post.png|STEP 2: insert file in cursor place&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== File ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==How can I search on the forum ?==&lt;br /&gt;
=== Simple searching ===&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Advanced searching ===&lt;br /&gt;
Click the magnifying glass symbol, located in the upper right corner, under login.&lt;br /&gt;
some description - &amp;quot;work in progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Predefined searching ===&lt;br /&gt;
Just press &amp;quot;New content&amp;quot; button (is below the &amp;quot;Search&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Other questions==&lt;br /&gt;
=== How to use member name as link ===&lt;br /&gt;
Just type @name it should pop up a list of members matching typed name&lt;br /&gt;
&lt;br /&gt;
=== Friends &amp;lt;&amp;gt; Followers  ? ===&lt;br /&gt;
http://www.autoitscript.com/forum/topic/169956-friends-followers/&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12991</id>
		<title>User Defined Functions</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12991"/>
		<updated>2015-04-29T16:05:16Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* OpenOffice Automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a listing of libraries of &#039;&#039;&#039;user defined functions&#039;&#039;&#039; (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.&lt;br /&gt;
This list is probably not complete, but constantly supplemented.&lt;br /&gt;
If you do not find a solution here, ask a new question on the [http://www.autoitscript.com/forum/forum/2-general-help-and-support/ forum].&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106163 Active Directory (by water)] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150231 GTK+  (by ... )] - GTK+ Framework | Widgets&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153520 IUIAutomation MS framework (by ... )] - IUIAutomation MS framework to automate chrome, FF, IE, ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87956 Java UDF (by ... )] - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86574 SAP (by ... )] - SAP business management automation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149540 SAPWizard (by ... )] - SAPWizard UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80201 Service (by ... )] - Build your own service with AutoIt code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91018 WiFi (by ... )] - Low level control over your wireless LAN.&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95595 Firefox (by Stilgar)] - A little less support for automation than IE, but still very good.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166542 HTMLDocumentEvents UDF (by SmOke_N)] - Track IE document events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166304 IEJS UDF (by SmOke_N)] - IEJS - IE Javascript options, an IE.au3 personal extension.&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - Everything about Internet explorer can be automated with the IE library supplied with a standard AutoIt install.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149203 NavInfo UDF (by Nessie)] - With this UDF you can check if a specified browser/software is installed and which version is being used.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=61090 Opera (by MrCreatoR,)] - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32144 Microsoft Office Access (by randallc )] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel (by water et al.) - This UDF is included in AutoIt. Link to the [[Excel_UDF|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by GreenCan &amp;amp; water )] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by water )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft PowerPoint (by Toady )] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word (by water et al.) - This UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&lt;br /&gt;
&lt;br /&gt;
===OpenOffice Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc UDF (by GMK)] - OpenOfficeCalc UDF&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI]] - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL&#039;s (using Windows API calls)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77731 Device Management (by ... )] - Device Management API&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by ... )] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound UDF (by ... )] - DirectSound UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D UDF (by ... )] - Direct2D UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by ... )] - _FB_Tools - manage your FritzBox from Autoit&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions UDF (by ... )] - This is a simple I/O (Input/Output) UDF for interacting with ports. (I/O Port Functions - x64 Parallel Port IO, Keyboard, etc + Restore PC Speaker Beep)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by ... )] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse UDF (by ... )] - AutoIt powered mouse events&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ... )] - MouseTrapEvent UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo UDF (by ... )] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration UDF (by ... )] - Network configuration UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20121 Screen Resolution (by ... )] - Screen Resolution Changing UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by ... )] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ... )] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=15864 SPI Hardware Interface (by ... )] - This script is made to comunicate with the MAX335 chip  using the SPI protocol via the LPT(printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68866 Webcam UDF (by ... )] - Webcam UDF made by LIMITER.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70857 Webcam UDF (by ... )] - Webcam UDF made by ludocus.&lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29404 Computer information (by ... )] - A general purpose library to get various details about a Windows machine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=54039 WinPcap - Packet.dll UDF (by ... )] - &lt;br /&gt;
* [http://opensource.grisambre.net/pcapau3/#reference WinPcap Autoit3 UDF (by ... )] - This UDF allows very simply from an Autoit script to access the main functionalities offered by the WinPcap driver.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105875 ADODB (by spudw2k)] - ADODB Example.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145142 DBF (by funkey)] - dBase database read and write with DLL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by ... )] - EzMySql UDF - Use MySql Databases with autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94920-solved-passing-parameters-using-dllcall-to-a-c-dll/#entry684751 FireBird UDF (by ... )] - FireBird, Interbase dll udf.&lt;br /&gt;
* [http://stackoverflow.com/questions/21991475/autoit-firebird-sql-combo-return-data-as-csv-instead-of-xml FireBird UDF (by ... )] - Additional link to FireBird UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by ... )] - MSSQL.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ... )] - _SQL.au3. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by ... )] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ... )] - MySQL UDFs (without ODBC).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ... )] - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by ... )] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
&lt;br /&gt;
== Internet protocol suite ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by ... )] - cURL UDF - a UDF for transferring data with URL syntax&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by ... )]  - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 UDF (by ... )]  - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by ... )] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by ... )] IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by ... )] - RFC4627 compliant JSON encode/decode&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by ... )] - JSMN - A Non-Strict JSON UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ... )] - Bridge to Native Windows JSON plus OO extension for AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by ... )] - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167339 _POP3_Ex.au3 UDF (by ... )] POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by ... )] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by ... )]  - Prowl UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by ... )] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by ... )]  - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP UDF (by ... )] - SNMP_UDF for SNMPv1 and SNMPv2c&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ... )] (Reading toner status from SNMP device with WMI).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH UDF (by ... )]  - This UDF allows to use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ... )]  - UPnP : Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by ... )] - Enables scripts to access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77503 WinInet (by ... )] - Enables scripts to access standard Internet protocols, such as FTP, Gopher and HTTP. Also supports creating GET and POST requests and submitting them with conforming standards, cookies supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer UDF (by ... )]  - multi client, event-based, able to bind console app to socket.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by ... )] - More extensive library than the one above. Uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87441 LZMA (by trancexx )] - LZMA (Native Windows)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112273 LZMA Compression UDF (by ... )] - LZMA Compression UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack UDF (by ... )] - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it&#039;s faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package UDF (by ... )] - Package UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by ... )] - PureZIP_L library UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by ... )] - UnRAR.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by ... )] - Zip plugin&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by ... )] - ZIP.au3 UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by ... )] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by ... )] - ZIP STRUCTS UDF (from scratch)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by ... )] - zLib (Deflate/Inflate/GZIP) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17727 XZip (by eltorro)] - another UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161847 XZip (by mLipok)] - UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by ... )] - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by ... )] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by ... )] - TrueCrypt UDFs.&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ... )] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp UDF (by ... )] - HtmlHelp UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ... )] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by ... )] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by ... )] - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73993 Printing (by ... )] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by ... )] - RTF_Printer.au3 - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer UDF (by ... )] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by ... )] - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by ... )] - MIDI UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox UDF (by ... )] - SAPIListBox (Speech Recognition) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by ... )] - Text-to-Speech UDF&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by ... )] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70506 IrrLicht (by ... )] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by ... )] - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by ... )] - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL UDF (by ... )] - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148129 OpenGL UDFs (2.0) (by ... )] - new set of UDFs for OpenGL + AutoIt&lt;br /&gt;
&lt;br /&gt;
===Players===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114143 VLC UDF (by ... )] - VLC (Media Player) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ... )] - VLC Media Player&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP UDF (by ... )] - Windows Media Player UDF&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32494 XSkin (by ... )] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by ... )] - A library that allows a user to skin their application GUI using the Windows &#039;&#039;.MSstyles&#039;&#039; files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by ... )] - Allows the creation of modern, fancy GUI and tray menus with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by ... )] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119505 GUIFrame (by ... )] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 Easy Scrollbars (by ... )] - Easily create scrollable sections in your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by ... )] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp.au3 (by ... )] - Management of context help ([http://www.autoitscript.com/forum/index.php?showtopic=72152-contexthelp/ original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by ... )] - Expand and contract sections of your GUI. ([http://www.autoitscript.com/forum/index.php?showtopic=117909 original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109096 ExtMsgBox (by ... )] - A very customisable replacement for MsgBox&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by ... )] - Small message GUIs which pop out of the Systray&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel UDF (by ... )] - Manage child GUIs as panel ctrls&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by ... )] - Pie chart&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by ... )] - 3D Pie chart&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control UDF (by ... )] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by ... )] - Allows you to create a window finder control like the one seen in AutoIt Window Info.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by ... )] - Create and control native pager controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by ... )] - Hotkeys Input Control UDF Library (Non-native)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107965 GUIHotkey (by ... )] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103904&amp;amp;p=735769 Marquees (by ... )] - Make tickertape info bars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by ... )] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by ... )] - Provides a convenient way to embed hypertext links in a window&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ... )] - You even can use full textured images&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table UDF (by ... )] - Table UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 GUI/Tray Menu UDF (by ... )] - GUI/Tray Menu with icons and colors (modified by LarsJ with extra examples by LarsJ and AZJIO)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by ... )] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166594 GUITreeViewEx (by ... )] - Check/clear parent and child checkboxes in a TreeView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar UDF (by ... )] - Calendar UDF&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes UDF (by ... )] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number UDF (by ... )] - Make calculations with extremely large numbers that AutoIt normally is not able to support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by ... )] - From, to and between positive bases less than 63 (decimals supported)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106551 Decimal To fraction (by ... )] - Converts any decimal number to a fraction. Example: 1.2 to 6/5&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometry math functions (by ... )] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by ... )] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by ... )] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by ... )] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by ... )] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by ... )] - integer to roman numerals made by Mat.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/123398-snippet-dump/page-3#entry1005157 Roman Numerals (by ... )] - Roman Numerals made by czardas.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94770-integer-to-roman-numerals/#entry1043544 Roman Numerals (by ... )] - Roman Numerals made by AZJIO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL UDF (by ... )] - inline APL interpreter.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90492 Hotkey.au3 (by ... )] - Management of Hotkeys UDF, with several advantages over HotkeySet().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by ... )] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by ... )] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by ... )] - Automatically size controls to fit the text you want to put in them&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by ... )] - Spell Checker UDF - Hunspell&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by ... )] - TVExplorer UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by ... )] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by ... )] - LFN UDF - overcome MAX_PATH limit of 256 chars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History/Sotrage (by ... )] - UDF to save and restore the entire clipboard contents&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources UDF (by ... )] - Resources UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx UDF (by ... )] - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon UDF (by ... )] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary UDF (by ... )] - Binary UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by ... )] - Show Struct in ListView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML UDF (by ... )] - With DDEML UDF one can use an AutoIt script as a DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType UDF (by ... )] - _FileGetMimeType UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by ... )] - FindMimeFromData using urlmon.dll&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor UDF (by ... )] - Get or Read Pixel from Memory UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/117033-file-locking-with-cooperative-semaphores File locking with cooperative semaphores (by ... )] - Simple file locking without a server&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=142977 SQLite Array Functions (by ... )] - SQLite Array Functions - a faster method for unique arrays and sorting methods&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation UDF (by ... )] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table UDF (by ... )] - Basically, a bunch of strings can be stored locally (at program level) or globally (at O/S level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy UDF (by ... )] - This small library allows simple and reliable way to copy or move files and directories without suspending your script. Moreover, you can get the current state (number of copied bytes, system error code, and other status information) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 AutoIt Inline Assembly UDF (by ... )] - TODO Description&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM UDF (by ... )] - The Embedded Flat Assembler (FASM) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll UDF (by ... )] - Embed DLLs in script and call functions from memory&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC UDF (by ... )] - ReadDirectoryChanges Wrapper&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ... )] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160875 Debenu Quick PDF Library (by ... )] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by ... )] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK - UDF (by ... )] - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader UDF (by ... )] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF UDF (by ... )] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by ... )] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by ... )] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ... )] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by ... )] - Create Startup entries in the Startup Folder or Registry&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account UDF (by ... )] - Local account UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services UDF (by ... )] - Windows Services UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList UDF (by ... )] - ITaskBarList UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor UDF (by ... )] - FileSystemMonitor UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - Magnifier Functions - Windows Vista+ Magnifier Manipulation&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF UDF (by ... )] - WRMF - Windows Registry Monitor Call Function&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry UDFs (by ... )] - Windows Registry UDFs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by ... )] - RegWriteAllUsers / RegDeleteAllUsers&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore UDF (by ... )] - System restore UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Sheduler (by ... )] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplaner/Taskscheduler COM UDF (by ... )] - an UDF for using the Windows Taskplaner / Task Scheduler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by ... )] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI UDF (by ... )] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by ... )] - VirusTotal API 2.0 UDF.&lt;br /&gt;
[[Category:UDF (by ... )] (by ... )]&lt;br /&gt;
&lt;br /&gt;
== Social Media and other Website API ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by ... )] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by ... )] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by ... )] - another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by ... )] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by ... )] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150473 Google API (by ... )] - JSON queries for Google API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131343 PasteBin (by ... )] - PasteBin (powered by PasteBin).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by ... )] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay UDF (by ... )] - eBay UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by ... )] - Remote Gmail (UDF)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP UDF (by ... )] - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by ... )] - AYTU - AutoIt Youtube Uploader&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by ... )] - Google Functions&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by ... )] - Dropbox authenticator&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API UDF (by ... )] - TVmaze.com API UDF (TV-Series)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 UDF (by ... )] - Teamspeak 3 UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166205 TeamViewer API - UDF (by ... )] - UDF for TeamViewer API - a modest beginning&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost UDF (by ... )] - Print USPS Postage Labels&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype UDF (by ... )] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI UDF (by ... )] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API] a couple of function, which allows you to create projects in Crowdin, add and update files, download translations or integrate localization with your development process.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android UDF (by ... )] - Android UDF.&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12990</id>
		<title>User Defined Functions</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12990"/>
		<updated>2015-04-29T16:04:23Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Browsers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a listing of libraries of &#039;&#039;&#039;user defined functions&#039;&#039;&#039; (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.&lt;br /&gt;
This list is probably not complete, but constantly supplemented.&lt;br /&gt;
If you do not find a solution here, ask a new question on the [http://www.autoitscript.com/forum/forum/2-general-help-and-support/ forum].&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106163 Active Directory (by water)] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150231 GTK+  (by ... )] - GTK+ Framework | Widgets&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153520 IUIAutomation MS framework (by ... )] - IUIAutomation MS framework to automate chrome, FF, IE, ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87956 Java UDF (by ... )] - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86574 SAP (by ... )] - SAP business management automation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149540 SAPWizard (by ... )] - SAPWizard UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80201 Service (by ... )] - Build your own service with AutoIt code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91018 WiFi (by ... )] - Low level control over your wireless LAN.&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95595 Firefox (by Stilgar)] - A little less support for automation than IE, but still very good.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166542 HTMLDocumentEvents UDF (by SmOke_N)] - Track IE document events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166304 IEJS UDF (by SmOke_N)] - IEJS - IE Javascript options, an IE.au3 personal extension.&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - Everything about Internet explorer can be automated with the IE library supplied with a standard AutoIt install.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149203 NavInfo UDF (by Nessie)] - With this UDF you can check if a specified browser/software is installed and which version is being used.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=61090 Opera (by MrCreatoR,)] - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32144 Microsoft Office Access (by randallc )] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel (by water et al.) - This UDF is included in AutoIt. Link to the [[Excel_UDF|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by GreenCan &amp;amp; water )] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by water )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft PowerPoint (by Toady )] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word (by water et al.) - This UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&lt;br /&gt;
&lt;br /&gt;
===OpenOffice Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc UDF (by ... )] - OpenOfficeCalc UDF&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI]] - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL&#039;s (using Windows API calls)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77731 Device Management (by ... )] - Device Management API&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by ... )] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound UDF (by ... )] - DirectSound UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D UDF (by ... )] - Direct2D UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by ... )] - _FB_Tools - manage your FritzBox from Autoit&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions UDF (by ... )] - This is a simple I/O (Input/Output) UDF for interacting with ports. (I/O Port Functions - x64 Parallel Port IO, Keyboard, etc + Restore PC Speaker Beep)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by ... )] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse UDF (by ... )] - AutoIt powered mouse events&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ... )] - MouseTrapEvent UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo UDF (by ... )] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration UDF (by ... )] - Network configuration UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20121 Screen Resolution (by ... )] - Screen Resolution Changing UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by ... )] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ... )] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=15864 SPI Hardware Interface (by ... )] - This script is made to comunicate with the MAX335 chip  using the SPI protocol via the LPT(printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68866 Webcam UDF (by ... )] - Webcam UDF made by LIMITER.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70857 Webcam UDF (by ... )] - Webcam UDF made by ludocus.&lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29404 Computer information (by ... )] - A general purpose library to get various details about a Windows machine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=54039 WinPcap - Packet.dll UDF (by ... )] - &lt;br /&gt;
* [http://opensource.grisambre.net/pcapau3/#reference WinPcap Autoit3 UDF (by ... )] - This UDF allows very simply from an Autoit script to access the main functionalities offered by the WinPcap driver.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105875 ADODB (by spudw2k)] - ADODB Example.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145142 DBF (by funkey)] - dBase database read and write with DLL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by ... )] - EzMySql UDF - Use MySql Databases with autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94920-solved-passing-parameters-using-dllcall-to-a-c-dll/#entry684751 FireBird UDF (by ... )] - FireBird, Interbase dll udf.&lt;br /&gt;
* [http://stackoverflow.com/questions/21991475/autoit-firebird-sql-combo-return-data-as-csv-instead-of-xml FireBird UDF (by ... )] - Additional link to FireBird UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by ... )] - MSSQL.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ... )] - _SQL.au3. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by ... )] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ... )] - MySQL UDFs (without ODBC).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ... )] - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by ... )] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
&lt;br /&gt;
== Internet protocol suite ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by ... )] - cURL UDF - a UDF for transferring data with URL syntax&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by ... )]  - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 UDF (by ... )]  - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by ... )] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by ... )] IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by ... )] - RFC4627 compliant JSON encode/decode&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by ... )] - JSMN - A Non-Strict JSON UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ... )] - Bridge to Native Windows JSON plus OO extension for AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by ... )] - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167339 _POP3_Ex.au3 UDF (by ... )] POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by ... )] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by ... )]  - Prowl UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by ... )] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by ... )]  - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP UDF (by ... )] - SNMP_UDF for SNMPv1 and SNMPv2c&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ... )] (Reading toner status from SNMP device with WMI).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH UDF (by ... )]  - This UDF allows to use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ... )]  - UPnP : Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by ... )] - Enables scripts to access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77503 WinInet (by ... )] - Enables scripts to access standard Internet protocols, such as FTP, Gopher and HTTP. Also supports creating GET and POST requests and submitting them with conforming standards, cookies supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer UDF (by ... )]  - multi client, event-based, able to bind console app to socket.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by ... )] - More extensive library than the one above. Uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87441 LZMA (by trancexx )] - LZMA (Native Windows)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112273 LZMA Compression UDF (by ... )] - LZMA Compression UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack UDF (by ... )] - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it&#039;s faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package UDF (by ... )] - Package UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by ... )] - PureZIP_L library UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by ... )] - UnRAR.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by ... )] - Zip plugin&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by ... )] - ZIP.au3 UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by ... )] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by ... )] - ZIP STRUCTS UDF (from scratch)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by ... )] - zLib (Deflate/Inflate/GZIP) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17727 XZip (by eltorro)] - another UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161847 XZip (by mLipok)] - UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by ... )] - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by ... )] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by ... )] - TrueCrypt UDFs.&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ... )] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp UDF (by ... )] - HtmlHelp UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ... )] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by ... )] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by ... )] - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73993 Printing (by ... )] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by ... )] - RTF_Printer.au3 - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer UDF (by ... )] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by ... )] - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by ... )] - MIDI UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox UDF (by ... )] - SAPIListBox (Speech Recognition) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by ... )] - Text-to-Speech UDF&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by ... )] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70506 IrrLicht (by ... )] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by ... )] - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by ... )] - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL UDF (by ... )] - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148129 OpenGL UDFs (2.0) (by ... )] - new set of UDFs for OpenGL + AutoIt&lt;br /&gt;
&lt;br /&gt;
===Players===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114143 VLC UDF (by ... )] - VLC (Media Player) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ... )] - VLC Media Player&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP UDF (by ... )] - Windows Media Player UDF&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32494 XSkin (by ... )] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by ... )] - A library that allows a user to skin their application GUI using the Windows &#039;&#039;.MSstyles&#039;&#039; files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by ... )] - Allows the creation of modern, fancy GUI and tray menus with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by ... )] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119505 GUIFrame (by ... )] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 Easy Scrollbars (by ... )] - Easily create scrollable sections in your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by ... )] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp.au3 (by ... )] - Management of context help ([http://www.autoitscript.com/forum/index.php?showtopic=72152-contexthelp/ original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by ... )] - Expand and contract sections of your GUI. ([http://www.autoitscript.com/forum/index.php?showtopic=117909 original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109096 ExtMsgBox (by ... )] - A very customisable replacement for MsgBox&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by ... )] - Small message GUIs which pop out of the Systray&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel UDF (by ... )] - Manage child GUIs as panel ctrls&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by ... )] - Pie chart&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by ... )] - 3D Pie chart&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control UDF (by ... )] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by ... )] - Allows you to create a window finder control like the one seen in AutoIt Window Info.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by ... )] - Create and control native pager controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by ... )] - Hotkeys Input Control UDF Library (Non-native)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107965 GUIHotkey (by ... )] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103904&amp;amp;p=735769 Marquees (by ... )] - Make tickertape info bars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by ... )] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by ... )] - Provides a convenient way to embed hypertext links in a window&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ... )] - You even can use full textured images&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table UDF (by ... )] - Table UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 GUI/Tray Menu UDF (by ... )] - GUI/Tray Menu with icons and colors (modified by LarsJ with extra examples by LarsJ and AZJIO)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by ... )] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166594 GUITreeViewEx (by ... )] - Check/clear parent and child checkboxes in a TreeView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar UDF (by ... )] - Calendar UDF&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes UDF (by ... )] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number UDF (by ... )] - Make calculations with extremely large numbers that AutoIt normally is not able to support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by ... )] - From, to and between positive bases less than 63 (decimals supported)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106551 Decimal To fraction (by ... )] - Converts any decimal number to a fraction. Example: 1.2 to 6/5&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometry math functions (by ... )] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by ... )] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by ... )] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by ... )] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by ... )] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by ... )] - integer to roman numerals made by Mat.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/123398-snippet-dump/page-3#entry1005157 Roman Numerals (by ... )] - Roman Numerals made by czardas.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94770-integer-to-roman-numerals/#entry1043544 Roman Numerals (by ... )] - Roman Numerals made by AZJIO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL UDF (by ... )] - inline APL interpreter.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90492 Hotkey.au3 (by ... )] - Management of Hotkeys UDF, with several advantages over HotkeySet().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by ... )] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by ... )] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by ... )] - Automatically size controls to fit the text you want to put in them&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by ... )] - Spell Checker UDF - Hunspell&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by ... )] - TVExplorer UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by ... )] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by ... )] - LFN UDF - overcome MAX_PATH limit of 256 chars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History/Sotrage (by ... )] - UDF to save and restore the entire clipboard contents&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources UDF (by ... )] - Resources UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx UDF (by ... )] - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon UDF (by ... )] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary UDF (by ... )] - Binary UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by ... )] - Show Struct in ListView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML UDF (by ... )] - With DDEML UDF one can use an AutoIt script as a DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType UDF (by ... )] - _FileGetMimeType UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by ... )] - FindMimeFromData using urlmon.dll&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor UDF (by ... )] - Get or Read Pixel from Memory UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/117033-file-locking-with-cooperative-semaphores File locking with cooperative semaphores (by ... )] - Simple file locking without a server&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=142977 SQLite Array Functions (by ... )] - SQLite Array Functions - a faster method for unique arrays and sorting methods&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation UDF (by ... )] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table UDF (by ... )] - Basically, a bunch of strings can be stored locally (at program level) or globally (at O/S level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy UDF (by ... )] - This small library allows simple and reliable way to copy or move files and directories without suspending your script. Moreover, you can get the current state (number of copied bytes, system error code, and other status information) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 AutoIt Inline Assembly UDF (by ... )] - TODO Description&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM UDF (by ... )] - The Embedded Flat Assembler (FASM) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll UDF (by ... )] - Embed DLLs in script and call functions from memory&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC UDF (by ... )] - ReadDirectoryChanges Wrapper&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ... )] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160875 Debenu Quick PDF Library (by ... )] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by ... )] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK - UDF (by ... )] - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader UDF (by ... )] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF UDF (by ... )] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by ... )] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by ... )] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ... )] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by ... )] - Create Startup entries in the Startup Folder or Registry&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account UDF (by ... )] - Local account UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services UDF (by ... )] - Windows Services UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList UDF (by ... )] - ITaskBarList UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor UDF (by ... )] - FileSystemMonitor UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - Magnifier Functions - Windows Vista+ Magnifier Manipulation&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF UDF (by ... )] - WRMF - Windows Registry Monitor Call Function&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry UDFs (by ... )] - Windows Registry UDFs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by ... )] - RegWriteAllUsers / RegDeleteAllUsers&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore UDF (by ... )] - System restore UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Sheduler (by ... )] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplaner/Taskscheduler COM UDF (by ... )] - an UDF for using the Windows Taskplaner / Task Scheduler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by ... )] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI UDF (by ... )] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by ... )] - VirusTotal API 2.0 UDF.&lt;br /&gt;
[[Category:UDF (by ... )] (by ... )]&lt;br /&gt;
&lt;br /&gt;
== Social Media and other Website API ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by ... )] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by ... )] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by ... )] - another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by ... )] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by ... )] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150473 Google API (by ... )] - JSON queries for Google API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131343 PasteBin (by ... )] - PasteBin (powered by PasteBin).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by ... )] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay UDF (by ... )] - eBay UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by ... )] - Remote Gmail (UDF)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP UDF (by ... )] - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by ... )] - AYTU - AutoIt Youtube Uploader&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by ... )] - Google Functions&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by ... )] - Dropbox authenticator&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API UDF (by ... )] - TVmaze.com API UDF (TV-Series)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 UDF (by ... )] - Teamspeak 3 UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166205 TeamViewer API - UDF (by ... )] - UDF for TeamViewer API - a modest beginning&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost UDF (by ... )] - Print USPS Postage Labels&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype UDF (by ... )] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI UDF (by ... )] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API] a couple of function, which allows you to create projects in Crowdin, add and update files, download translations or integrate localization with your development process.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android UDF (by ... )] - Android UDF.&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12989</id>
		<title>User Defined Functions</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12989"/>
		<updated>2015-04-29T16:00:04Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Microsoft Office Automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a listing of libraries of &#039;&#039;&#039;user defined functions&#039;&#039;&#039; (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.&lt;br /&gt;
This list is probably not complete, but constantly supplemented.&lt;br /&gt;
If you do not find a solution here, ask a new question on the [http://www.autoitscript.com/forum/forum/2-general-help-and-support/ forum].&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106163 Active Directory (by water)] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150231 GTK+  (by ... )] - GTK+ Framework | Widgets&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153520 IUIAutomation MS framework (by ... )] - IUIAutomation MS framework to automate chrome, FF, IE, ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87956 Java UDF (by ... )] - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86574 SAP (by ... )] - SAP business management automation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149540 SAPWizard (by ... )] - SAPWizard UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80201 Service (by ... )] - Build your own service with AutoIt code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91018 WiFi (by ... )] - Low level control over your wireless LAN.&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by ... )] - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95595 Firefox (by ... )] - A little less support for automation than IE, but still very good.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166542 HTMLDocumentEvents UDF (by ... )] - Track IE document events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166304 IEJS UDF (by ... )] - IEJS - IE Javascript options, an IE.au3 personal extension.&lt;br /&gt;
* Internet Explorer - Everything about Internet explorer can be automated with the IE library supplied with a standard AutoIt install.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149203 NavInfo UDF (by ... )] - With this UDF you can check if a specified browser/software is installed and which version is being used.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=61090 Opera (by ... )] - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32144 Microsoft Office Access (by randallc )] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel (by water et al.) - This UDF is included in AutoIt. Link to the [[Excel_UDF|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by GreenCan &amp;amp; water )] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by water )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft PowerPoint (by Toady )] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word (by water et al.) - This UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&lt;br /&gt;
&lt;br /&gt;
===OpenOffice Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc UDF (by ... )] - OpenOfficeCalc UDF&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI]] - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL&#039;s (using Windows API calls)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77731 Device Management (by ... )] - Device Management API&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by ... )] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound UDF (by ... )] - DirectSound UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D UDF (by ... )] - Direct2D UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by ... )] - _FB_Tools - manage your FritzBox from Autoit&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions UDF (by ... )] - This is a simple I/O (Input/Output) UDF for interacting with ports. (I/O Port Functions - x64 Parallel Port IO, Keyboard, etc + Restore PC Speaker Beep)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by ... )] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse UDF (by ... )] - AutoIt powered mouse events&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ... )] - MouseTrapEvent UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo UDF (by ... )] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration UDF (by ... )] - Network configuration UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20121 Screen Resolution (by ... )] - Screen Resolution Changing UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by ... )] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ... )] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=15864 SPI Hardware Interface (by ... )] - This script is made to comunicate with the MAX335 chip  using the SPI protocol via the LPT(printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68866 Webcam UDF (by ... )] - Webcam UDF made by LIMITER.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70857 Webcam UDF (by ... )] - Webcam UDF made by ludocus.&lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29404 Computer information (by ... )] - A general purpose library to get various details about a Windows machine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=54039 WinPcap - Packet.dll UDF (by ... )] - &lt;br /&gt;
* [http://opensource.grisambre.net/pcapau3/#reference WinPcap Autoit3 UDF (by ... )] - This UDF allows very simply from an Autoit script to access the main functionalities offered by the WinPcap driver.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105875 ADODB (by spudw2k)] - ADODB Example.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145142 DBF (by funkey)] - dBase database read and write with DLL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by ... )] - EzMySql UDF - Use MySql Databases with autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94920-solved-passing-parameters-using-dllcall-to-a-c-dll/#entry684751 FireBird UDF (by ... )] - FireBird, Interbase dll udf.&lt;br /&gt;
* [http://stackoverflow.com/questions/21991475/autoit-firebird-sql-combo-return-data-as-csv-instead-of-xml FireBird UDF (by ... )] - Additional link to FireBird UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by ... )] - MSSQL.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ... )] - _SQL.au3. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by ... )] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ... )] - MySQL UDFs (without ODBC).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ... )] - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by ... )] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
&lt;br /&gt;
== Internet protocol suite ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by ... )] - cURL UDF - a UDF for transferring data with URL syntax&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by ... )]  - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 UDF (by ... )]  - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by ... )] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by ... )] IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by ... )] - RFC4627 compliant JSON encode/decode&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by ... )] - JSMN - A Non-Strict JSON UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ... )] - Bridge to Native Windows JSON plus OO extension for AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by ... )] - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167339 _POP3_Ex.au3 UDF (by ... )] POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by ... )] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by ... )]  - Prowl UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by ... )] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by ... )]  - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP UDF (by ... )] - SNMP_UDF for SNMPv1 and SNMPv2c&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ... )] (Reading toner status from SNMP device with WMI).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH UDF (by ... )]  - This UDF allows to use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ... )]  - UPnP : Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by ... )] - Enables scripts to access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77503 WinInet (by ... )] - Enables scripts to access standard Internet protocols, such as FTP, Gopher and HTTP. Also supports creating GET and POST requests and submitting them with conforming standards, cookies supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer UDF (by ... )]  - multi client, event-based, able to bind console app to socket.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by ... )] - More extensive library than the one above. Uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87441 LZMA (by trancexx )] - LZMA (Native Windows)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112273 LZMA Compression UDF (by ... )] - LZMA Compression UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack UDF (by ... )] - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it&#039;s faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package UDF (by ... )] - Package UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by ... )] - PureZIP_L library UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by ... )] - UnRAR.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by ... )] - Zip plugin&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by ... )] - ZIP.au3 UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by ... )] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by ... )] - ZIP STRUCTS UDF (from scratch)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by ... )] - zLib (Deflate/Inflate/GZIP) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17727 XZip (by eltorro)] - another UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161847 XZip (by mLipok)] - UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by ... )] - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by ... )] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by ... )] - TrueCrypt UDFs.&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ... )] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp UDF (by ... )] - HtmlHelp UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ... )] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by ... )] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by ... )] - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73993 Printing (by ... )] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by ... )] - RTF_Printer.au3 - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer UDF (by ... )] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by ... )] - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by ... )] - MIDI UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox UDF (by ... )] - SAPIListBox (Speech Recognition) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by ... )] - Text-to-Speech UDF&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by ... )] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70506 IrrLicht (by ... )] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by ... )] - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by ... )] - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL UDF (by ... )] - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148129 OpenGL UDFs (2.0) (by ... )] - new set of UDFs for OpenGL + AutoIt&lt;br /&gt;
&lt;br /&gt;
===Players===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114143 VLC UDF (by ... )] - VLC (Media Player) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ... )] - VLC Media Player&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP UDF (by ... )] - Windows Media Player UDF&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32494 XSkin (by ... )] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by ... )] - A library that allows a user to skin their application GUI using the Windows &#039;&#039;.MSstyles&#039;&#039; files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by ... )] - Allows the creation of modern, fancy GUI and tray menus with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by ... )] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119505 GUIFrame (by ... )] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 Easy Scrollbars (by ... )] - Easily create scrollable sections in your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by ... )] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp.au3 (by ... )] - Management of context help ([http://www.autoitscript.com/forum/index.php?showtopic=72152-contexthelp/ original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by ... )] - Expand and contract sections of your GUI. ([http://www.autoitscript.com/forum/index.php?showtopic=117909 original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109096 ExtMsgBox (by ... )] - A very customisable replacement for MsgBox&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by ... )] - Small message GUIs which pop out of the Systray&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel UDF (by ... )] - Manage child GUIs as panel ctrls&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by ... )] - Pie chart&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by ... )] - 3D Pie chart&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control UDF (by ... )] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by ... )] - Allows you to create a window finder control like the one seen in AutoIt Window Info.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by ... )] - Create and control native pager controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by ... )] - Hotkeys Input Control UDF Library (Non-native)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107965 GUIHotkey (by ... )] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103904&amp;amp;p=735769 Marquees (by ... )] - Make tickertape info bars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by ... )] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by ... )] - Provides a convenient way to embed hypertext links in a window&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ... )] - You even can use full textured images&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table UDF (by ... )] - Table UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 GUI/Tray Menu UDF (by ... )] - GUI/Tray Menu with icons and colors (modified by LarsJ with extra examples by LarsJ and AZJIO)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by ... )] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166594 GUITreeViewEx (by ... )] - Check/clear parent and child checkboxes in a TreeView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar UDF (by ... )] - Calendar UDF&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes UDF (by ... )] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number UDF (by ... )] - Make calculations with extremely large numbers that AutoIt normally is not able to support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by ... )] - From, to and between positive bases less than 63 (decimals supported)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106551 Decimal To fraction (by ... )] - Converts any decimal number to a fraction. Example: 1.2 to 6/5&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometry math functions (by ... )] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by ... )] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by ... )] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by ... )] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by ... )] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by ... )] - integer to roman numerals made by Mat.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/123398-snippet-dump/page-3#entry1005157 Roman Numerals (by ... )] - Roman Numerals made by czardas.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94770-integer-to-roman-numerals/#entry1043544 Roman Numerals (by ... )] - Roman Numerals made by AZJIO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL UDF (by ... )] - inline APL interpreter.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90492 Hotkey.au3 (by ... )] - Management of Hotkeys UDF, with several advantages over HotkeySet().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by ... )] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by ... )] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by ... )] - Automatically size controls to fit the text you want to put in them&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by ... )] - Spell Checker UDF - Hunspell&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by ... )] - TVExplorer UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by ... )] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by ... )] - LFN UDF - overcome MAX_PATH limit of 256 chars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History/Sotrage (by ... )] - UDF to save and restore the entire clipboard contents&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources UDF (by ... )] - Resources UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx UDF (by ... )] - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon UDF (by ... )] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary UDF (by ... )] - Binary UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by ... )] - Show Struct in ListView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML UDF (by ... )] - With DDEML UDF one can use an AutoIt script as a DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType UDF (by ... )] - _FileGetMimeType UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by ... )] - FindMimeFromData using urlmon.dll&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor UDF (by ... )] - Get or Read Pixel from Memory UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/117033-file-locking-with-cooperative-semaphores File locking with cooperative semaphores (by ... )] - Simple file locking without a server&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=142977 SQLite Array Functions (by ... )] - SQLite Array Functions - a faster method for unique arrays and sorting methods&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation UDF (by ... )] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table UDF (by ... )] - Basically, a bunch of strings can be stored locally (at program level) or globally (at O/S level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy UDF (by ... )] - This small library allows simple and reliable way to copy or move files and directories without suspending your script. Moreover, you can get the current state (number of copied bytes, system error code, and other status information) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 AutoIt Inline Assembly UDF (by ... )] - TODO Description&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM UDF (by ... )] - The Embedded Flat Assembler (FASM) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll UDF (by ... )] - Embed DLLs in script and call functions from memory&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC UDF (by ... )] - ReadDirectoryChanges Wrapper&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ... )] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160875 Debenu Quick PDF Library (by ... )] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by ... )] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK - UDF (by ... )] - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader UDF (by ... )] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF UDF (by ... )] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by ... )] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by ... )] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ... )] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by ... )] - Create Startup entries in the Startup Folder or Registry&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account UDF (by ... )] - Local account UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services UDF (by ... )] - Windows Services UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList UDF (by ... )] - ITaskBarList UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor UDF (by ... )] - FileSystemMonitor UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - Magnifier Functions - Windows Vista+ Magnifier Manipulation&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF UDF (by ... )] - WRMF - Windows Registry Monitor Call Function&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry UDFs (by ... )] - Windows Registry UDFs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by ... )] - RegWriteAllUsers / RegDeleteAllUsers&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore UDF (by ... )] - System restore UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Sheduler (by ... )] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplaner/Taskscheduler COM UDF (by ... )] - an UDF for using the Windows Taskplaner / Task Scheduler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by ... )] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI UDF (by ... )] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by ... )] - VirusTotal API 2.0 UDF.&lt;br /&gt;
[[Category:UDF (by ... )] (by ... )]&lt;br /&gt;
&lt;br /&gt;
== Social Media and other Website API ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by ... )] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by ... )] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by ... )] - another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by ... )] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by ... )] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150473 Google API (by ... )] - JSON queries for Google API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131343 PasteBin (by ... )] - PasteBin (powered by PasteBin).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by ... )] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay UDF (by ... )] - eBay UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by ... )] - Remote Gmail (UDF)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP UDF (by ... )] - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by ... )] - AYTU - AutoIt Youtube Uploader&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by ... )] - Google Functions&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by ... )] - Dropbox authenticator&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API UDF (by ... )] - TVmaze.com API UDF (TV-Series)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 UDF (by ... )] - Teamspeak 3 UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166205 TeamViewer API - UDF (by ... )] - UDF for TeamViewer API - a modest beginning&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost UDF (by ... )] - Print USPS Postage Labels&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype UDF (by ... )] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI UDF (by ... )] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API] a couple of function, which allows you to create projects in Crowdin, add and update files, download translations or integrate localization with your development process.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android UDF (by ... )] - Android UDF.&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12988</id>
		<title>User Defined Functions</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12988"/>
		<updated>2015-04-29T15:57:08Z</updated>

		<summary type="html">&lt;p&gt;Rt01: Undo revision 12981 by Mlipok (talk) - Wante to have the list sorted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a listing of libraries of &#039;&#039;&#039;user defined functions&#039;&#039;&#039; (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.&lt;br /&gt;
This list is probably not complete, but constantly supplemented.&lt;br /&gt;
If you do not find a solution here, ask a new question on the [http://www.autoitscript.com/forum/forum/2-general-help-and-support/ forum].&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106163 Active Directory (by water)] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150231 GTK+  (by ... )] - GTK+ Framework | Widgets&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153520 IUIAutomation MS framework (by ... )] - IUIAutomation MS framework to automate chrome, FF, IE, ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87956 Java UDF (by ... )] - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86574 SAP (by ... )] - SAP business management automation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149540 SAPWizard (by ... )] - SAPWizard UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80201 Service (by ... )] - Build your own service with AutoIt code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91018 WiFi (by ... )] - Low level control over your wireless LAN.&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by ... )] - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95595 Firefox (by ... )] - A little less support for automation than IE, but still very good.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166542 HTMLDocumentEvents UDF (by ... )] - Track IE document events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166304 IEJS UDF (by ... )] - IEJS - IE Javascript options, an IE.au3 personal extension.&lt;br /&gt;
* Internet Explorer - Everything about Internet explorer can be automated with the IE library supplied with a standard AutoIt install.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149203 NavInfo UDF (by ... )] - With this UDF you can check if a specified browser/software is installed and which version is being used.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=61090 Opera (by ... )] - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32144 Microsoft Office Access (by randallc )] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel - A UDF is included in AutoIt. Link to the [[Excel_UDF|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by GreenCan &amp;amp; water )] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by water )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft PowerPoint (by Toady )] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word - A UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&lt;br /&gt;
&lt;br /&gt;
===OpenOffice Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc UDF (by ... )] - OpenOfficeCalc UDF&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI]] - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL&#039;s (using Windows API calls)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77731 Device Management (by ... )] - Device Management API&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by ... )] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound UDF (by ... )] - DirectSound UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D UDF (by ... )] - Direct2D UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by ... )] - _FB_Tools - manage your FritzBox from Autoit&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions UDF (by ... )] - This is a simple I/O (Input/Output) UDF for interacting with ports. (I/O Port Functions - x64 Parallel Port IO, Keyboard, etc + Restore PC Speaker Beep)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by ... )] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse UDF (by ... )] - AutoIt powered mouse events&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ... )] - MouseTrapEvent UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo UDF (by ... )] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration UDF (by ... )] - Network configuration UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20121 Screen Resolution (by ... )] - Screen Resolution Changing UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by ... )] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ... )] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=15864 SPI Hardware Interface (by ... )] - This script is made to comunicate with the MAX335 chip  using the SPI protocol via the LPT(printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68866 Webcam UDF (by ... )] - Webcam UDF made by LIMITER.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70857 Webcam UDF (by ... )] - Webcam UDF made by ludocus.&lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29404 Computer information (by ... )] - A general purpose library to get various details about a Windows machine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=54039 WinPcap - Packet.dll UDF (by ... )] - &lt;br /&gt;
* [http://opensource.grisambre.net/pcapau3/#reference WinPcap Autoit3 UDF (by ... )] - This UDF allows very simply from an Autoit script to access the main functionalities offered by the WinPcap driver.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105875 ADODB (by spudw2k)] - ADODB Example.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145142 DBF (by funkey)] - dBase database read and write with DLL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by ... )] - EzMySql UDF - Use MySql Databases with autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94920-solved-passing-parameters-using-dllcall-to-a-c-dll/#entry684751 FireBird UDF (by ... )] - FireBird, Interbase dll udf.&lt;br /&gt;
* [http://stackoverflow.com/questions/21991475/autoit-firebird-sql-combo-return-data-as-csv-instead-of-xml FireBird UDF (by ... )] - Additional link to FireBird UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by ... )] - MSSQL.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ... )] - _SQL.au3. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by ... )] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ... )] - MySQL UDFs (without ODBC).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ... )] - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by ... )] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
&lt;br /&gt;
== Internet protocol suite ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by ... )] - cURL UDF - a UDF for transferring data with URL syntax&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by ... )]  - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 UDF (by ... )]  - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by ... )] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by ... )] IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by ... )] - RFC4627 compliant JSON encode/decode&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by ... )] - JSMN - A Non-Strict JSON UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ... )] - Bridge to Native Windows JSON plus OO extension for AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by ... )] - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167339 _POP3_Ex.au3 UDF (by ... )] POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by ... )] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by ... )]  - Prowl UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by ... )] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by ... )]  - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP UDF (by ... )] - SNMP_UDF for SNMPv1 and SNMPv2c&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ... )] (Reading toner status from SNMP device with WMI).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH UDF (by ... )]  - This UDF allows to use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ... )]  - UPnP : Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by ... )] - Enables scripts to access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77503 WinInet (by ... )] - Enables scripts to access standard Internet protocols, such as FTP, Gopher and HTTP. Also supports creating GET and POST requests and submitting them with conforming standards, cookies supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer UDF (by ... )]  - multi client, event-based, able to bind console app to socket.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by ... )] - More extensive library than the one above. Uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87441 LZMA (by trancexx )] - LZMA (Native Windows)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112273 LZMA Compression UDF (by ... )] - LZMA Compression UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack UDF (by ... )] - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it&#039;s faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package UDF (by ... )] - Package UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by ... )] - PureZIP_L library UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by ... )] - UnRAR.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by ... )] - Zip plugin&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by ... )] - ZIP.au3 UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by ... )] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by ... )] - ZIP STRUCTS UDF (from scratch)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by ... )] - zLib (Deflate/Inflate/GZIP) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17727 XZip (by eltorro)] - another UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161847 XZip (by mLipok)] - UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by ... )] - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by ... )] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by ... )] - TrueCrypt UDFs.&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ... )] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp UDF (by ... )] - HtmlHelp UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ... )] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by ... )] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by ... )] - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73993 Printing (by ... )] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by ... )] - RTF_Printer.au3 - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer UDF (by ... )] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by ... )] - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by ... )] - MIDI UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox UDF (by ... )] - SAPIListBox (Speech Recognition) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by ... )] - Text-to-Speech UDF&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by ... )] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70506 IrrLicht (by ... )] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by ... )] - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by ... )] - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL UDF (by ... )] - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148129 OpenGL UDFs (2.0) (by ... )] - new set of UDFs for OpenGL + AutoIt&lt;br /&gt;
&lt;br /&gt;
===Players===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114143 VLC UDF (by ... )] - VLC (Media Player) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ... )] - VLC Media Player&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP UDF (by ... )] - Windows Media Player UDF&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32494 XSkin (by ... )] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by ... )] - A library that allows a user to skin their application GUI using the Windows &#039;&#039;.MSstyles&#039;&#039; files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by ... )] - Allows the creation of modern, fancy GUI and tray menus with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by ... )] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119505 GUIFrame (by ... )] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 Easy Scrollbars (by ... )] - Easily create scrollable sections in your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by ... )] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp.au3 (by ... )] - Management of context help ([http://www.autoitscript.com/forum/index.php?showtopic=72152-contexthelp/ original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by ... )] - Expand and contract sections of your GUI. ([http://www.autoitscript.com/forum/index.php?showtopic=117909 original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109096 ExtMsgBox (by ... )] - A very customisable replacement for MsgBox&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by ... )] - Small message GUIs which pop out of the Systray&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel UDF (by ... )] - Manage child GUIs as panel ctrls&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by ... )] - Pie chart&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by ... )] - 3D Pie chart&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control UDF (by ... )] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by ... )] - Allows you to create a window finder control like the one seen in AutoIt Window Info.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by ... )] - Create and control native pager controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by ... )] - Hotkeys Input Control UDF Library (Non-native)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107965 GUIHotkey (by ... )] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103904&amp;amp;p=735769 Marquees (by ... )] - Make tickertape info bars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by ... )] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by ... )] - Provides a convenient way to embed hypertext links in a window&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ... )] - You even can use full textured images&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table UDF (by ... )] - Table UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 GUI/Tray Menu UDF (by ... )] - GUI/Tray Menu with icons and colors (modified by LarsJ with extra examples by LarsJ and AZJIO)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by ... )] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166594 GUITreeViewEx (by ... )] - Check/clear parent and child checkboxes in a TreeView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar UDF (by ... )] - Calendar UDF&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes UDF (by ... )] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number UDF (by ... )] - Make calculations with extremely large numbers that AutoIt normally is not able to support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by ... )] - From, to and between positive bases less than 63 (decimals supported)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106551 Decimal To fraction (by ... )] - Converts any decimal number to a fraction. Example: 1.2 to 6/5&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometry math functions (by ... )] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by ... )] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by ... )] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by ... )] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by ... )] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by ... )] - integer to roman numerals made by Mat.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/123398-snippet-dump/page-3#entry1005157 Roman Numerals (by ... )] - Roman Numerals made by czardas.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94770-integer-to-roman-numerals/#entry1043544 Roman Numerals (by ... )] - Roman Numerals made by AZJIO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL UDF (by ... )] - inline APL interpreter.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90492 Hotkey.au3 (by ... )] - Management of Hotkeys UDF, with several advantages over HotkeySet().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by ... )] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by ... )] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by ... )] - Automatically size controls to fit the text you want to put in them&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by ... )] - Spell Checker UDF - Hunspell&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by ... )] - TVExplorer UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by ... )] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by ... )] - LFN UDF - overcome MAX_PATH limit of 256 chars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History/Sotrage (by ... )] - UDF to save and restore the entire clipboard contents&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources UDF (by ... )] - Resources UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx UDF (by ... )] - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon UDF (by ... )] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary UDF (by ... )] - Binary UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by ... )] - Show Struct in ListView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML UDF (by ... )] - With DDEML UDF one can use an AutoIt script as a DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType UDF (by ... )] - _FileGetMimeType UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by ... )] - FindMimeFromData using urlmon.dll&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor UDF (by ... )] - Get or Read Pixel from Memory UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/117033-file-locking-with-cooperative-semaphores File locking with cooperative semaphores (by ... )] - Simple file locking without a server&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=142977 SQLite Array Functions (by ... )] - SQLite Array Functions - a faster method for unique arrays and sorting methods&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation UDF (by ... )] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table UDF (by ... )] - Basically, a bunch of strings can be stored locally (at program level) or globally (at O/S level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy UDF (by ... )] - This small library allows simple and reliable way to copy or move files and directories without suspending your script. Moreover, you can get the current state (number of copied bytes, system error code, and other status information) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 AutoIt Inline Assembly UDF (by ... )] - TODO Description&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM UDF (by ... )] - The Embedded Flat Assembler (FASM) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll UDF (by ... )] - Embed DLLs in script and call functions from memory&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC UDF (by ... )] - ReadDirectoryChanges Wrapper&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ... )] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160875 Debenu Quick PDF Library (by ... )] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by ... )] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK - UDF (by ... )] - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader UDF (by ... )] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF UDF (by ... )] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by ... )] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by ... )] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ... )] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by ... )] - Create Startup entries in the Startup Folder or Registry&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account UDF (by ... )] - Local account UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services UDF (by ... )] - Windows Services UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList UDF (by ... )] - ITaskBarList UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor UDF (by ... )] - FileSystemMonitor UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - Magnifier Functions - Windows Vista+ Magnifier Manipulation&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF UDF (by ... )] - WRMF - Windows Registry Monitor Call Function&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry UDFs (by ... )] - Windows Registry UDFs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by ... )] - RegWriteAllUsers / RegDeleteAllUsers&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore UDF (by ... )] - System restore UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Sheduler (by ... )] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplaner/Taskscheduler COM UDF (by ... )] - an UDF for using the Windows Taskplaner / Task Scheduler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by ... )] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF (by ... )] - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI UDF (by ... )] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by ... )] - VirusTotal API 2.0 UDF.&lt;br /&gt;
[[Category:UDF (by ... )] (by ... )]&lt;br /&gt;
&lt;br /&gt;
== Social Media and other Website API ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by ... )] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by ... )] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by ... )] - another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by ... )] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by ... )] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150473 Google API (by ... )] - JSON queries for Google API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131343 PasteBin (by ... )] - PasteBin (powered by PasteBin).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by ... )] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay UDF (by ... )] - eBay UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by ... )] - Remote Gmail (UDF)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP UDF (by ... )] - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by ... )] - AYTU - AutoIt Youtube Uploader&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by ... )] - Google Functions&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by ... )] - Dropbox authenticator&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API UDF (by ... )] - TVmaze.com API UDF (TV-Series)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 UDF (by ... )] - Teamspeak 3 UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166205 TeamViewer API - UDF (by ... )] - UDF for TeamViewer API - a modest beginning&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost UDF (by ... )] - Print USPS Postage Labels&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype UDF (by ... )] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI UDF (by ... )] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API] a couple of function, which allows you to create projects in Crowdin, add and update files, download translations or integrate localization with your development process.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android UDF (by ... )] - Android UDF.&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12970</id>
		<title>User Defined Functions</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12970"/>
		<updated>2015-04-24T19:43:16Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Databases and web connections */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a listing of libraries of &#039;&#039;&#039;user defined functions&#039;&#039;&#039; (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.&lt;br /&gt;
This list is probably not complete, but constantly supplemented.&lt;br /&gt;
If you do not find a solution here, ask a new question on the [http://www.autoitscript.com/forum/forum/2-general-help-and-support/ forum].&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106163 Active Directory] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation]] pages. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150231 GTK+ ] - GTK+ Framework | Widgets&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153520 IUIAutomation MS framework] - IUIAutomation MS framework to automate chrome, FF, IE, ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87956 Java UDF] - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86574 SAP] - SAP business management automation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149540 SAPWizard] - SAPWizard UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80201 Service] - Build your own service with AutoIt code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91018 WiFi] - Low level control over your wireless LAN.&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome] - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95595 Firefox] - A little less support for automation than IE, but still very good.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166542 HTMLDocumentEvents UDF] - Track IE document events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166304 IEJS UDF] - IEJS - IE Javascript options, an IE.au3 personal extension.&lt;br /&gt;
* Internet Explorer - Everything about Internet explorer can be automated with the IE library supplied with a standard AutoIt install.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149203 NavInfo UDF] - With this UDF you can check if a specified browser/software is installed and which version is being used.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=61090 Opera] - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32144 Microsoft Office Access] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel - A UDF is included in AutoIt. Link to the [[Excel_UDF|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation]] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 PowerPoint Wrapper] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word - A UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&lt;br /&gt;
&lt;br /&gt;
===OpenOffice Automation===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc UDF] - OpenOfficeCalc UDF&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI]] - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL&#039;s (using Windows API calls)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77731 Device Management] - Device Management API&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound UDF] - DirectSound UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D UDF] - Direct2D UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox] - _FB_Tools - manage your FritzBox from Autoit&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions UDF] - This is a simple I/O (Input/Output) UDF for interacting with ports. (I/O Port Functions - x64 Parallel Port IO, Keyboard, etc + Restore PC Speaker Beep)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse UDF] - AutoIt powered mouse events&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent] - MouseTrapEvent UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo UDF] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration UDF] - Network configuration UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20121 Screen Resolution] - Screen Resolution Changing UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=15864 SPI Hardware Interface] - This script is made to comunicate with the MAX335 chip  using the SPI protocol via the LPT(printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68866 Webcam UDF] - Webcam UDF made by LIMITER.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70857 Webcam UDF] - Webcam UDF made by ludocus.&lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29404 Computer information] - A general purpose library to get various details about a Windows machine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=54039 WinPcap - Packet.dll UDF] - &lt;br /&gt;
* [http://opensource.grisambre.net/pcapau3/#reference WinPcap Autoit3 UDF] - This UDF allows very simply from an Autoit script to access the main functionalities offered by the WinPcap driver.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105875 ADODB (by spudw2k)] - ADODB Example.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145142 DBF (by funkey)] - dBase database read and write with DLL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by ... )] - EzMySql UDF - Use MySql Databases with autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94920-solved-passing-parameters-using-dllcall-to-a-c-dll/#entry684751 FireBird UDF (by ... )] - FireBird, Interbase dll udf.&lt;br /&gt;
* [http://stackoverflow.com/questions/21991475/autoit-firebird-sql-combo-return-data-as-csv-instead-of-xml FireBird UDF (by ... )] - Additional link to FireBird UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by ... )] - MSSQL.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ... )] - _SQL.au3. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by ... )] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ... )] - MySQL UDFs (without ODBC).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ... )] - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by ... )] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
&lt;br /&gt;
== Internet protocol suite ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL] - cURL UDF - a UDF for transferring data with URL syntax&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP]  - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 UDF]  - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC] IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON] - RFC4627 compliant JSON encode/decode&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON] - JSMN - A Non-Strict JSON UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON] - Bridge to Native Windows JSON plus OO extension for AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3] - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167339 _POP3_Ex.au3 UDF] POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl]  - Prowl UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP]  - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP UDF] - SNMP_UDF for SNMPv1 and SNMPv2c&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol] (Reading toner status from SNMP device with WMI).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH UDF]  - This UDF allows to use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol]  - UPnP : Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP] - Enables scripts to access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77503 WinInet] - Enables scripts to access standard Internet protocols, such as FTP, Gopher and HTTP. Also supports creating GET and POST requests and submitting them with conforming standards, cookies supported.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer UDF]  - multi client, event-based, able to bind console app to socket.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by ... )] - More extensive library than the one above. Uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87441 LZMA (by trancexx )] - LZMA (Native Windows)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112273 LZMA Compression UDF (by ... )] - LZMA Compression UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack UDF (by ... )] - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it&#039;s faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package UDF (by ... )] - Package UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by ... )] - PureZIP_L library UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by ... )] - UnRAR.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by ... )] - Zip plugin&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by ... )] - ZIP.au3 UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by ... )] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by ... )] - ZIP STRUCTS UDF (from scratch)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by ... )] - zLib (Deflate/Inflate/GZIP) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17727 XZip (by eltorro)] - another UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161847 XZip (by mLipok)] - UDF for &amp;quot;XStandard XZIP Component&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael] - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt] - TrueCrypt UDFs.&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp UDF] - HtmlHelp UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller] - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73993 Printing] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer] - RTF_Printer.au3 - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer UDF] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library] - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI] - MIDI UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox UDF] - SAPIListBox (Speech Recognition) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS] - Text-to-Speech UDF&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70506 IrrLicht] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2] - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo] - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL UDF] - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148129 OpenGL UDFs (2.0)] - new set of UDFs for OpenGL + AutoIt&lt;br /&gt;
&lt;br /&gt;
===Players===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114143 VLC UDF] - VLC (Media Player) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player] - VLC Media Player&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP UDF] - Windows Media Player UDF&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32494 XSkin] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin] - A library that allows a user to skin their application GUI using the Windows &#039;&#039;.MSstyles&#039;&#039; files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu] - Allows the creation of modern, fancy GUI and tray menus with icons and colors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119505 GUIFrame] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 Easy Scrollbars] - Easily create scrollable sections in your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp.au3] - Management of context help ([http://www.autoitscript.com/forum/index.php?showtopic=72152-contexthelp/ original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender] - Expand and contract sections of your GUI. ([http://www.autoitscript.com/forum/index.php?showtopic=117909 original])&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109096 ExtMsgBox] - A very customisable replacement for MsgBox&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast] - Small message GUIs which pop out of the Systray&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel UDF] - Manage child GUIs as panel ctrls&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart] - Pie chart&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart] - 3D Pie chart&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control UDF] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder] - Allows you to create a window finder control like the one seen in AutoIt Window Info.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager] - Create and control native pager controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control] - Hotkeys Input Control UDF Library (Non-native)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107965 GUIHotkey] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103904&amp;amp;p=735769 Marquees] - Make tickertape info bars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink] - Provides a convenient way to embed hypertext links in a window&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus] - You even can use full textured images&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table UDF] - Table UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 GUI/Tray Menu UDF] - GUI/Tray Menu with icons and colors (modified by LarsJ with extra examples by LarsJ and AZJIO)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166594 GUITreeViewEx] - Check/clear parent and child checkboxes in a TreeView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar UDF] - Calendar UDF&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes UDF] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number UDF] - Make calculations with extremely large numbers that AutoIt normally is not able to support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion] - From, to and between positive bases less than 63 (decimals supported)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106551 Decimal To fraction] - Converts any decimal number to a fraction. Example: 1.2 to 6/5&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometry math functions] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals] - integer to roman numerals made by Mat.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/123398-snippet-dump/page-3#entry1005157 Roman Numerals] - Roman Numerals made by czardas.&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/94770-integer-to-roman-numerals/#entry1043544 Roman Numerals] - Roman Numerals made by AZJIO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL UDF] - inline APL interpreter.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90492 Hotkey.au3] - Management of Hotkeys UDF, with several advantages over HotkeySet().&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize] - Automatically size controls to fit the text you want to put in them&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker] - Spell Checker UDF - Hunspell&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer] - TVExplorer UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN] - LFN UDF - overcome MAX_PATH limit of 256 chars&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History/Sotrage] - UDF to save and restore the entire clipboard contents&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources UDF] - Resources UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx UDF] - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon UDF] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary UDF] - Binary UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay] - Show Struct in ListView&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML UDF] - With DDEML UDF one can use an AutoIt script as a DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType UDF] - _FileGetMimeType UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData] - FindMimeFromData using urlmon.dll&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor UDF] - Get or Read Pixel from Memory UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/117033-file-locking-with-cooperative-semaphores File locking with cooperative semaphores] - Simple file locking without a server&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=142977 SQLite Array Functions] - SQLite Array Functions - a faster method for unique arrays and sorting methods&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation UDF] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table UDF] - Basically, a bunch of strings can be stored locally (at program level) or globally (at O/S level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy UDF] - This small library allows simple and reliable way to copy or move files and directories without suspending your script. Moreover, you can get the current state (number of copied bytes, system error code, and other status information) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 AutoIt Inline Assembly UDF] - TODO Description&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM UDF] - The Embedded Flat Assembler (FASM) UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll UDF] - Embed DLLs in script and call functions from memory&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC UDF] - ReadDirectoryChanges Wrapper&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160875 Debenu Quick PDF Library] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK - UDF] - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader UDF] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF UDF] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup] - Create Startup entries in the Startup Folder or Registry&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account UDF] - Local account UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services UDF] - Windows Services UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList UDF] - ITaskBarList UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor UDF] - FileSystemMonitor UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF] - Magnifier Functions - Windows Vista+ Magnifier Manipulation&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF UDF] - WRMF - Windows Registry Monitor Call Function&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry UDFs] - Windows Registry UDFs&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry] - RegWriteAllUsers / RegDeleteAllUsers&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore UDF] - System restore UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Sheduler] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplaner/Taskscheduler COM UDF] - an UDF for using the Windows Taskplaner / Task Scheduler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions UDF] - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI UDF] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal] - VirusTotal API 2.0 UDF.&lt;br /&gt;
[[Category:UDF]]&lt;br /&gt;
&lt;br /&gt;
== Social Media and other Website API ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes] - another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150473 Google API] - JSON queries for Google API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=131343 PasteBin] - PasteBin (powered by PasteBin).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay UDF] - eBay UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail] - Remote Gmail (UDF)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP UDF] - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader] - AYTU - AutoIt Youtube Uploader&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions] - Google Functions&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator] - Dropbox authenticator&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API UDF] - TVmaze.com API UDF (TV-Series)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 UDF] - Teamspeak 3 UDF&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166205 TeamViewer API - UDF] - UDF for TeamViewer API - a modest beginning&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost UDF] - Print USPS Postage Labels&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype UDF] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI UDF] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API] a couple of function, which allows you to create projects in Crowdin, add and update files, download translations or integrate localization with your development process.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android UDF] - Android UDF.&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=ADO&amp;diff=12969</id>
		<title>ADO</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=ADO&amp;diff=12969"/>
		<updated>2015-04-24T16:19:33Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most of the following text was taken from [http://en.wikipedia.org/wiki/ActiveX_Data_Objects Wikipedia], [http://www.connectionstrings.com connectionstrings.com]:&lt;br /&gt;
&lt;br /&gt;
Microsoft&#039;s &#039;&#039;&#039;ActiveX Data Objects&#039;&#039;&#039; ( ADO) is a set of [http://en.wikipedia.org/wiki/Component_Object_Model Component Object Model] (COM) objects for accessing data sources. As part of MDAC, it provides a middleware layer between programming languages and OLE DB (a means of accessing data stores, whether they be databases or otherwise, in a uniform manner). ADO allows a software developer to write programs that access data without knowing how the database is implemented; developers must be aware of the database for connection only. No knowledge of SQL is required to access a database when using ADO, although one can use ADO to execute SQL commands directly. The disadvantage of the latter is that it introduces a dependency upon the type of database used.&lt;br /&gt;
&lt;br /&gt;
ADO is positioned as a successor to Microsoft&#039;s earlier object layers for accessing data sources, including Remote Data Objects (RDO) and Data Access Objects (DAO). ADO was introduced by Microsoft in October 1996.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
This tutorial only decribes a fraction of what can be done with ADO.&amp;lt;br /&amp;gt;&lt;br /&gt;
There are many ways to retrieve, add and change data using ADO. This tutorial only describes:&lt;br /&gt;
* How to read data&lt;br /&gt;
* How to use the OLEDB provider, ODBC and other providers are not part of this tutorial&lt;br /&gt;
* To open the connection a connection string is used. Setting the properties of the connection object to describe the connection is not part of this tutorial&lt;br /&gt;
* The command to retrieve data is specified with the Open method for the RecordSet object. The Command object is not part of this tutorial&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How does ADO, OLEDB and ODBC fit together? ==&lt;br /&gt;
This chart shows the &amp;quot;big picture&amp;quot; so you can see how this all fits together (Picture taken from http://community.qlik.com/thread/106540).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:db-full-diagram.png|600px|How does ADO, OLEDB and ODBC fit together?]]&lt;br /&gt;
&lt;br /&gt;
== Internals ==&lt;br /&gt;
ADO is made up of four collections and twelve objects. For details please see page → [[ADO Internals]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Some basic steps are required in order to be able to access and manipulate data using ADO:&lt;br /&gt;
#Create a connection object to connect to the database&lt;br /&gt;
#Create a recordset object in order to receive data in&lt;br /&gt;
#Open the connection&lt;br /&gt;
#Populate the recordset&lt;br /&gt;
#Do all the desired searching/processing on the fetched data&lt;br /&gt;
#Close the recordset&lt;br /&gt;
#Close the connection&lt;br /&gt;
&lt;br /&gt;
=== Create a connection object ===&lt;br /&gt;
In AutoIt this is simply done by:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oConnection = ObjCreate(&amp;quot;ADODB.Connection&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create a recordset object ===&lt;br /&gt;
In AutoIt this is simply done by:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $oRecordSet = ObjCreate(&amp;quot;ADODB.Recordset&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Open the connection ===&lt;br /&gt;
[[File:ADO.gif|framed|right|Application-ADO-Provider-Database]]To open the connection you have to build a connection string.&lt;br /&gt;
When your application connects to a database or a data file you let ADO utilize a provider to do the job for you. The connection string contains the information that the provider needs to know to be able to establish a connection to the database or the data file.&lt;br /&gt;
Because there are different providers and each provider has multiple ways to make a connection there are many different ways to write a connection string. It&#039;s like the address when sending a regular mail. Depending on the origin and destination and who is going to make the transport you need to write down the address in different ways. &lt;br /&gt;
&lt;br /&gt;
==== Connection string ====&lt;br /&gt;
The connection string is really just a string inside the application you pass on to the connection object. The property is passed through the Open function of the connection object.&lt;br /&gt;
&lt;br /&gt;
For details please see page → [[ADO ConnectionString]].&lt;br /&gt;
&lt;br /&gt;
==== Connection properties ====&lt;br /&gt;
To be added.&lt;br /&gt;
&lt;br /&gt;
=== Populate the recordset ===&lt;br /&gt;
The ADO Recordset object is used to contain the set of data extracted from a database or file and is composed of records (rows) and fields (columns).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Recordset object is the heart of ADO. Via this object, we can select desired data. Equally important is the ability to move around inside the database. However, the functionality of the provider may impose limitations.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 RecordSet.Open(Source, Connection, CursorType, LockType, Options)&lt;br /&gt;
&lt;br /&gt;
The Open method is called on a Recordset object to open a cursor which gives you access to the records contained in the base table, the results from a query (used in the examples of this tutorial), or a previously saved Recordset.&lt;br /&gt;
&lt;br /&gt;
For details please see page → [[ADO RecordSet Populate]].&lt;br /&gt;
&lt;br /&gt;
=== Search/process the fetched data===&lt;br /&gt;
ADO provides methods and properties to &lt;br /&gt;
* move around in the RecordSet&lt;br /&gt;
* search for rows&lt;br /&gt;
* write the recordset to a 2D array or a single record to a string&lt;br /&gt;
* save the recordset to a file&lt;br /&gt;
* sort the records&lt;br /&gt;
* delete rows from the RecordSet&lt;br /&gt;
and much more.&amp;lt;br /&amp;gt;&lt;br /&gt;
For details please see page → [[ADO RecordSet Process]].&lt;br /&gt;
&lt;br /&gt;
=== Close the recordset===&lt;br /&gt;
Close the recordset and assign a new value to the object to release it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
$oRecordSet.Close()&lt;br /&gt;
$oRecordSet = 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Close the connection===&lt;br /&gt;
Close the connection and assign a new value to the object to release it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
$oConnection.Close()&lt;br /&gt;
$oConnection = 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
* IBM DB2&lt;br /&gt;
* Microsoft Access&lt;br /&gt;
* [[ADO_Example_Excel|Microsoft Excel]]&lt;br /&gt;
* Microsoft Project&lt;br /&gt;
* Microsoft SQL Server&lt;br /&gt;
* MySQL&lt;br /&gt;
* Oracle Database Server&lt;br /&gt;
* SQLite&lt;br /&gt;
* [[ADO_Example_TextFile|Text files]]&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
Some (AutoIt) tools to make life easier can be found on page → [[ADO Tools]].&lt;br /&gt;
&lt;br /&gt;
== Internal links ==&lt;br /&gt;
Links to ADO related threads on the forum:&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/169897-activex-data-objects-dsn-less-database-connection-demo/#entry1241099 ActiveX Data Objects - DSN-Less Database connection demo] (by: GreenCan)&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
*[http://msdn.microsoft.com/en-us/library/windows/desktop/ms675532%28v=vs.85%29.aspx Microsoft ADO page]&lt;br /&gt;
*[http://msdn.microsoft.com/en-us/library/windows/desktop/ms675944%28v=vs.85%29.aspx ADO object model]&lt;br /&gt;
*[http://www.devguru.com/technologies/ado/home DevGuru ADO Quick Reference]&lt;br /&gt;
*[http://www.w3schools.com/ado/default.asp w3schools - learn ADO]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]][[Category:ADO]]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=OutlookEX_UDF_-_Mail_Item&amp;diff=12950</id>
		<title>OutlookEX UDF - Mail Item</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=OutlookEX_UDF_-_Mail_Item&amp;diff=12950"/>
		<updated>2015-04-03T11:41:35Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:OutlookEX_UDF]]&lt;br /&gt;
Here you find detailed information about how to work with Mail items. &lt;br /&gt;
== Wrapper function ==&lt;br /&gt;
The following function is a &amp;quot;&#039;&#039;wrapper&#039;&#039;&amp;quot; that combines multiple function calls to mimic functions available in the &amp;quot;&#039;&#039;original&#039;&#039;&amp;quot; Outlook UDF.&amp;lt;br /&amp;gt;&lt;br /&gt;
This should make your scripts a bit shorter and live a bit easier.&lt;br /&gt;
=== SendMail ===&lt;br /&gt;
The wrapper function &#039;&#039;_OL_Wrapper_SendMail&#039;&#039; allows to send a mail to multiple recipients (&#039;&#039;To&#039;&#039;, &#039;&#039;Cc&#039;&#039; and &#039;&#039;BCc&#039;&#039;), add attachments, set some properties and send the mail in one go. The body can either be normal text or html. This wrapper function mimics the function of &#039;&#039;_OutlookSendMail&#039;&#039; of the original UDF.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;OutlookEx.au3&amp;gt;&lt;br /&gt;
$oOL = _OL_Open()&lt;br /&gt;
_OL_Wrapper_SendMail($oOL, &amp;quot;John Doe&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;Testmail&amp;quot;, &amp;quot;&amp;amp;lt;b&amp;gt;Test&amp;amp;lt;/b&amp;gt;&amp;quot;, &amp;quot;&amp;quot;, $olFormatHTML, $olImportanceHigh)&lt;br /&gt;
_OL_Close($oOL)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sends a mail to &#039;John Doe&#039; with Subject &#039;Testmail&#039;, body as HTML and high importance.&lt;br /&gt;
&lt;br /&gt;
== Tips &amp;amp; Tricks ==&lt;br /&gt;
=== Send a mail on behalf of another user ===&lt;br /&gt;
Set property &#039;&#039;SentOnBehalfOfName&#039;&#039; to the displayname of the intended sender.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;OutlookEx.au3&amp;gt;&lt;br /&gt;
; Open the connection to Outlook&lt;br /&gt;
Global $oOL = _OL_Open()&lt;br /&gt;
; Create a mail item and set some properties&lt;br /&gt;
Global $oItem = _OL_ItemCreate($oOL, $olMailItem, &amp;quot;*\Outlook-UDF-Test\TargetFolder\Mail&amp;quot;, &amp;quot;&amp;quot;, _&lt;br /&gt;
  &amp;quot;Subject=TestMail&amp;quot;, &amp;quot;BodyFormat=&amp;quot; &amp;amp; $olFormatHTML, &amp;quot;HTMLBody=Bodytext in &amp;amp;lt;b&amp;gt;Test&amp;amp;lt;/b&amp;gt;.&amp;quot;, &amp;quot;SentOnBehalfOfName=Doe Jane&amp;quot;)&lt;br /&gt;
; Add a recipient and resolve it&lt;br /&gt;
_OL_ItemRecipientAdd($oOL, $oItem, Default, $olTo, &amp;quot;Doe John&amp;quot;)&lt;br /&gt;
; Send the mail&lt;br /&gt;
_OL_ItemSend($oOL, $oItem)&lt;br /&gt;
If @extended = -2147352567 Then _&lt;br /&gt;
  MsgBox(16, &amp;quot;OutlookEX UDF - Example Script&amp;quot;, &amp;quot;You don&#039;t have permission to send the mail on behalf of the specified person!&amp;quot;)&lt;br /&gt;
_OL_Close($oOL)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This creates a mail in your folder &#039;&#039;Outlook-UDF-Test\TargetFolder\Mail&#039;&#039;, recipient is &#039;&#039;John Doe&#039;&#039;, subject is &#039;&#039;Testmail&#039;&#039;, body as HTML. &#039;&#039;SentOnBehalfOfName&#039;&#039; is set to the displayname of the sender (&#039;&#039;Jane Doe&#039;&#039;).&lt;br /&gt;
The mail is sent and the extended error code is checked. An error message is being displayed if you do not have the required permissions to send a mail on behalf of another user.&lt;br /&gt;
&lt;br /&gt;
=== Delay the sending of a mail ===&lt;br /&gt;
Set property &#039;&#039;DeferredDeliveryTime&#039;&#039; to date and time when the mail is to be delivered.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;OutlookEx.au3&amp;gt;&lt;br /&gt;
; Open the connection to Outlook&lt;br /&gt;
Global $oOL = _OL_Open()&lt;br /&gt;
; Create a mail item and set some properties&lt;br /&gt;
Global $oItem = _OL_ItemCreate($oOL, $olMailItem, &amp;quot;*\Outlook-UDF-Test\TargetFolder\Mail&amp;quot;, &amp;quot;&amp;quot;, _&lt;br /&gt;
  &amp;quot;Subject=TestMail&amp;quot;, &amp;quot;BodyFormat=&amp;quot; &amp;amp; $olFormatHTML, &amp;quot;HTMLBody=Bodytext in &amp;amp;lt;b&amp;gt;Test&amp;amp;lt;/b&amp;gt;.&amp;quot;, _&lt;br /&gt;
  &amp;quot;DeferredDeliveryTime=2017/03/18 18:01:00&amp;quot;)&lt;br /&gt;
; Add a recipient and resolve it&lt;br /&gt;
_OL_ItemRecipientAdd($oOL, $oItem, Default, $olTo, &amp;quot;Doe John&amp;quot;)&lt;br /&gt;
; Send the mail&lt;br /&gt;
_OL_ItemSend($oOL, $oItem)&lt;br /&gt;
_OL_Close($oOL)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This creates a mail in your folder &#039;&#039;Outlook-UDF-Test\TargetFolder\Mail&#039;&#039;, recipient is &#039;&#039;John Doe&#039;&#039;, subject is &#039;&#039;Testmail&#039;&#039;, body as HTML. &#039;&#039;DeferredDeliveryTime&#039;&#039; is set to &#039;&#039;2017/03/18 18:01:00&#039;&#039;.&lt;br /&gt;
The mail is sent by Outlook but transmission is deferred by the Exchange server until the specified date/time has been reached.&lt;br /&gt;
&lt;br /&gt;
=== Send a mail or reply to a mail with a signature ===&lt;br /&gt;
Outlook allows to add a signature when a new mail or a reply to a mail is created. The following steps are needed:&lt;br /&gt;
* Create a signature to be added to new or reply to mails. This can be done manually by using Outlook or by calling function _OL_MailSignatureCreate&lt;br /&gt;
* Set a signature as the one to be used when a new mail or a reply to a mail is created. This can be done manually by using Outlook or by calling function _OL_MailSignatureSet&lt;br /&gt;
* Create the new or reply to mail. The signature is created immediately by Outlook before any other text is added to the body&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can&#039;t use functions _OL_ItemCreate and _OL_Wrapper_SendMail to set the body of the mail. Because the functions just set the body property and hence the signature will be overwritten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Don&#039;t use &#039;&#039;_OL_Wrapper_SendMail&#039;&#039;. There is no solution for this function.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Create the mail, retrieve the body (which now only consists of the signature), add the mail text and set the body property again.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;OutlookEX.au3&amp;gt;&lt;br /&gt;
Global $oOutlook = _OL_Open()&lt;br /&gt;
;===========&lt;br /&gt;
; Plain Text&lt;br /&gt;
;===========&lt;br /&gt;
$oItem = _OL_ItemCreate($oOutlook, $olMailItem, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;Subject=Subject for BodyFormat=Plain Text&amp;quot;)&lt;br /&gt;
$oItem.BodyFormat = $olFormatPlain&lt;br /&gt;
$oItem.GetInspector&lt;br /&gt;
$sBody = $oItem.Body&lt;br /&gt;
$oItem.Body = &amp;quot;Text: Mail Text&amp;quot; &amp;amp; $sBody&lt;br /&gt;
$oItem.Display&lt;br /&gt;
&lt;br /&gt;
;=====&lt;br /&gt;
; HTML&lt;br /&gt;
;=====&lt;br /&gt;
$oItem = _OL_ItemCreate($oOutlook, $olMailItem, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;Subject=Subject for BodyFormat=HTML&amp;quot;)&lt;br /&gt;
$oItem.BodyFormat = $olFormatHTML&lt;br /&gt;
$oItem.GetInspector&lt;br /&gt;
$sBody = $oItem.HTMLBody&lt;br /&gt;
$oItem.HTMLBody = &amp;quot;HTML: &amp;lt;b&amp;gt;Mail&amp;lt;/b&amp;gt; Text&amp;quot; &amp;amp; $sBody&lt;br /&gt;
$oItem.Display&lt;br /&gt;
&lt;br /&gt;
;==========&lt;br /&gt;
; Rich Text&lt;br /&gt;
;==========&lt;br /&gt;
$oItem = _OL_ItemCreate($oOutlook, $olMailItem, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;Subject=Subject for BodyFormat=RTF&amp;quot;)&lt;br /&gt;
$oItem.BodyFormat = $olFormatRichText&lt;br /&gt;
$oItem.GetInspector&lt;br /&gt;
$sBody = $oItem.HTMLBody&lt;br /&gt;
$oItem.HTMLBody = &amp;quot;RTF: &amp;lt;b&amp;gt;Mail&amp;lt;/b&amp;gt; Text&amp;quot; &amp;amp; $sBody&lt;br /&gt;
$oItem.Display&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Send a mail to an SMTP address ===&lt;br /&gt;
If you have problems sending a mail to an SMTP address, means _OL_ItemRecipientAdd returns an error telling you that a recipient could not be resolved, then you should try to directly set the &amp;quot;To&amp;quot; property.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;OutlookEx.au3&amp;gt;&lt;br /&gt;
; Open the connection to Outlook&lt;br /&gt;
Global $oOL = _OL_Open()&lt;br /&gt;
; Create a mail item and set some properties&lt;br /&gt;
Global $oItem = _OL_ItemCreate($oOL, $olMailItem, &amp;quot;*\Outlook-UDF-Test\TargetFolder\Mail&amp;quot;, &amp;quot;&amp;quot;, _&lt;br /&gt;
  &amp;quot;Subject=TestMail&amp;quot;, &amp;quot;BodyFormat=&amp;quot; &amp;amp; $olFormatHTML, &amp;quot;HTMLBody=Bodytext in &amp;amp;lt;b&amp;gt;Test&amp;amp;lt;/b&amp;gt;.&amp;quot;, &amp;quot;To=Jane.Doe@company.com&amp;quot;)&lt;br /&gt;
; Send the mail&lt;br /&gt;
_OL_ItemSend($oOL, $oItem)&lt;br /&gt;
If @extended = -2147352567 Then _&lt;br /&gt;
  MsgBox(16, &amp;quot;OutlookEX UDF - Example Script&amp;quot;, &amp;quot;You don&#039;t have permission to send the mail on behalf of the specified person!&amp;quot;)&lt;br /&gt;
_OL_Close($oOL)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=OutlookEX_UDF_-_Mail_Item&amp;diff=12949</id>
		<title>OutlookEX UDF - Mail Item</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=OutlookEX_UDF_-_Mail_Item&amp;diff=12949"/>
		<updated>2015-04-03T11:39:46Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Tips &amp;amp; Tricks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:OutlookEX_UDF]]&lt;br /&gt;
Here you find detailed information about how to work with Mail items. &lt;br /&gt;
== Wrapper function ==&lt;br /&gt;
The following function is a &amp;quot;&#039;&#039;wrapper&#039;&#039;&amp;quot; that combines multiple function calls to mimic functions available in the &amp;quot;&#039;&#039;original&#039;&#039;&amp;quot; Outlook UDF.&amp;lt;br /&amp;gt;&lt;br /&gt;
This should make your scripts a bit shorter and live a bit easier.&lt;br /&gt;
=== SendMail ===&lt;br /&gt;
The wrapper function &#039;&#039;_OL_Wrapper_SendMail&#039;&#039; allows to send a mail to multiple recipients (&#039;&#039;To&#039;&#039;, &#039;&#039;Cc&#039;&#039; and &#039;&#039;BCc&#039;&#039;), add attachments, set some properties and send the mail in one go. The body can either be normal text or html. This wrapper function mimics the function of &#039;&#039;_OutlookSendMail&#039;&#039; of the original UDF.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;OutlookEx.au3&amp;gt;&lt;br /&gt;
$oOL = _OL_Open()&lt;br /&gt;
_OL_Wrapper_SendMail($oOL, &amp;quot;John Doe&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;Testmail&amp;quot;, &amp;quot;&amp;amp;lt;b&amp;gt;Test&amp;amp;lt;/b&amp;gt;&amp;quot;, &amp;quot;&amp;quot;, $olFormatHTML, $olImportanceHigh)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sends a mail to &#039;John Doe&#039; with Subject &#039;Testmail&#039;, body as HTML and high importance.&lt;br /&gt;
&lt;br /&gt;
== Tips &amp;amp; Tricks ==&lt;br /&gt;
=== Send a mail on behalf of another user ===&lt;br /&gt;
Set property &#039;&#039;SentOnBehalfOfName&#039;&#039; to the displayname of the intended sender.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;OutlookEx.au3&amp;gt;&lt;br /&gt;
; Open the connection to Outlook&lt;br /&gt;
Global $oOL = _OL_Open()&lt;br /&gt;
; Create a mail item and set some properties&lt;br /&gt;
Global $oItem = _OL_ItemCreate($oOL, $olMailItem, &amp;quot;*\Outlook-UDF-Test\TargetFolder\Mail&amp;quot;, &amp;quot;&amp;quot;, _&lt;br /&gt;
  &amp;quot;Subject=TestMail&amp;quot;, &amp;quot;BodyFormat=&amp;quot; &amp;amp; $olFormatHTML, &amp;quot;HTMLBody=Bodytext in &amp;amp;lt;b&amp;gt;Test&amp;amp;lt;/b&amp;gt;.&amp;quot;, &amp;quot;SentOnBehalfOfName=Doe Jane&amp;quot;)&lt;br /&gt;
; Add a recipient and resolve it&lt;br /&gt;
_OL_ItemRecipientAdd($oOL, $oItem, Default, $olTo, &amp;quot;Doe John&amp;quot;)&lt;br /&gt;
; Send the mail&lt;br /&gt;
_OL_ItemSend($oOL, $oItem)&lt;br /&gt;
If @extended = -2147352567 Then _&lt;br /&gt;
  MsgBox(16, &amp;quot;OutlookEX UDF - Example Script&amp;quot;, &amp;quot;You don&#039;t have permission to send the mail on behalf of the specified person!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This creates a mail in your folder &#039;&#039;Outlook-UDF-Test\TargetFolder\Mail&#039;&#039;, recipient is &#039;&#039;John Doe&#039;&#039;, subject is &#039;&#039;Testmail&#039;&#039;, body as HTML. &#039;&#039;SentOnBehalfOfName&#039;&#039; is set to the displayname of the sender (&#039;&#039;Jane Doe&#039;&#039;).&lt;br /&gt;
The mail is sent and the extended error code is checked. An error message is being displayed if you do not have the required permissions to send a mail on behalf of another user.&lt;br /&gt;
&lt;br /&gt;
=== Delay the sending of a mail ===&lt;br /&gt;
Set property &#039;&#039;DeferredDeliveryTime&#039;&#039; to date and time when the mail is to be delivered.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;OutlookEx.au3&amp;gt;&lt;br /&gt;
; Open the connection to Outlook&lt;br /&gt;
Global $oOL = _OL_Open()&lt;br /&gt;
; Create a mail item and set some properties&lt;br /&gt;
Global $oItem = _OL_ItemCreate($oOL, $olMailItem, &amp;quot;*\Outlook-UDF-Test\TargetFolder\Mail&amp;quot;, &amp;quot;&amp;quot;, _&lt;br /&gt;
  &amp;quot;Subject=TestMail&amp;quot;, &amp;quot;BodyFormat=&amp;quot; &amp;amp; $olFormatHTML, &amp;quot;HTMLBody=Bodytext in &amp;amp;lt;b&amp;gt;Test&amp;amp;lt;/b&amp;gt;.&amp;quot;, _&lt;br /&gt;
  &amp;quot;DeferredDeliveryTime=2017/03/18 18:01:00&amp;quot;)&lt;br /&gt;
; Add a recipient and resolve it&lt;br /&gt;
_OL_ItemRecipientAdd($oOL, $oItem, Default, $olTo, &amp;quot;Doe John&amp;quot;)&lt;br /&gt;
; Send the mail&lt;br /&gt;
_OL_ItemSend($oOL, $oItem)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This creates a mail in your folder &#039;&#039;Outlook-UDF-Test\TargetFolder\Mail&#039;&#039;, recipient is &#039;&#039;John Doe&#039;&#039;, subject is &#039;&#039;Testmail&#039;&#039;, body as HTML. &#039;&#039;DeferredDeliveryTime&#039;&#039; is set to &#039;&#039;2017/03/18 18:01:00&#039;&#039;.&lt;br /&gt;
The mail is sent by Outlook but transmission is deferred by the Exchange server until the specified date/time has been reached.&lt;br /&gt;
&lt;br /&gt;
=== Send a mail or reply to a mail with a signature ===&lt;br /&gt;
Outlook allows to add a signature when a new mail or a reply to a mail is created. The following steps are needed:&lt;br /&gt;
* Create a signature to be added to new or reply to mails. This can be done manually by using Outlook or by calling function _OL_MailSignatureCreate&lt;br /&gt;
* Set a signature as the one to be used when a new mail or a reply to a mail is created. This can be done manually by using Outlook or by calling function _OL_MailSignatureSet&lt;br /&gt;
* Create the new or reply to mail. The signature is created immediately by Outlook before any other text is added to the body&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can&#039;t use functions _OL_ItemCreate and _OL_Wrapper_SendMail to set the body of the mail. Because the functions just set the body property and hence the signature will be overwritten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Don&#039;t use &#039;&#039;_OL_Wrapper_SendMail&#039;&#039;. There is no solution for this function.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Create the mail, retrieve the body (which now only consists of the signature), add the mail text and set the body property again.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;OutlookEX.au3&amp;gt;&lt;br /&gt;
Global $oOutlook = _OL_Open()&lt;br /&gt;
;===========&lt;br /&gt;
; Plain Text&lt;br /&gt;
;===========&lt;br /&gt;
$oItem = _OL_ItemCreate($oOutlook, $olMailItem, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;Subject=Subject for BodyFormat=Plain Text&amp;quot;)&lt;br /&gt;
$oItem.BodyFormat = $olFormatPlain&lt;br /&gt;
$oItem.GetInspector&lt;br /&gt;
$sBody = $oItem.Body&lt;br /&gt;
$oItem.Body = &amp;quot;Text: Mail Text&amp;quot; &amp;amp; $sBody&lt;br /&gt;
$oItem.Display&lt;br /&gt;
&lt;br /&gt;
;=====&lt;br /&gt;
; HTML&lt;br /&gt;
;=====&lt;br /&gt;
$oItem = _OL_ItemCreate($oOutlook, $olMailItem, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;Subject=Subject for BodyFormat=HTML&amp;quot;)&lt;br /&gt;
$oItem.BodyFormat = $olFormatHTML&lt;br /&gt;
$oItem.GetInspector&lt;br /&gt;
$sBody = $oItem.HTMLBody&lt;br /&gt;
$oItem.HTMLBody = &amp;quot;HTML: &amp;lt;b&amp;gt;Mail&amp;lt;/b&amp;gt; Text&amp;quot; &amp;amp; $sBody&lt;br /&gt;
$oItem.Display&lt;br /&gt;
&lt;br /&gt;
;==========&lt;br /&gt;
; Rich Text&lt;br /&gt;
;==========&lt;br /&gt;
$oItem = _OL_ItemCreate($oOutlook, $olMailItem, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;Subject=Subject for BodyFormat=RTF&amp;quot;)&lt;br /&gt;
$oItem.BodyFormat = $olFormatRichText&lt;br /&gt;
$oItem.GetInspector&lt;br /&gt;
$sBody = $oItem.HTMLBody&lt;br /&gt;
$oItem.HTMLBody = &amp;quot;RTF: &amp;lt;b&amp;gt;Mail&amp;lt;/b&amp;gt; Text&amp;quot; &amp;amp; $sBody&lt;br /&gt;
$oItem.Display&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Send a mail to an SMTP address ===&lt;br /&gt;
If you have problems sending a mail to an SMTP address, means _OL_ItemRecipientAdd returns an error telling you that a recipient could not be resolved, then you should try to directly set the &amp;quot;To&amp;quot; property.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;OutlookEx.au3&amp;gt;&lt;br /&gt;
; Open the connection to Outlook&lt;br /&gt;
Global $oOL = _OL_Open()&lt;br /&gt;
; Create a mail item and set some properties&lt;br /&gt;
Global $oItem = _OL_ItemCreate($oOL, $olMailItem, &amp;quot;*\Outlook-UDF-Test\TargetFolder\Mail&amp;quot;, &amp;quot;&amp;quot;, _&lt;br /&gt;
  &amp;quot;Subject=TestMail&amp;quot;, &amp;quot;BodyFormat=&amp;quot; &amp;amp; $olFormatHTML, &amp;quot;HTMLBody=Bodytext in &amp;amp;lt;b&amp;gt;Test&amp;amp;lt;/b&amp;gt;.&amp;quot;, &amp;quot;To=Jane.Doe@company.com&amp;quot;)&lt;br /&gt;
; Send the mail&lt;br /&gt;
_OL_ItemSend($oOL, $oItem)&lt;br /&gt;
If @extended = -2147352567 Then _&lt;br /&gt;
  MsgBox(16, &amp;quot;OutlookEX UDF - Example Script&amp;quot;, &amp;quot;You don&#039;t have permission to send the mail on behalf of the specified person!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Best_coding_practices&amp;diff=12928</id>
		<title>Best coding practices</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Best_coding_practices&amp;diff=12928"/>
		<updated>2015-03-14T22:03:44Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Outlined in this section is a detailed explanation of what are to be considered the best coding practices within AutoIt. These recommendations are based on accepted coding practices common to a number of other programming languages. You do not need to follow them, but it is recommended that you do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: You must use AutoIt v3.3.10.0 or above to run the examples below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Names of Variables ==&lt;br /&gt;
The variable naming convention used in AutoIt is based on [http://en.wikipedia.org/wiki/Hungarian_notation Apps Hungarian notation]. The prefix defines the logical data type rather than the physical data type: in this way, it gives a hint as to what the variable&#039;s purpose is, or what it represents. The prefix does not encode the actual data type: this occurs during assignment. See the table below for accepted standards.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! prefix !! covering type !! example&lt;br /&gt;
|-&lt;br /&gt;
| i || Integer || $iInteger = 10&lt;br /&gt;
|-&lt;br /&gt;
| f || Floating point || $fFloat = 0.123&lt;br /&gt;
|-&lt;br /&gt;
| n || General number (no preference) || $nNumber = 0&lt;br /&gt;
|-&lt;br /&gt;
| a || Arrays || $aArray[0]&lt;br /&gt;
|-&lt;br /&gt;
| m || Maps || $mMap[]&lt;br /&gt;
|-&lt;br /&gt;
| s || Strings (chars included) || $sString = &amp;quot;hello world&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| b || Booleans || $bBool = True&lt;br /&gt;
|-&lt;br /&gt;
| d || Binaries || $dBinary = Binary(&amp;quot;0x80000000&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| id || An AutoIt controlID || $idButton = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 5, 5)&lt;br /&gt;
|-&lt;br /&gt;
| h || Handles (and GUI handles) || $hGUI = GUICreate(&amp;quot;My GUI&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| fu || Functions || $fuMessage = MsgBox&lt;br /&gt;
|-&lt;br /&gt;
| p || Pointers || $pRect = DllStructGetPtr($tRECT)&lt;br /&gt;
|-&lt;br /&gt;
| tag || Structures definition || $tagDATE = &amp;quot;struct; word Year;word Month;word Dow;word Day; endstruct&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| t || Structures || $tSTRUCT = DllStructCreate($tagSTRUCT)&lt;br /&gt;
|-&lt;br /&gt;
| o || Objects || $oShell = ObjCreate(&amp;quot;shell.application&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| v || Variant || $vData = ClipGet()&lt;br /&gt;
|-&lt;br /&gt;
| e || Enumerations || Enum $e1st = 1, $e2nd, $e3rd&lt;br /&gt;
|-&lt;br /&gt;
| k || Keywords || $kKeyword = Default&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Variables are named following this schema:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! dollar prefix !! type (lower case) !! [optional] subtype (lower case) !! var name (first letter in upper case)&lt;br /&gt;
|-&lt;br /&gt;
| $ || a || h || Handles&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Assign a local variable the integer 7.&lt;br /&gt;
Local $iWeekDays = 7&lt;br /&gt;
&lt;br /&gt;
; Assign a local variable the value of Pi.&lt;br /&gt;
Local $fPi = 3.14159265358979&lt;br /&gt;
&lt;br /&gt;
; Assign a local variable an array of strings.&lt;br /&gt;
Local $asArray[7] = [&#039;mon&#039;, &#039;tue&#039;, &#039;wed&#039;, &#039;thu&#039;, &#039;fri&#039;, &#039;sat&#039;, &#039;sun&#039;]&lt;br /&gt;
&lt;br /&gt;
; Assign a local variable an array of numbers.&lt;br /&gt;
Local $anArray[4] = [0, 0.25, 3 / 4, 12]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variable Initialization ==&lt;br /&gt;
When initializing variables there are several points to consider. It is bad practice to hog memory by assigning data which is not immediately required. It is therefore recommended that you declare and initialize variables immediately prior to use. If you wish to assign a default value to a variable which you intend to overwrite later, then the data should be of the same (or the most logical representation of its) type and use as little memory as possible.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Inconsistent data types are considered bad.&lt;br /&gt;
Local $iInteger = &amp;quot;0&amp;quot;&lt;br /&gt;
Local $sString = False&lt;br /&gt;
&lt;br /&gt;
; Correct initialization&lt;br /&gt;
Local $iInteger = 0&lt;br /&gt;
Local $sString = &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following table, recommended default values are shown for each data type. Some data types have more than one possibile default value which can be used for initialization.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Default Value !! covering type&lt;br /&gt;
|-&lt;br /&gt;
| Binary(&amp;quot;&amp;quot;) || $d&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;&amp;quot; || $s, $v&lt;br /&gt;
|-&lt;br /&gt;
| 0 || $a, $h, $i, $id, $m, $n, $o, $p, $t, $tag, $v&lt;br /&gt;
|-&lt;br /&gt;
| 0.0 || $f&lt;br /&gt;
|-&lt;br /&gt;
| Null || $fu, $o, $s, $v&lt;br /&gt;
|-&lt;br /&gt;
| False (or True) || $b&lt;br /&gt;
|-&lt;br /&gt;
| Default || $k&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Declare and initialize a variable with the recommended default value.&lt;br /&gt;
Local $vUndefined = Null ; This does not require much memory.&lt;br /&gt;
&lt;br /&gt;
; Some time later:&lt;br /&gt;
$vUndefined = 0xB0AD1CEA ; Assign an appropriate value as and when needed.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To reduce bloat, multiple variables can be declared on a single line. When declaring multiple variables on the same line, it is generally recommended that you stick to declaring one data type on each line. The intention here is to make the code easier to follow, however the best layout will vary according to circumstance.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Not recommended&lt;br /&gt;
Local $sString = &amp;quot;&amp;quot;, $iInteger = 0, $asArray = [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;] ; Mixed data types&lt;br /&gt;
&lt;br /&gt;
; Recommended&lt;br /&gt;
Local $iLeft = 10, $iTop = 10 ; integers&lt;br /&gt;
Local $idGo = GUICtrlCreateButton(&amp;quot;Go&amp;quot;, $iLeft, $iTop), $idQuit = GUICtrlCreateButton(&amp;quot;Quit&amp;quot;, 50, 10) ; controlIDs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In some languages it is essential to initialize variables on declaration, but this is not the case with AutoIt. Regarding data type, variables declared without being initialized should be considered as being undefined.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scopes of Variables ==&lt;br /&gt;
To make the transition, the variables are also named according to their scope.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Global UDF variable !! Global variable !! Local variable&lt;br /&gt;
|-&lt;br /&gt;
| $g__iSomeVar || $g_iSomeVar || $iSomeVar&lt;br /&gt;
|}&lt;br /&gt;
With this method, you will avoid non wanted re-assignments.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Assign a Global variable the number 0.&lt;br /&gt;
Global $iSomeVar1 = 0&lt;br /&gt;
; Assign a Global variable the number 5.&lt;br /&gt;
Global $_iSomeVar2 = 5&lt;br /&gt;
&lt;br /&gt;
SomeFunc()&lt;br /&gt;
&lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	; Assign Local variables respectively the numbers 3 and 4.&lt;br /&gt;
	Local $iSomeVar1 = 3, $iSomeVar2 = 4&lt;br /&gt;
&lt;br /&gt;
	; Note: The user inadvertently re-assigned the global variable $iSomeVar1, because this one is not named as &amp;quot;global&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
	; Display the value of $iSomeVar1.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $iSomeVar1: &amp;quot; &amp;amp; $iSomeVar1)&lt;br /&gt;
&lt;br /&gt;
	; Display the value of $iSomeVar2.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $iSomeVar2: &amp;quot; &amp;amp; $iSomeVar2)&lt;br /&gt;
&lt;br /&gt;
	; Display the value of $_iSomeVar2.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $_iSomeVar2: &amp;quot; &amp;amp; $_iSomeVar2)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A variable declared globally (with the Global keyword) is visible anywhere in the script.&amp;lt;br /&amp;gt;Always declare your global variables in the global scope, not in the functions. It will prevent another function to use it before its declaration and the declaration is implicit (see [[#jumpsec1|examples]]).&lt;br /&gt;
&lt;br /&gt;
* A variable declared locally (with the Local keyword), has a visibility which depends of the scope where it&#039;s declared.&lt;br /&gt;
:Declaration in the global scope: the variable is nonetheless visible everywhere; declare it as Local if this one is only used in the same scope.&lt;br /&gt;
:Declaration in a function: the variable is visible by the function itself and nowhere else.&lt;br /&gt;
&lt;br /&gt;
Structure of a code scope:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Global scope.&lt;br /&gt;
&lt;br /&gt;
; Include the Constants file, it contains various constants; it&#039;s needed here for the $MB_SYSTEMMODAL flag of the MsgBox function).&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; This scope is either Global or Local, depending on where do you use the variables.&lt;br /&gt;
&lt;br /&gt;
; Assign a Global variable the number 0 (which corresponds to an initialization of a variable number), its scope is Global because it&#039;s used at least in one function.&lt;br /&gt;
Global $_iVar1 = 0&lt;br /&gt;
&lt;br /&gt;
; Assign a Local variable the string &amp;quot;foo&amp;quot;, its scope is Local because it&#039;s use is restricted to this scope.&lt;br /&gt;
Local $_sVar2 = &amp;quot;foo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Display the content of $_sVar2&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $sVar2: &amp;quot; &amp;amp; $_sVar2)&lt;br /&gt;
&lt;br /&gt;
; Re-assign a Local variable the string returned by the function MyFunc.&lt;br /&gt;
$_sVar2 = MyFunc()&lt;br /&gt;
&lt;br /&gt;
; Re-Display the content of $_sVar2&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $sVar2: &amp;quot; &amp;amp; $_sVar2)&lt;br /&gt;
&lt;br /&gt;
; Declare a function (its main utility is described later in Functions, we can see one here which is to create a Local scope).&lt;br /&gt;
Func MyFunc()&lt;br /&gt;
	; Local scope.&lt;br /&gt;
&lt;br /&gt;
	; Display the content of $_iVar1.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $_iVar1: &amp;quot; &amp;amp; $_iVar1)&lt;br /&gt;
&lt;br /&gt;
	; Assign a Local variable the string &amp;quot;bar&amp;quot;, its scope is Local because it&#039;s use is restricted to the function&#039;s scope.&lt;br /&gt;
	Local $sVar3 = &amp;quot;bar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	; Display the content of $sVar3.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $sVar3: &amp;quot; &amp;amp; $sVar3)&lt;br /&gt;
&lt;br /&gt;
	; Return the $sVar3 content, it will be visible (if used) to the scope where the function is called.&lt;br /&gt;
	Return $sVar3&lt;br /&gt;
EndFunc   ;==&amp;gt;MyFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Concerning the Dim keyword, its recommended usage is limited to empty an existing array (Example 1) or to redeclare a function parameter (Example 2).&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Include the Array UDF, it&#039;s needed here for the _ArrayDisplay function.&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
; Assign a Local variable an array containing numbers with a size of 5.&lt;br /&gt;
; Note than an array is based 0 index, to access the first element the code is: $aiArray[0].&lt;br /&gt;
Local $aArray[5] = [1, 2, 3, 4, 5]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
 &lt;br /&gt;
; Empty the array (and keep its size).&lt;br /&gt;
Dim $aArray[5]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Remark: The variable type of the emptied array is a string, every variable non initialized is a string.&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Call MyFunc with default parameters ($vParam1 = 0).&lt;br /&gt;
MyFunc()&lt;br /&gt;
&lt;br /&gt;
; Assign a Local variable an array containing integers.&lt;br /&gt;
Local $aiArray[3] = [3, 4, 5]&lt;br /&gt;
; Call MyFunc with $aiArray as parameter ($vParam1 = $aiArray).&lt;br /&gt;
MyFunc($aiArray)&lt;br /&gt;
&lt;br /&gt;
Func MyFunc($vParam1 = 0)&lt;br /&gt;
    ; If $vParam1 is NOT an array then redeclare it to an array.&lt;br /&gt;
    If IsArray($vParam1) = 0 Then&lt;br /&gt;
        Dim $vParam1[3] = [0, 1, 2]&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Display the array.&lt;br /&gt;
    _ArrayDisplay($vParam1)&lt;br /&gt;
EndFunc   ;==&amp;gt;MyFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for the ReDim keyword, limit its use to resize an array you want to keep its content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Include the Array UDF, it&#039;s needed here for the _ArrayDisplay function.&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
; Assign a Local variable an array containing numbers with a size of 5.&lt;br /&gt;
; Note than an array is based 0 index, to access the first element the code is: $aiArray[0].&lt;br /&gt;
Local $aArray[5] = [1, 2, 3, 4, 5]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
 &lt;br /&gt;
; Resize the array (and keep its content).&lt;br /&gt;
ReDim $aArray[3]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why using Dim over Local/Global is not always a good option:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Dim $vVariableThatIsGlobal = &amp;quot;This is a variable that has &amp;quot;&amp;quot;Program Scope&amp;quot;&amp;quot; aka Global.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;An example of why Dim can cause more problems than solve them.&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
Example()&lt;br /&gt;
 &lt;br /&gt;
Func Example()&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, $vVariableThatIsGlobal) ; That looks alright to me as it displays the following text: This is a variable that has &amp;quot;Program Scope&amp;quot; aka Global.&lt;br /&gt;
 &lt;br /&gt;
	Local $vReturn = SomeFunc() ; Call some random function.&lt;br /&gt;
 &lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, $vReturn, $vVariableThatIsGlobal) ; The Global variable ($vVariableThatIsGlobal) changed because I totally forgot I had a duplicate variable name in &amp;quot;SomeFunc&amp;quot;.&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
 &lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	; This should create a variable in Local scope if the variable name doesn&amp;quot;t already exist.&lt;br /&gt;
	; For argument sake I totally forgot that I declared a variable already with the same name.&lt;br /&gt;
	; Well I only want this to be changed in the function and not the variable at the top of the script.&lt;br /&gt;
	; Should be OK right? Think again.&lt;br /&gt;
	Dim $vVariableThatIsGlobal = &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
	For $i = 1 To 10&lt;br /&gt;
		$vVariableThatIsGlobal &amp;amp;= $i ; This will return 12345678910 totally wiping the previous contents of $vVariableThatIsGlobal.&lt;br /&gt;
	Next&lt;br /&gt;
	Return $vVariableThatIsGlobal&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;jumpsec1&amp;quot;&amp;gt;Declaring Global variables in a Function is never a good idea:&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Calling Example() first will initialise the Global variable $vVariableThatIsGlobal and therefore calling SomeFunc() won&#039;t return an error.&lt;br /&gt;
; Now look at Example 2.&lt;br /&gt;
Example()&lt;br /&gt;
 &lt;br /&gt;
Func Example()&lt;br /&gt;
	; Declaring a variable in a function can cause serious problems, hence why all Global variables should be declared at the top of a script.&lt;br /&gt;
	Global $vVariableThatIsGlobal = &#039;This is a variable that has &#039;&#039;File Scope&#039;&#039; aka Global.&#039;&lt;br /&gt;
	SomeFunc()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
 &lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $vVariableThatIsGlobal) ; As the variable was initialised this will not return an error.&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Calling SomeFunc() first will bypass the Global variable $vVariableThatIsGlobal being initialised and therefore AutoIt has no idea of what data the variable&lt;br /&gt;
; $vVariableThatIsGlobal contains.&lt;br /&gt;
SomeFunc()&lt;br /&gt;
 &lt;br /&gt;
Func Example()&lt;br /&gt;
	; Declaring a variable in a function can cause serious problems, hence why all Global variables should be declared at the top of a script.&lt;br /&gt;
	Global $vVariableThatIsGlobal = &#039;This is a variable that has &#039;&#039;File Scope&#039;&#039; aka Global.&#039;&lt;br /&gt;
	SomeFunc()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
 &lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $vVariableThatIsGlobal) ; As the variable wasn&#039;t initialised this will return an error of &amp;quot;variable used without being declared.&amp;quot;&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Declaring variables in loops (For, While, Do etc..) can have an affect on efficiency:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Declaring variables inside loops should be avoided as the variable is re-declared on each repetition.&lt;br /&gt;
For $i = 1 To 10 ; $i is in &#039;loop scope.&#039;&lt;br /&gt;
	Local $iInt = $i&lt;br /&gt;
Next&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $iInt) ; This will display 10.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Declaring variables outside of loops is more efficent in the long run.&lt;br /&gt;
Local $iInt = 0&lt;br /&gt;
For $i = 1 To 10 ; $i is in &#039;loop scope.&#039;&lt;br /&gt;
	$iInt = $i&lt;br /&gt;
Next&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $iInt) ; This will display 10.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is no requirement to declare the iteration count variable in a loop:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Correct&lt;br /&gt;
Local Const $iCount = 99&lt;br /&gt;
Local $aArray[$iCount]&lt;br /&gt;
For $i = 0 To UBound($iCount) - 1 ; $i is only used in the loop, so there is no requirement to declare it.&lt;br /&gt;
	$aArray[$i] = $i&lt;br /&gt;
Next&lt;br /&gt;
&lt;br /&gt;
; Incorrect&lt;br /&gt;
Local Const $iCount = 99&lt;br /&gt;
Local $aArray[$iCount]&lt;br /&gt;
Local $i ; This is only used to store the iteration count value in the loop and therefore doesn&#039;t need to be declared. This is known as loop scope.&lt;br /&gt;
For $i = 0 To UBound($iCount) - 1&lt;br /&gt;
	$aArray[$i] = $i&lt;br /&gt;
Next&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
As you can see, there is the Const keyword in the example, we are going to talk about it.&lt;br /&gt;
&lt;br /&gt;
== Const, Static, Enum ==&lt;br /&gt;
&lt;br /&gt;
=== Const ===&lt;br /&gt;
We won&#039;t talk about the advantages of a constant variable, they are neglibible (for your information, an autoit constant variable is marked as read-only and remains a variable as read-only when compiled).&lt;br /&gt;
&lt;br /&gt;
The Const keyword may be used in a first by some of you to avoid re-assignments.&lt;br /&gt;
The best way to use them is not this last case, the constants should be used for real static variables, meaning that their value won&#039;t change regardless to the instance of the program.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Not recommended&lt;br /&gt;
Local Const $hGUI = GUICreate(&amp;quot;MyGUI&amp;quot;)&lt;br /&gt;
; The handle of the window is unique, it&#039;s generated by Windows and changes.&lt;br /&gt;
&lt;br /&gt;
; Recommended&lt;br /&gt;
Local Const $iMyAge = 19&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Static ===&lt;br /&gt;
Static variables are the solution to the global variables used in only one function.&lt;br /&gt;
e.g: Retain variable data once returned from a Function and only use that variable in that particular Function.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    SomeFunc() ; This will display a message box of 1, 1.&lt;br /&gt;
    SomeFunc() ; This will display a message box of 1, 2.&lt;br /&gt;
    SomeFunc() ; This will display a message box of 1, 3.&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
    ; This initialises a Static variable in Local scope. When a variable is declared just in Local scope (within a Function,)&lt;br /&gt;
    ; it&#039;s destroyed when the Function ends/returns. This isn&#039;t the case for a Static variable. The variable can&#039;t be&lt;br /&gt;
    ; accessed from anywhere else in the script apart from the Function it was declared in.&lt;br /&gt;
    Local Static $vVariableThatIsStatic = 0&lt;br /&gt;
    Local $vVariableThatIsLocal = 0&lt;br /&gt;
    $vVariableThatIsLocal += 1 ; This will always be 1 as it was destroyed once returned from SomeFunc.&lt;br /&gt;
    $vVariableThatIsStatic += 1 ; This will increase by 1.&lt;br /&gt;
    MsgBox(4096, $vVariableThatIsLocal, $vVariableThatIsStatic)&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enum ===&lt;br /&gt;
This statement is often practical in certain situations:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Create variables in Local scope and enumerate through the variables. Default is to start from 0.&lt;br /&gt;
    Local Enum $eCat, $eDog, $eMouse, $eHamster ; $eHamster is equal to the value 3, not 4.&lt;br /&gt;
&lt;br /&gt;
    ; Create an array in Local scope with 4 elements.&lt;br /&gt;
    Local $aAnimalNames[4]&lt;br /&gt;
&lt;br /&gt;
    ; Assign each array element with the name of the respective animal. For example the name of the cat is Jasper.&lt;br /&gt;
    $aAnimalNames[$eCat] = &#039;Jasper&#039; ; $eCat is equal to 0, similar to using $aAnimalNames[0]&lt;br /&gt;
    $aAnimalNames[$eDog] = &#039;Beethoven&#039; ; $eDog is equal to 1, similar to using $aAnimalNames[1]&lt;br /&gt;
    $aAnimalNames[$eMouse] = &#039;Pinky&#039; ; $eMouse is equal to 2, similar to using $aAnimalNames[2]&lt;br /&gt;
    $aAnimalNames[$eHamster] = &#039;Fidget&#039; ; $eHamster is equal to 3, similar to using $aAnimalNames[3]&lt;br /&gt;
&lt;br /&gt;
    ; Display the values of the array.&lt;br /&gt;
    MsgBox($MB_SYSTEMMODAL, &#039;&#039;, &#039;$aAnimalNames[$eCat] = &#039; &amp;amp; $aAnimalNames[$eCat] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;$aAnimalNames[$eDog] = &#039; &amp;amp; $aAnimalNames[$eDog] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;$aAnimalNames[$eMouse] = &#039; &amp;amp; $aAnimalNames[$eMouse] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;$aAnimalNames[$eHamster] = &#039; &amp;amp; $aAnimalNames[$eHamster] &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    ; Sometimes using this approach for accessing an element is more practical than using a numerical value, due to the fact changing the index value of&lt;br /&gt;
    ; the enum constant has no affect on it&#039;s position in the array. Therefore changing the location of $eCat in the array is as simple as changing the order&lt;br /&gt;
    ; it appears in the initial declaration e.g.&lt;br /&gt;
&lt;br /&gt;
    ; Local Enum $eDog, $eMouse, $eCat, $eHamster&lt;br /&gt;
&lt;br /&gt;
    ; Now $eCat is the 2nd element in the array. If you were using numerical values, you would have to manually change all references of $aAnimalNames[0] to&lt;br /&gt;
    ; $aAnimalNames[2], as well as for the other elements which have now shifted.&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Au3Check directive ==&lt;br /&gt;
As you may know (and we hope), the Au3Check tool checks your code for syntax errors, variables used without being declared etc. which is a good thing to fix your script.&lt;br /&gt;
&lt;br /&gt;
With the official custom directive used to check the helpfile examples/includes, you can apply the good coding practices listed above:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Magic Numbers ==&lt;br /&gt;
Magic numbers are arbitrary numbers interspersed throughout a program&#039;s source code which do not have an associated identifier. The downside to this is not being able to derive a meaning from the number. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
MsgBox(262144, &amp;quot;Magic Numbers&amp;quot;, &amp;quot;It&#039;s Adventure Time!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In this example, the magic number is 262144 with the identifier being $MB_TOPMOST according to the helpfile.&lt;br /&gt;
&lt;br /&gt;
The corrected example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
MsgBox($MB_TOPMOST, &amp;quot;Magic Numbers&amp;quot;, &amp;quot;It&#039;s Adventure Time!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Imagine you&#039;re a new user to AutoIt and you come across this code, where would you find -3, -4 or -5 in the help file?&lt;br /&gt;
; Since AutoIt is relatively a new concept to you, your first thought isn&#039;t to search through all the include files, I mean&lt;br /&gt;
; why would you, the help file is there for a reason.&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUICtrlCreateLabel(&#039;Why magic numbers are counter productive.&#039;, 5, 5)&lt;br /&gt;
    GUICtrlSetState(Default, 128) ; Does this hide, show or disable it?&lt;br /&gt;
    GUICtrlSetState(Default, 64) ; Does this hide, show or disable it?&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case -3 ; Doesn&#039;t really tell much about what it does.&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
            Case -4, -5 ; Again, no idea what these are. MouseMove? MouseClick? Restore?&lt;br /&gt;
                MsgBox(4096, &#039;&#039;, &#039;Do something when this action takes place.&#039;)&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Did you understand the numbers were these:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUICtrlCreateLabel(&#039;Why magic numbers are counter productive.&#039;, 5, 5)&lt;br /&gt;
    GUICtrlSetState(Default, $GUI_DISABLE) ; Better, this is documented in the help file.&lt;br /&gt;
    GUICtrlSetState(Default, $GUI_ENABLE) ; Better, this is documented in the help file.&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE ; Better, this is documented in the help file. Ah, it&#039;s the close action.&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
            Case $GUI_EVENT_MINIMIZE, $GUI_EVENT_RESTORE ; Better, this is documented in the help file.&lt;br /&gt;
                MsgBox($MB_SYSTEMMODAL, &#039;&#039;, &#039;Do something when this action takes place.&#039;) ; Better, this is documented in the help file.&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Magic_number_(programming) Magic number (programming)]&lt;br /&gt;
&lt;br /&gt;
== Include-once directive ==&lt;br /&gt;
This one is designed for standard includes and UDFs, it&#039;s highly recommended to use it.&lt;br /&gt;
&lt;br /&gt;
Those includes may be included in more than one script of your project because they are needed for some includes or your script itself.&lt;br /&gt;
In that case, the code will be duplicated which is not a good thing especially if you have (and it&#039;s mainly the case) constants declared in those files, in so far as the constants cannot be redeclared/reassigned; same thing for functions.&lt;br /&gt;
&lt;br /&gt;
Put the directive in top of your UDF (library) to avoid itself to be included more than once :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include-once&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=AutoIt_Programs&amp;diff=12927</id>
		<title>AutoIt Programs</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=AutoIt_Programs&amp;diff=12927"/>
		<updated>2015-03-14T21:56:49Z</updated>

		<summary type="html">&lt;p&gt;Rt01: Add description for AutoIt Windows Screenshooter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this site is to provide a list of programs created in AutoIt. This list should contain only fully functional programs rather than pieces of code, or any type of library (UDF).&amp;lt;br /&amp;gt;&lt;br /&gt;
You can talk about this list [http://www.autoitscript.com/forum/index.php?showtopic=167824 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Directory tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153072-active-directory-tool-userinfo Active Directory Tool: UserInfo (by Marc)]&lt;br /&gt;
:The tool displays information for a specified user taken from the active directory. It offers additional functions like comparing group membership with other users, unlock an account etc.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts AD Audit (by water)]&lt;br /&gt;
:On one/multiple big sheet(s) you get users (columns) and groups (rows). The list is sorted descending by number of members so you get the users with most groups and the groups with most members on top of the page. You can filter by (multiple) samaccountname(s), department or you can create your own LDAP query filter. You can filter the resulting list of groups using a Regular Expression.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADAT - Active Directory Administration Tool (by water)]&lt;br /&gt;
:ADAT is a tool to simplify common AD administration tasks. Every administration task has its own tab. It is easy to add new functions (tabs) to the tool. Some often used functions are already available: list users, computers, OUs. File ADAT.ini can be customized to hold the AD logon information if necessary. By default the user running the script connects to the AD.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADCU - Active Directory Compare Users (by water)]&lt;br /&gt;
:ADCU displays two users and their group membership in two listviews. You can filter and export the data to Excel, Outlook mail and the clipboard.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADCG - Active Directory Compare Groups (by water)]&lt;br /&gt;
:ADGU displays two groups and their direct members in two listviews. You can filter and export the data to Excel, Outlook mail and the clipboard.&lt;br /&gt;
&lt;br /&gt;
== Desktop tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/80320-cop-color-picker-multi-value-color-picking COP - Color Picker - Multi value color picking (by KaFu)]&lt;br /&gt;
:Color Picker displays the color codes in six different formats, allows to copy them to the clipboard, picks color under mouse pointer by using a magnifier, moveable with keyboard cursor etc.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/134537-icu-icon-configuration-utility-updated-2013-may-24 ICU - Icon Configuration Utility (by KaFu)]&lt;br /&gt;
:Restore your desktop when the icons get &amp;quot;rearranged&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122941 AutoIt Windows Screenshooter (by UEZ)] &lt;br /&gt;
:Takes a screenshot from any visible window or any region of the desktop incl. freehand capturing. Allows to watermark captured image, send it to a printer or the clipboard etc. The program includes a basic image editor and a lot of additional functions.&lt;br /&gt;
&lt;br /&gt;
== File/Data/Image Processing/Viewers ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164383 AuPad (by MikahS) ]&lt;br /&gt;
:This is a notepad program written entirely in AutoIt. It has all the basics of notepad that you would expect. Also with Au3 Syntax Highlighting.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=110463 CSV-Editor (by funkey) ] &lt;br /&gt;
:This script allows to edit CSV-files. Just doubleclick the entry you want to edit.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144961 CSV Viewer (by llewxam) ]&lt;br /&gt;
:This tool displays CSV files when Excel is not available. It expands the columns to fit the text properly, which Excel doesn&#039;t by default.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118289 File Types Manager (by Yashied)] &lt;br /&gt;
:File Types Manager (FTM) is designed to viewing and editing properties (type name, icon, context menu, etc.) of the registered file types. This is something that is present in Windows XP by default and is available from the menu of any folder, but for some unknown reason is not in the Windows Vista/7.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80747 Search my files (byKaFu)]&lt;br /&gt;
:File searching and duplicates finder tool.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167578 SPDiff (by orbs) ]&lt;br /&gt;
:Single-pane character-based text comparison tool.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=165250 TextDiff (by wakillon) ]&lt;br /&gt;
:Side-by-side line-based text comparison tool.&lt;br /&gt;
&lt;br /&gt;
== Network tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115976 IP Scanner (by llewxam) ] &lt;br /&gt;
:This is a very useful tool when performing any sort of network diagnostics, as it will identify the router without you needing to use ipconfig to find it, you can ping specific locations inside or outside the network, save the scan results to a CSV file, resolve the public IP, and open the addresses using a web browser, Windows Explorer, or a Remote Desktop session.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105150 Network Connections Viewer (by trancexx) ]&lt;br /&gt;
:The script is analyzing every connection that your machine has. Either TCP or UDP. It&#039;ll give you port numbers, IP addresses, names of the processes issuing connections, their PIDs, locations on HD, user names, connection statuses, and hints on protocols for used ports (so that you know roughly what that connection is or could be). Also you will be given the ability to disable desired connections.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=88782 s!mpL3 LAN Messenger (by AoRaToS) ]&lt;br /&gt;
:s!mpL3 LAN Messenger is a simple to use, small, serverless messenger program designed and developed to offer chat communication over Local Area Networks. No installation is needed to make it work.&lt;br /&gt;
&lt;br /&gt;
== Misc/Others/Not yet grouped ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=139380 Computer Audit Tool (by llewxam)] &lt;br /&gt;
:All important physical information about the computer is gathered and displayed.&lt;br /&gt;
:The tool can be used as-is or a site-specific version can be compiled from the script itself, reducing time spent running the tool on each workstation and ensuring that the data is all appended to a single file for later review.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143890 TextCorrection (by AZJIO)] &lt;br /&gt;
:The program is designed to automatically edit the text typed in the wrong keyboard layout. It is useful if you use multiple (2) languages in the OS.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116735 TYPELIB Viewer (by trancexx)] &lt;br /&gt;
:It&#039;s a tool-script you would use when you want to know details about specific type libraries.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=168087 GifCamEx (by wakillon)] &lt;br /&gt;
:Easy and handy to use for create animated gif from capture.&lt;br /&gt;
&lt;br /&gt;
== Games Made in AutoIt ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153735 A list of Games made ​​in Autoit]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=AutoIt_Programs&amp;diff=12926</id>
		<title>AutoIt Programs</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=AutoIt_Programs&amp;diff=12926"/>
		<updated>2015-03-14T21:50:29Z</updated>

		<summary type="html">&lt;p&gt;Rt01: Removed &amp;quot;AD GetOUTreeView&amp;quot; - it is more a UDF then a program&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this site is to provide a list of programs created in AutoIt. This list should contain only fully functional programs rather than pieces of code, or any type of library (UDF).&amp;lt;br /&amp;gt;&lt;br /&gt;
You can talk about this list [http://www.autoitscript.com/forum/index.php?showtopic=167824 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Directory tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153072-active-directory-tool-userinfo Active Directory Tool: UserInfo (by Marc)]&lt;br /&gt;
:The tool displays information for a specified user taken from the active directory. It offers additional functions like comparing group membership with other users, unlock an account etc.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts AD Audit (by water)]&lt;br /&gt;
:On one/multiple big sheet(s) you get users (columns) and groups (rows). The list is sorted descending by number of members so you get the users with most groups and the groups with most members on top of the page. You can filter by (multiple) samaccountname(s), department or you can create your own LDAP query filter. You can filter the resulting list of groups using a Regular Expression.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADAT - Active Directory Administration Tool (by water)]&lt;br /&gt;
:ADAT is a tool to simplify common AD administration tasks. Every administration task has its own tab. It is easy to add new functions (tabs) to the tool. Some often used functions are already available: list users, computers, OUs. File ADAT.ini can be customized to hold the AD logon information if necessary. By default the user running the script connects to the AD.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADCU - Active Directory Compare Users (by water)]&lt;br /&gt;
:ADCU displays two users and their group membership in two listviews. You can filter and export the data to Excel, Outlook mail and the clipboard.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADCG - Active Directory Compare Groups (by water)]&lt;br /&gt;
:ADGU displays two groups and their direct members in two listviews. You can filter and export the data to Excel, Outlook mail and the clipboard.&lt;br /&gt;
&lt;br /&gt;
== Desktop tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/80320-cop-color-picker-multi-value-color-picking COP - Color Picker - Multi value color picking (by KaFu)]&lt;br /&gt;
:Color Picker displays the color codes in six different formats, allows to copy them to the clipboard, picks color under mouse pointer by using a magnifier, moveable with keyboard cursor etc.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/134537-icu-icon-configuration-utility-updated-2013-may-24 ICU - Icon Configuration Utility (by KaFu)]&lt;br /&gt;
:Restore your desktop when the icons get &amp;quot;rearranged&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122941 AutoIt Windows Screenshooter (by UEZ)] &lt;br /&gt;
:......some description to do.....&lt;br /&gt;
&lt;br /&gt;
== File/Data/Image Processing/Viewers ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164383 AuPad (by MikahS) ]&lt;br /&gt;
:This is a notepad program written entirely in AutoIt. It has all the basics of notepad that you would expect. Also with Au3 Syntax Highlighting.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=110463 CSV-Editor (by funkey) ] &lt;br /&gt;
:This script allows to edit CSV-files. Just doubleclick the entry you want to edit.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144961 CSV Viewer (by llewxam) ]&lt;br /&gt;
:This tool displays CSV files when Excel is not available. It expands the columns to fit the text properly, which Excel doesn&#039;t by default.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118289 File Types Manager (by Yashied)] &lt;br /&gt;
:File Types Manager (FTM) is designed to viewing and editing properties (type name, icon, context menu, etc.) of the registered file types. This is something that is present in Windows XP by default and is available from the menu of any folder, but for some unknown reason is not in the Windows Vista/7.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80747 Search my files (byKaFu)]&lt;br /&gt;
:File searching and duplicates finder tool.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167578 SPDiff (by orbs) ]&lt;br /&gt;
:Single-pane character-based text comparison tool.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=165250 TextDiff (by wakillon) ]&lt;br /&gt;
:Side-by-side line-based text comparison tool.&lt;br /&gt;
&lt;br /&gt;
== Network tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115976 IP Scanner (by llewxam) ] &lt;br /&gt;
:This is a very useful tool when performing any sort of network diagnostics, as it will identify the router without you needing to use ipconfig to find it, you can ping specific locations inside or outside the network, save the scan results to a CSV file, resolve the public IP, and open the addresses using a web browser, Windows Explorer, or a Remote Desktop session.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105150 Network Connections Viewer (by trancexx) ]&lt;br /&gt;
:The script is analyzing every connection that your machine has. Either TCP or UDP. It&#039;ll give you port numbers, IP addresses, names of the processes issuing connections, their PIDs, locations on HD, user names, connection statuses, and hints on protocols for used ports (so that you know roughly what that connection is or could be). Also you will be given the ability to disable desired connections.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=88782 s!mpL3 LAN Messenger (by AoRaToS) ]&lt;br /&gt;
:s!mpL3 LAN Messenger is a simple to use, small, serverless messenger program designed and developed to offer chat communication over Local Area Networks. No installation is needed to make it work.&lt;br /&gt;
&lt;br /&gt;
== Misc/Others/Not yet grouped ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=139380 Computer Audit Tool (by llewxam)] &lt;br /&gt;
:All important physical information about the computer is gathered and displayed.&lt;br /&gt;
:The tool can be used as-is or a site-specific version can be compiled from the script itself, reducing time spent running the tool on each workstation and ensuring that the data is all appended to a single file for later review.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143890 TextCorrection (by AZJIO)] &lt;br /&gt;
:The program is designed to automatically edit the text typed in the wrong keyboard layout. It is useful if you use multiple (2) languages in the OS.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116735 TYPELIB Viewer (by trancexx)] &lt;br /&gt;
:It&#039;s a tool-script you would use when you want to know details about specific type libraries.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=168087 GifCamEx (by wakillon)] &lt;br /&gt;
:Easy and handy to use for create animated gif from capture.&lt;br /&gt;
&lt;br /&gt;
== Games Made in AutoIt ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153735 A list of Games made ​​in Autoit]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=AutoIt_Programs&amp;diff=12925</id>
		<title>AutoIt Programs</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=AutoIt_Programs&amp;diff=12925"/>
		<updated>2015-03-11T22:44:22Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this site is to provide a list of programs created in AutoIt. This list should contain only fully functional programs rather than pieces of code, or any type of library (UDF).&amp;lt;br /&amp;gt;&lt;br /&gt;
You can talk about this list [http://www.autoitscript.com/forum/index.php?showtopic=167824 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active Directory tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153072-active-directory-tool-userinfo Active Directory Tool: UserInfo (by Marc)]&lt;br /&gt;
:The tool displays information for a specified user taken from the active directory. It offers additional functions like comparing group membership with other users, unlock an account etc.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts AD Audit (by water)]&lt;br /&gt;
:On one/multiple big sheet(s) you get users (columns) and groups (rows). The list is sorted descending by number of members so you get the users with most groups and the groups with most members on top of the page. You can filter by (multiple) samaccountname(s), department or you can create your own LDAP query filter. You can filter the resulting list of groups using a Regular Expression.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADAT - Active Directory Administration Tool (by water)]&lt;br /&gt;
:ADAT is a tool to simplify common AD administration tasks. Every administration task has its own tab. It is easy to add new functions (tabs) to the tool. Some often used functions are already available: list users, computers, OUs. File ADAT.ini can be customized to hold the AD logon information if necessary. By default the user running the script connects to the AD.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADCU - Active Directory Compare Users (by water)]&lt;br /&gt;
:ADCU displays two users and their group membership in two listviews. You can filter and export the data to Excel, Outlook mail and the clipboard.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts ADCG - Active Directory Compare Groups (by water)]&lt;br /&gt;
:ADGU displays two groups and their direct members in two listviews. You can filter and export the data to Excel, Outlook mail and the clipboard.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/110614-active-directory-example-scripts AD GetOUTreeView (by water)]&lt;br /&gt;
:Displays all OUs in a TreeView. You can specify the FQDN of the OU where to start if you just want to see a subset.&lt;br /&gt;
&lt;br /&gt;
== Desktop tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/80320-cop-color-picker-multi-value-color-picking COP - Color Picker - Multi value color picking (by KaFu)]&lt;br /&gt;
:Color Picker displays the color codes in six different formats, allows to copy them to the clipboard, picks color under mouse pointer by using a magnifier, moveable with keyboard cursor etc.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/134537-icu-icon-configuration-utility-updated-2013-may-24 ICU - Icon Configuration Utility (by KaFu)]&lt;br /&gt;
:Restore your desktop when the icons get &amp;quot;rearranged&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122941 AutoIt Windows Screenshooter (by UEZ)] &lt;br /&gt;
:......some description to do.....&lt;br /&gt;
&lt;br /&gt;
== File/Data/Image Processing/Viewers ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164383 AuPad (by MikahS) ]&lt;br /&gt;
:This is a notepad program written entirely in AutoIt. It has all the basics of notepad that you would expect. Also with Au3 Syntax Highlighting.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=110463 CSV-Editor (by funkey) ] &lt;br /&gt;
:This script allows to edit CSV-files. Just doubleclick the entry you want to edit.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144961 CSV Viewer (by llewxam) ]&lt;br /&gt;
:This tool displays CSV files when Excel is not available. It expands the columns to fit the text properly, which Excel doesn&#039;t by default.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118289 File Types Manager (by Yashied)] &lt;br /&gt;
:File Types Manager (FTM) is designed to viewing and editing properties (type name, icon, context menu, etc.) of the registered file types. This is something that is present in Windows XP by default and is available from the menu of any folder, but for some unknown reason is not in the Windows Vista/7.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=80747 Search my files (byKaFu)]&lt;br /&gt;
:File searching and duplicates finder tool.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167578 SPDiff (by orbs) ]&lt;br /&gt;
:Single-pane character-based text comparison tool.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=165250 TextDiff (by wakillon) ]&lt;br /&gt;
:Side-by-side line-based text comparison tool.&lt;br /&gt;
&lt;br /&gt;
== Network tools ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115976 IP Scanner (by llewxam) ] &lt;br /&gt;
:This is a very useful tool when performing any sort of network diagnostics, as it will identify the router without you needing to use ipconfig to find it, you can ping specific locations inside or outside the network, save the scan results to a CSV file, resolve the public IP, and open the addresses using a web browser, Windows Explorer, or a Remote Desktop session.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105150 Network Connections Viewer (by trancexx) ]&lt;br /&gt;
:The script is analyzing every connection that your machine has. Either TCP or UDP. It&#039;ll give you port numbers, IP addresses, names of the processes issuing connections, their PIDs, locations on HD, user names, connection statuses, and hints on protocols for used ports (so that you know roughly what that connection is or could be). Also you will be given the ability to disable desired connections.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=88782 s!mpL3 LAN Messenger (by AoRaToS) ]&lt;br /&gt;
:s!mpL3 LAN Messenger is a simple to use, small, serverless messenger program designed and developed to offer chat communication over Local Area Networks. No installation is needed to make it work.&lt;br /&gt;
&lt;br /&gt;
== Misc/Others/Not yet grouped ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=139380 Computer Audit Tool (by llewxam)] &lt;br /&gt;
:All important physical information about the computer is gathered and displayed.&lt;br /&gt;
:The tool can be used as-is or a site-specific version can be compiled from the script itself, reducing time spent running the tool on each workstation and ensuring that the data is all appended to a single file for later review.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143890 TextCorrection (by AZJIO)] &lt;br /&gt;
:The program is designed to automatically edit the text typed in the wrong keyboard layout. It is useful if you use multiple (2) languages in the OS.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116735 TYPELIB Viewer (by trancexx)] &lt;br /&gt;
:It&#039;s a tool-script you would use when you want to know details about specific type libraries.&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=168087 GifCamEx (by wakillon)] &lt;br /&gt;
:Easy and handy to use for create animated gif from capture.&lt;br /&gt;
&lt;br /&gt;
== Games Made in AutoIt ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153735 A list of Games made ​​in Autoit]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12923</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12923"/>
		<updated>2015-03-10T20:02:45Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is more than just a simple change log. It describes the history of AutoIt by travelling back in time and using all kind of sources to describe how AutoIt became what it is now. Enjoy!&lt;br /&gt;
== History ==&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate the installation of Windows NT 4 for a company, Jon had difficulties with installing some components which didn&#039;t take parameters from external programs, so Jon was searching for a program which could force button clicks and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released on [http://www.winfiles.com WinFiles.com] (now [http://download.cnet.com download.cnet.com]).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Win Help Homepage.png|600x400px|link=https://www.autoitscript.com/w/images/9/9b/Win_Help_Homepage.png|WinFiles.com (no longer exists)]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
From the official v1.0 helpfile:&amp;lt;br /&amp;gt;&lt;br /&gt;
:Advantages:&lt;br /&gt;
:* It&#039;s much smaller at 40Kb (600Kb smaller than ScriptIt).&lt;br /&gt;
:* It will be updated if problems are found.&lt;br /&gt;
:* The &amp;quot;Reveal&amp;quot; function is much better.&lt;br /&gt;
:* Non-active as well as active windows can be waited for.&lt;br /&gt;
:* Variable delays are possible (defined in milliseconds).&lt;br /&gt;
:* The time in between keystrokes can be altered.&lt;br /&gt;
:* When running an application, a working directory can be specified.&lt;br /&gt;
:* Will force Windows to be active under Win98/NT 5.0 (Use &amp;quot;WinActivate&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:Disadvantages:&lt;br /&gt;
:* The &amp;quot;[ADLIB]&amp;quot; section is not implemented.&lt;br /&gt;
:* The script file must be formatted correctly (no white spaces allowed on lines containing a command).&lt;br /&gt;
:* None of the Wilson WinBatch commands are featured. (But who used them anyway?).&lt;br /&gt;
:* Due to the command names I&#039;ve used, the scripts tend to be a little larger.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-2.png|600x400px|link=https://www.autoitscript.com/w/images/7/72/AutoIt-History-2.png|hiddensoft.com (First official site of AutoIt)]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh. In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-3.png|600x400px|text-top|link=https://www.autoitscript.com/w/images/0/05/AutoIt-History-3.png|AutoItScript.com was registered.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Input for this article has been taken from many sources. Amongst them are:&lt;br /&gt;
* AutoIt Help File ([https://www.autoitscript.com/autoit3/docs/intro/dev_history.htm AutoIt and Developer History])&lt;br /&gt;
* Who.is (website registration data)&lt;br /&gt;
* Archive.org (Old website images) [Reference note: The taken images are snippets of oldest available snapshot]&lt;br /&gt;
* Wikipedia (history of [https://en.wikipedia.org/wiki/AutoHotkey AutoHotKey])&lt;br /&gt;
* AutoIt forum&lt;br /&gt;
* Complete [https://www.autoitscript.com/autoit3/docs/autoit_changelog_complete.txt AutoIt Changelog]&lt;br /&gt;
&lt;br /&gt;
The content of this page was taken from a fan made post which can be found [http://www.autoitscript.com/forum/topic/167656-the-great-history-of-autoit/?p=1226885 here].&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12922</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12922"/>
		<updated>2015-03-10T20:02:14Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is more than just a simply change log. It describes the history of AutoIt by travelling back in time and using all kind of source to describe how AutoIt became what it is now. Enjoy!&lt;br /&gt;
== History ==&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate the installation of Windows NT 4 for a company, Jon had difficulties with installing some components which didn&#039;t take parameters from external programs, so Jon was searching for a program which could force button clicks and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released on [http://www.winfiles.com WinFiles.com] (now [http://download.cnet.com download.cnet.com]).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Win Help Homepage.png|600x400px|link=https://www.autoitscript.com/w/images/9/9b/Win_Help_Homepage.png|WinFiles.com (no longer exists)]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
From the official v1.0 helpfile:&amp;lt;br /&amp;gt;&lt;br /&gt;
:Advantages:&lt;br /&gt;
:* It&#039;s much smaller at 40Kb (600Kb smaller than ScriptIt).&lt;br /&gt;
:* It will be updated if problems are found.&lt;br /&gt;
:* The &amp;quot;Reveal&amp;quot; function is much better.&lt;br /&gt;
:* Non-active as well as active windows can be waited for.&lt;br /&gt;
:* Variable delays are possible (defined in milliseconds).&lt;br /&gt;
:* The time in between keystrokes can be altered.&lt;br /&gt;
:* When running an application, a working directory can be specified.&lt;br /&gt;
:* Will force Windows to be active under Win98/NT 5.0 (Use &amp;quot;WinActivate&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:Disadvantages:&lt;br /&gt;
:* The &amp;quot;[ADLIB]&amp;quot; section is not implemented.&lt;br /&gt;
:* The script file must be formatted correctly (no white spaces allowed on lines containing a command).&lt;br /&gt;
:* None of the Wilson WinBatch commands are featured. (But who used them anyway?).&lt;br /&gt;
:* Due to the command names I&#039;ve used, the scripts tend to be a little larger.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-2.png|600x400px|link=https://www.autoitscript.com/w/images/7/72/AutoIt-History-2.png|hiddensoft.com (First official site of AutoIt)]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh. In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-3.png|600x400px|text-top|link=https://www.autoitscript.com/w/images/0/05/AutoIt-History-3.png|AutoItScript.com was registered.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Input for this article has been taken from many sources. Amongst them are:&lt;br /&gt;
* AutoIt Help File ([https://www.autoitscript.com/autoit3/docs/intro/dev_history.htm AutoIt and Developer History])&lt;br /&gt;
* Who.is (website registration data)&lt;br /&gt;
* Archive.org (Old website images) [Reference note: The taken images are snippets of oldest available snapshot]&lt;br /&gt;
* Wikipedia (history of [https://en.wikipedia.org/wiki/AutoHotkey AutoHotKey])&lt;br /&gt;
* AutoIt forum&lt;br /&gt;
* Complete [https://www.autoitscript.com/autoit3/docs/autoit_changelog_complete.txt AutoIt Changelog]&lt;br /&gt;
&lt;br /&gt;
The content of this page was taken from a fan made post which can be found [http://www.autoitscript.com/forum/topic/167656-the-great-history-of-autoit/?p=1226885 here].&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12914</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12914"/>
		<updated>2015-03-08T11:03:00Z</updated>

		<summary type="html">&lt;p&gt;Rt01: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is more than just a simply change log. It describes the history of AutoIt by travelling back in time and using all kind of source to describe how AutoIt became what it is now. Enjoy!&lt;br /&gt;
== History ==&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate the installation of Windows NT 4 for a company, Jon had difficulties with installing some components which didn&#039;t take parameters from external programs, so Jon was searching for a program which could force button clicks and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
From the official v1.0 helpfile:&amp;lt;br /&amp;gt;&lt;br /&gt;
:Advantages:&lt;br /&gt;
:* It&#039;s much smaller at 40Kb (600Kb smaller than ScriptIt).&lt;br /&gt;
:* It will be updated if problems are found.&lt;br /&gt;
:* The &amp;quot;Reveal&amp;quot; function is much better.&lt;br /&gt;
:* Non-active as well as active windows can be waited for.&lt;br /&gt;
:* Variable delays are possible (defined in milliseconds).&lt;br /&gt;
:* The time in between keystrokes can be altered.&lt;br /&gt;
:* When running an application, a working directory can be specified.&lt;br /&gt;
:* Will force Windows to be active under Win98/NT 5.0 (Use &amp;quot;WinActivate&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:Disadvantages:&lt;br /&gt;
:* The &amp;quot;[ADLIB]&amp;quot; section is not implemented.&lt;br /&gt;
:* The script file must be formatted correctly (no white spaces allowed on lines containing a command).&lt;br /&gt;
:* None of the Wilson WinBatch commands are featured. (But who used them anyway?).&lt;br /&gt;
:* Due to the command names I&#039;ve used, the scripts tend to be a little larger.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-2.png|600x400px|link=https://www.autoitscript.com/w/images/7/72/AutoIt-History-2.png|hiddensoft.com (First official site of AutoIt)]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh. In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-3.png|600x400px|text-top|link=https://www.autoitscript.com/w/images/0/05/AutoIt-History-3.png|AutoItScript.com was registered.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Input for this article has been taken from many sources. Amongst them are:&lt;br /&gt;
* AutoIt Help File ([https://www.autoitscript.com/autoit3/docs/intro/dev_history.htm AutoIt and Developer History])&lt;br /&gt;
* Who.is (website registration data)&lt;br /&gt;
* Archive.org (Old website images) [Reference note: The taken images are snippets of oldest available snapshot]&lt;br /&gt;
* Wikipedia (history of [https://en.wikipedia.org/wiki/AutoHotkey Chris Mallett])&lt;br /&gt;
* AutoIt forum&lt;br /&gt;
* Complete [https://www.autoitscript.com/autoit3/docs/autoit_changelog_complete.txt AutoIt Changelog]&lt;br /&gt;
&lt;br /&gt;
The content of this page was taken from a fan made post which can be found [http://www.autoitscript.com/forum/topic/167656-the-great-history-of-autoit/?p=1226885 here].&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Best_coding_practices&amp;diff=12911</id>
		<title>Best coding practices</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Best_coding_practices&amp;diff=12911"/>
		<updated>2015-03-08T09:11:16Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Outlined in this section is a detailed explanation of what are to be considered the best coding practices within AutoIt. These recommendations are based on accepted coding practices common to a number of other programming languages. You do not need to follow them, but it is recommended that you do.&lt;br /&gt;
&lt;br /&gt;
A few notes:&lt;br /&gt;
* You must use the latest version of AutoIt (v3.3.10.0 or above) to run the examples below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Names of Variables ==&lt;br /&gt;
The variable naming convention used in AutoIt is based on [http://en.wikipedia.org/wiki/Hungarian_notation Apps Hungarian notation]. The prefix defines the logical data type rather than the physical data type: in this way, it gives a hint as to what the variable&#039;s purpose is, or what it represents. The prefix does not encode the actual data type: this occurs during assignment. See the table below for accepted standards.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! prefix !! covering type !! example&lt;br /&gt;
|-&lt;br /&gt;
| i || Integer || $iInteger = 10&lt;br /&gt;
|-&lt;br /&gt;
| f || Floating point || $fFloat = 0.123&lt;br /&gt;
|-&lt;br /&gt;
| n || General number (no preference) || $nNumber = 0&lt;br /&gt;
|-&lt;br /&gt;
| a || Arrays || $aArray[0]&lt;br /&gt;
|-&lt;br /&gt;
| m || Maps || $mMap[]&lt;br /&gt;
|-&lt;br /&gt;
| s || Strings (chars included) || $sString = &amp;quot;hello world&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| b || Booleans || $bBool = True&lt;br /&gt;
|-&lt;br /&gt;
| d || Binaries || $dBinary = Binary(&amp;quot;0x80000000&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| id || An AutoIt controlID || $idButton = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 5, 5)&lt;br /&gt;
|-&lt;br /&gt;
| h || Handles (and GUI handles) || $hGUI = GUICreate(&amp;quot;My GUI&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| fu || Functions || $fuMessage = MsgBox&lt;br /&gt;
|-&lt;br /&gt;
| p || Pointers || $pRect = DllStructGetPtr($tRECT)&lt;br /&gt;
|-&lt;br /&gt;
| tag || Structures definition || $tagDATE = &amp;quot;struct; word Year;word Month;word Dow;word Day; endstruct&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| t || Structures || $t = 0&lt;br /&gt;
|-&lt;br /&gt;
| o || Objects || $oShell = ObjCreate(&amp;quot;shell.application&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| v || Variant || $vData = ClipGet()&lt;br /&gt;
|-&lt;br /&gt;
| e || Enumerations || Enum $e1st = 1, $e2nd, $e3rd&lt;br /&gt;
|-&lt;br /&gt;
| k || Keywords || $kKeyword = Default&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Variables are named following this schema:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! dollar prefix !! type (lower case) !! [optional] subtype (lower case) !! var name (first letter in upper case)&lt;br /&gt;
|-&lt;br /&gt;
| $ || a || h || Handles&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Assign a local variable the integer 7.&lt;br /&gt;
Local $iWeekDays = 7&lt;br /&gt;
&lt;br /&gt;
; Assign a local variable the value of Pi.&lt;br /&gt;
Local $fPi = 3.14159265358979&lt;br /&gt;
&lt;br /&gt;
; Assign a local variable an array of strings.&lt;br /&gt;
Local $asArray[7] = [&#039;mon&#039;, &#039;tue&#039;, &#039;wed&#039;, &#039;thu&#039;, &#039;fri&#039;, &#039;sat&#039;, &#039;sun&#039;]&lt;br /&gt;
&lt;br /&gt;
; Assign a local variable an array of numbers.&lt;br /&gt;
Local $anArray[4] = [0, 0.25, 3 / 4, 12]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variable Initialization ==&lt;br /&gt;
When initializing variables there are several points to consider. It is bad practice to hog memory by holding data which is not immediately required. It is therefore recommended that you declare and initialize variables immediately prior to use. If you wish to assign a default value to a variable which you intend to overwrite later, then the data should be of the same (or the most logical representation of its) type and use as little memory as possible.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Inconsistent data types are considered bad.&lt;br /&gt;
Local $iInteger = &amp;quot;0&amp;quot;&lt;br /&gt;
Local $sString = False&lt;br /&gt;
&lt;br /&gt;
; Correct initialization&lt;br /&gt;
Local $iInteger = 0&lt;br /&gt;
Local $sString = &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To reduce bloat, multiple variables can be declared on a single line. When declaring multiple variables on the same line, it is generally recommended that you stick to declaring one data type on each line. The intention here is to make the code easier to follow, however the best layout will vary according to circumstance.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Not recommended&lt;br /&gt;
Local $sString = &amp;quot;&amp;quot;, $iInteger = 0, $asArray = [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;] ; Mixed data types&lt;br /&gt;
&lt;br /&gt;
; Recommended&lt;br /&gt;
Local $iLeft = 10, $iTop = 10 ; integers&lt;br /&gt;
Local $idGo = GUICtrlCreateButton(&amp;quot;Go&amp;quot;, $iLeft, $iTop), $idQuit = GUICtrlCreateButton(&amp;quot;Quit&amp;quot;, 50, 10) ; controlIDs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In some languages it is essential to initialize variables on declaration, but this is not the case with AutoIt. Regarding data type, variables declared without being initialized should be considered as being undefined.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scopes of Variables ==&lt;br /&gt;
To make the transition, the variables are also named according to their scope.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Global UDF variable !! Global variable !! Local variable&lt;br /&gt;
|-&lt;br /&gt;
| $g__iSomeVar || $g_iSomeVar || $iSomeVar&lt;br /&gt;
|}&lt;br /&gt;
With this method, you will avoid non wanted re-assignments.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Assign a Global variable the number 0.&lt;br /&gt;
Global $iSomeVar1 = 0&lt;br /&gt;
; Assign a Global variable the number 5.&lt;br /&gt;
Global $_iSomeVar2 = 5&lt;br /&gt;
&lt;br /&gt;
SomeFunc()&lt;br /&gt;
&lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	; Assign Local variables respectively the numbers 3 and 4.&lt;br /&gt;
	Local $iSomeVar1 = 3, $iSomeVar2 = 4&lt;br /&gt;
&lt;br /&gt;
	; Note: The user inadvertently re-assigned the global variable $iSomeVar1, because this one is not named as &amp;quot;global&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
	; Display the value of $iSomeVar1.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $iSomeVar1: &amp;quot; &amp;amp; $iSomeVar1)&lt;br /&gt;
&lt;br /&gt;
	; Display the value of $iSomeVar2.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $iSomeVar2: &amp;quot; &amp;amp; $iSomeVar2)&lt;br /&gt;
&lt;br /&gt;
	; Display the value of $_iSomeVar2.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $_iSomeVar2: &amp;quot; &amp;amp; $_iSomeVar2)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A variable declared globally (with the Global keyword) is visible anywhere in the script.&amp;lt;br /&amp;gt;Always declare your global variables in the global scope, not in the functions. It will prevent another function to use it before its declaration and the declaration is implicit (see [[#jumpsec1|examples]]).&lt;br /&gt;
&lt;br /&gt;
* A variable declared locally (with the Local keyword), has a visibility which depends of the scope where it&#039;s declared.&lt;br /&gt;
:Declaration in the global scope: the variable is nonetheless visible everywhere; declare it as Local if this one is only used in the same scope.&lt;br /&gt;
:Declaration in a function: the variable is visible by the function itself and nowhere else.&lt;br /&gt;
&lt;br /&gt;
Structure of a code scope:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Global scope.&lt;br /&gt;
&lt;br /&gt;
; Include the Constants file, it contains various constants; it&#039;s needed here for the $MB_SYSTEMMODAL flag of the MsgBox function).&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; This scope is either Global or Local, depending on where do you use the variables.&lt;br /&gt;
&lt;br /&gt;
; Assign a Global variable the number 0 (which corresponds to an initialization of a variable number), its scope is Global because it&#039;s used at least in one function.&lt;br /&gt;
Global $_iVar1 = 0&lt;br /&gt;
&lt;br /&gt;
; Assign a Local variable the string &amp;quot;foo&amp;quot;, its scope is Local because it&#039;s use is restricted to this scope.&lt;br /&gt;
Local $_sVar2 = &amp;quot;foo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Display the content of $_sVar2&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $sVar2: &amp;quot; &amp;amp; $_sVar2)&lt;br /&gt;
&lt;br /&gt;
; Re-assign a Local variable the string returned by the function MyFunc.&lt;br /&gt;
$_sVar2 = MyFunc()&lt;br /&gt;
&lt;br /&gt;
; Re-Display the content of $_sVar2&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $sVar2: &amp;quot; &amp;amp; $_sVar2)&lt;br /&gt;
&lt;br /&gt;
; Declare a function (its main utility is described later in Functions, we can see one here which is to create a Local scope).&lt;br /&gt;
Func MyFunc()&lt;br /&gt;
	; Local scope.&lt;br /&gt;
&lt;br /&gt;
	; Display the content of $_iVar1.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $_iVar1: &amp;quot; &amp;amp; $_iVar1)&lt;br /&gt;
&lt;br /&gt;
	; Assign a Local variable the string &amp;quot;bar&amp;quot;, its scope is Local because it&#039;s use is restricted to the function&#039;s scope.&lt;br /&gt;
	Local $sVar3 = &amp;quot;bar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	; Display the content of $sVar3.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $sVar3: &amp;quot; &amp;amp; $sVar3)&lt;br /&gt;
&lt;br /&gt;
	; Return the $sVar3 content, it will be visible (if used) to the scope where the function is called.&lt;br /&gt;
	Return $sVar3&lt;br /&gt;
EndFunc   ;==&amp;gt;MyFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Concerning the Dim keyword, its recommended usage is limited to empty an existing array (Example 1) or to redeclare a function parameter (Example 2).&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Include the Array UDF, it&#039;s needed here for the _ArrayDisplay function.&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
; Assign a Local variable an array containing numbers with a size of 5.&lt;br /&gt;
; Note than an array is based 0 index, to access the first element the code is: $aiArray[0].&lt;br /&gt;
Local $aArray[5] = [1, 2, 3, 4, 5]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
 &lt;br /&gt;
; Empty the array (and keep its size).&lt;br /&gt;
Dim $aArray[5]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Remark: The variable type of the emptied array is a string, every variable non initialized is a string.&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Call MyFunc with default parameters ($vParam1 = 0).&lt;br /&gt;
MyFunc()&lt;br /&gt;
&lt;br /&gt;
; Assign a Local variable an array containing integers.&lt;br /&gt;
Local $aiArray[3] = [3, 4, 5]&lt;br /&gt;
; Call MyFunc with $aiArray as parameter ($vParam1 = $aiArray).&lt;br /&gt;
MyFunc($aiArray)&lt;br /&gt;
&lt;br /&gt;
Func MyFunc($vParam1 = 0)&lt;br /&gt;
    ; If $vParam1 is NOT an array then redeclare it to an array.&lt;br /&gt;
    If IsArray($vParam1) = 0 Then&lt;br /&gt;
        Dim $vParam1[3] = [0, 1, 2]&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Display the array.&lt;br /&gt;
    _ArrayDisplay($vParam1)&lt;br /&gt;
EndFunc   ;==&amp;gt;MyFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for the ReDim keyword, limit its use to resize an array you want to keep its content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Include the Array UDF, it&#039;s needed here for the _ArrayDisplay function.&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
; Assign a Local variable an array containing numbers with a size of 5.&lt;br /&gt;
; Note than an array is based 0 index, to access the first element the code is: $aiArray[0].&lt;br /&gt;
Local $aArray[5] = [1, 2, 3, 4, 5]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
 &lt;br /&gt;
; Resize the array (and keep its content).&lt;br /&gt;
ReDim $aArray[3]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why using Dim over Local/Global is not always a good option:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Dim $vVariableThatIsGlobal = &amp;quot;This is a variable that has &amp;quot;&amp;quot;Program Scope&amp;quot;&amp;quot; aka Global.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;An example of why Dim can cause more problems than solve them.&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
Example()&lt;br /&gt;
 &lt;br /&gt;
Func Example()&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, $vVariableThatIsGlobal) ; That looks alright to me as it displays the following text: This is a variable that has &amp;quot;Program Scope&amp;quot; aka Global.&lt;br /&gt;
 &lt;br /&gt;
	Local $vReturn = SomeFunc() ; Call some random function.&lt;br /&gt;
 &lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, $vReturn, $vVariableThatIsGlobal) ; The Global variable ($vVariableThatIsGlobal) changed because I totally forgot I had a duplicate variable name in &amp;quot;SomeFunc&amp;quot;.&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
 &lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	; This should create a variable in Local scope if the variable name doesn&amp;quot;t already exist.&lt;br /&gt;
	; For argument sake I totally forgot that I declared a variable already with the same name.&lt;br /&gt;
	; Well I only want this to be changed in the function and not the variable at the top of the script.&lt;br /&gt;
	; Should be OK right? Think again.&lt;br /&gt;
	Dim $vVariableThatIsGlobal = &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
	For $i = 1 To 10&lt;br /&gt;
		$vVariableThatIsGlobal &amp;amp;= $i ; This will return 12345678910 totally wiping the previous contents of $vVariableThatIsGlobal.&lt;br /&gt;
	Next&lt;br /&gt;
	Return $vVariableThatIsGlobal&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;jumpsec1&amp;quot;&amp;gt;Declaring Global variables in a Function is never a good idea:&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Calling Example() first will initialise the Global variable $vVariableThatIsGlobal and therefore calling SomeFunc() won&#039;t return an error.&lt;br /&gt;
; Now look at Example 2.&lt;br /&gt;
Example()&lt;br /&gt;
 &lt;br /&gt;
Func Example()&lt;br /&gt;
	; Declaring a variable in a function can cause serious problems, hence why all Global variables should be declared at the top of a script.&lt;br /&gt;
	Global $vVariableThatIsGlobal = &#039;This is a variable that has &#039;&#039;File Scope&#039;&#039; aka Global.&#039;&lt;br /&gt;
	SomeFunc()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
 &lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $vVariableThatIsGlobal) ; As the variable was initialised this will not return an error.&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Calling SomeFunc() first will bypass the Global variable $vVariableThatIsGlobal being initialised and therefore AutoIt has no idea of what data the variable&lt;br /&gt;
; $vVariableThatIsGlobal contains.&lt;br /&gt;
SomeFunc()&lt;br /&gt;
 &lt;br /&gt;
Func Example()&lt;br /&gt;
	; Declaring a variable in a function can cause serious problems, hence why all Global variables should be declared at the top of a script.&lt;br /&gt;
	Global $vVariableThatIsGlobal = &#039;This is a variable that has &#039;&#039;File Scope&#039;&#039; aka Global.&#039;&lt;br /&gt;
	SomeFunc()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
 &lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $vVariableThatIsGlobal) ; As the variable wasn&#039;t initialised this will return an error of &amp;quot;variable used without being declared.&amp;quot;&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Declaring variables in loops (For, While, Do etc..) can have an affect on efficiency:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Declaring variables inside loops should be avoided as the variable is re-declared on each repetition.&lt;br /&gt;
For $i = 1 To 10 ; $i is in &#039;loop scope.&#039;&lt;br /&gt;
	Local $iInt = $i&lt;br /&gt;
Next&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $iInt) ; This will display 10.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Declaring variables outside of loops is more efficent in the long run.&lt;br /&gt;
Local $iInt = 0&lt;br /&gt;
For $i = 1 To 10 ; $i is in &#039;loop scope.&#039;&lt;br /&gt;
	$iInt = $i&lt;br /&gt;
Next&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $iInt) ; This will display 10.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is no requirement to declare the iteration count variable in a loop:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Correct&lt;br /&gt;
Local Const $iCount = 99&lt;br /&gt;
Local $aArray[$iCount]&lt;br /&gt;
For $i = 0 To UBound($iCount) - 1 ; $i is only used in the loop, so there is no requirement to declare it.&lt;br /&gt;
	$aArray[$i] = $i&lt;br /&gt;
Next&lt;br /&gt;
&lt;br /&gt;
; Incorrect&lt;br /&gt;
Local Const $iCount = 99&lt;br /&gt;
Local $aArray[$iCount]&lt;br /&gt;
Local $i ; This is only used to store the iteration count value in the loop and therefore doesn&#039;t need to be declared. This is known as loop scope.&lt;br /&gt;
For $i = 0 To UBound($iCount) - 1&lt;br /&gt;
	$aArray[$i] = $i&lt;br /&gt;
Next&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
As you can see, there is the Const keyword in the example, we are going to talk about it.&lt;br /&gt;
&lt;br /&gt;
== Const, Static, Enum ==&lt;br /&gt;
&lt;br /&gt;
=== Const ===&lt;br /&gt;
We won&#039;t talk about the advantages of a constant variable, they are neglibible (for your information, an autoit constant variable is marked as read-only and remains a variable as read-only when compiled).&lt;br /&gt;
&lt;br /&gt;
The Const keyword may be used in a first by some of you to avoid re-assignments.&lt;br /&gt;
The best way to use them is not this last case, the constants should be used for real static variables, meaning that their value won&#039;t change regardless to the instance of the program.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Not recommended&lt;br /&gt;
Local Const $hGUI = GUICreate(&amp;quot;MyGUI&amp;quot;)&lt;br /&gt;
; The handle of the window is unique, it&#039;s generated by Windows and changes.&lt;br /&gt;
&lt;br /&gt;
; Recommended&lt;br /&gt;
Local Const $iMyAge = 19&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Static ===&lt;br /&gt;
Static variables are the solution to the global variables used in only one function.&lt;br /&gt;
e.g: Retain variable data once returned from a Function and only use that variable in that particular Function.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    SomeFunc() ; This will display a message box of 1, 1.&lt;br /&gt;
    SomeFunc() ; This will display a message box of 1, 2.&lt;br /&gt;
    SomeFunc() ; This will display a message box of 1, 3.&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
    ; This initialises a Static variable in Local scope. When a variable is declared just in Local scope (within a Function,)&lt;br /&gt;
    ; it&#039;s destroyed when the Function ends/returns. This isn&#039;t the case for a Static variable. The variable can&#039;t be&lt;br /&gt;
    ; accessed from anywhere else in the script apart from the Function it was declared in.&lt;br /&gt;
    Local Static $vVariableThatIsStatic = 0&lt;br /&gt;
    Local $vVariableThatIsLocal = 0&lt;br /&gt;
    $vVariableThatIsLocal += 1 ; This will always be 1 as it was destroyed once returned from SomeFunc.&lt;br /&gt;
    $vVariableThatIsStatic += 1 ; This will increase by 1.&lt;br /&gt;
    MsgBox(4096, $vVariableThatIsLocal, $vVariableThatIsStatic)&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enum ===&lt;br /&gt;
This statement is often practical in certain situations:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Create variables in Local scope and enumerate through the variables. Default is to start from 0.&lt;br /&gt;
    Local Enum $eCat, $eDog, $eMouse, $eHamster ; $eHamster is equal to the value 3, not 4.&lt;br /&gt;
&lt;br /&gt;
    ; Create an array in Local scope with 4 elements.&lt;br /&gt;
    Local $aAnimalNames[4]&lt;br /&gt;
&lt;br /&gt;
    ; Assign each array element with the name of the respective animal. For example the name of the cat is Jasper.&lt;br /&gt;
    $aAnimalNames[$eCat] = &#039;Jasper&#039; ; $eCat is equal to 0, similar to using $aAnimalNames[0]&lt;br /&gt;
    $aAnimalNames[$eDog] = &#039;Beethoven&#039; ; $eDog is equal to 1, similar to using $aAnimalNames[1]&lt;br /&gt;
    $aAnimalNames[$eMouse] = &#039;Pinky&#039; ; $eMouse is equal to 2, similar to using $aAnimalNames[2]&lt;br /&gt;
    $aAnimalNames[$eHamster] = &#039;Fidget&#039; ; $eHamster is equal to 3, similar to using $aAnimalNames[3]&lt;br /&gt;
&lt;br /&gt;
    ; Display the values of the array.&lt;br /&gt;
    MsgBox($MB_SYSTEMMODAL, &#039;&#039;, &#039;$aAnimalNames[$eCat] = &#039; &amp;amp; $aAnimalNames[$eCat] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;$aAnimalNames[$eDog] = &#039; &amp;amp; $aAnimalNames[$eDog] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;$aAnimalNames[$eMouse] = &#039; &amp;amp; $aAnimalNames[$eMouse] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;$aAnimalNames[$eHamster] = &#039; &amp;amp; $aAnimalNames[$eHamster] &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    ; Sometimes using this approach for accessing an element is more practical than using a numerical value, due to the fact changing the index value of&lt;br /&gt;
    ; the enum constant has no affect on it&#039;s position in the array. Therefore changing the location of $eCat in the array is as simple as changing the order&lt;br /&gt;
    ; it appears in the initial declaration e.g.&lt;br /&gt;
&lt;br /&gt;
    ; Local Enum $eDog, $eMouse, $eCat, $eHamster&lt;br /&gt;
&lt;br /&gt;
    ; Now $eCat is the 2nd element in the array. If you were using numerical values, you would have to manually change all references of $aAnimalNames[0] to&lt;br /&gt;
    ; $aAnimalNames[2], as well as for the other elements which have now shifted.&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Au3Check directive ==&lt;br /&gt;
As you may know (and we hope), the Au3Check tool checks your code for syntax errors, variables used without being declared etc. which is a good thing to fix your script.&lt;br /&gt;
&lt;br /&gt;
With the official custom directive used to check the helpfile examples/includes, you can apply the good coding practices listed above:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Magic Numbers ==&lt;br /&gt;
Magic numbers are arbitrary numbers interspersed throughout a program&#039;s source code which do not have an associated identifier. The downside to this is not being able to derive a meaning from the number. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
MsgBox(262144, &amp;quot;Magic Numbers&amp;quot;, &amp;quot;It&#039;s Adventure Time!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In this example, the magic number is 262144 with the identifier being $MB_TOPMOST according to the helpfile.&lt;br /&gt;
&lt;br /&gt;
The corrected example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
MsgBox($MB_TOPMOST, &amp;quot;Magic Numbers&amp;quot;, &amp;quot;It&#039;s Adventure Time!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Imagine you&#039;re a new user to AutoIt and you come across this code, where would you find -3, -4 or -5 in the help file?&lt;br /&gt;
; Since AutoIt is relatively a new concept to you, your first thought isn&#039;t to search through all the include files, I mean&lt;br /&gt;
; why would you, the help file is there for a reason.&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUICtrlCreateLabel(&#039;Why magic numbers are counter productive.&#039;, 5, 5)&lt;br /&gt;
    GUICtrlSetState(Default, 128) ; Does this hide, show or disable it?&lt;br /&gt;
    GUICtrlSetState(Default, 64) ; Does this hide, show or disable it?&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case -3 ; Doesn&#039;t really tell much about what it does.&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
            Case -4, -5 ; Again, no idea what these are. MouseMove? MouseClick? Restore?&lt;br /&gt;
                MsgBox(4096, &#039;&#039;, &#039;Do something when this action takes place.&#039;)&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Did you understand the numbers were these:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUICtrlCreateLabel(&#039;Why magic numbers are counter productive.&#039;, 5, 5)&lt;br /&gt;
    GUICtrlSetState(Default, $GUI_DISABLE) ; Better, this is documented in the help file.&lt;br /&gt;
    GUICtrlSetState(Default, $GUI_ENABLE) ; Better, this is documented in the help file.&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE ; Better, this is documented in the help file. Ah, it&#039;s the close action.&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
            Case $GUI_EVENT_MINIMIZE, $GUI_EVENT_RESTORE ; Better, this is documented in the help file.&lt;br /&gt;
                MsgBox($MB_SYSTEMMODAL, &#039;&#039;, &#039;Do something when this action takes place.&#039;) ; Better, this is documented in the help file.&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Magic_number_(programming) Magic number (programming)]&lt;br /&gt;
&lt;br /&gt;
== Include-once directive ==&lt;br /&gt;
This one is designed for standard includes and UDFs, it&#039;s highly recommended to use it.&lt;br /&gt;
&lt;br /&gt;
Those includes may be included in more than one script of your project because they are needed for some includes or your script itself.&lt;br /&gt;
In that case, the code will be duplicated which is not a good thing especially if you have (and it&#039;s mainly the case) constants declared in those files, in so far as the constants cannot be redeclared/reassigned; same thing for functions.&lt;br /&gt;
&lt;br /&gt;
Put the directive in top of your UDF (library) to avoid itself to be included more than once :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include-once&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Best_coding_practices&amp;diff=12910</id>
		<title>Best coding practices</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Best_coding_practices&amp;diff=12910"/>
		<updated>2015-03-08T09:08:09Z</updated>

		<summary type="html">&lt;p&gt;Rt01: Fixed a few typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Outlined in this section is a detailed explanation of what are to be considered the best coding practices within AutoIt. These recommendations are based on accepted coding practices common to a number of other programming languages. You do not need to follow them, but it is recommended that you do.&lt;br /&gt;
&lt;br /&gt;
A few notes:&lt;br /&gt;
* You must use the latest version of AutoIt (v3.3.10.0 or above) to run the examples below.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Names of Variables ==&lt;br /&gt;
The variable naming convention used in AutoIt is based on [http://en.wikipedia.org/wiki/Hungarian_notation Apps Hungarian notation]. The prefix defines the logical data type rather than the physical data type: in this way, it gives a hint as to what the variable&#039;s purpose is, or what it represents. The prefix does not encode the actual data type: this occurs during assignment. See the table below for accepted standards.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! prefix !! covering type !! example&lt;br /&gt;
|-&lt;br /&gt;
| i || Integer || $iInteger = 10&lt;br /&gt;
|-&lt;br /&gt;
| f || Floating point || $fFloat = 0.123&lt;br /&gt;
|-&lt;br /&gt;
| n || General number (no preference) || $nNumber = 0&lt;br /&gt;
|-&lt;br /&gt;
| a || Arrays || $aArray[0]&lt;br /&gt;
|-&lt;br /&gt;
| m || Maps || $mMap[]&lt;br /&gt;
|-&lt;br /&gt;
| s || Strings (chars included) || $sString = &amp;quot;hello world&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| b || Booleans || $bBool = True&lt;br /&gt;
|-&lt;br /&gt;
| d || Binaries || $dBinary = Binary(&amp;quot;0x80000000&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| id || An AutoIt controlID || $idButton = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 5, 5)&lt;br /&gt;
|-&lt;br /&gt;
| h || Handles (and GUI handles) || $hGUI = GUICreate(&amp;quot;My GUI&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| fu || Functions || $fuMessage = MsgBox&lt;br /&gt;
|-&lt;br /&gt;
| p || Pointers || $pRect = DllStructGetPtr($tRECT)&lt;br /&gt;
|-&lt;br /&gt;
| tag || Structures definition || $tagDATE = &amp;quot;struct; word Year;word Month;word Dow;word Day; endstruct&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| t || Structures || $t = 0&lt;br /&gt;
|-&lt;br /&gt;
| o || Objects || $oShell = ObjCreate(&amp;quot;shell.application&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| v || Variant || $vData = ClipGet()&lt;br /&gt;
|-&lt;br /&gt;
| e || Enumerations || Enum $e1st = 1, $e2nd, $e3rd&lt;br /&gt;
|-&lt;br /&gt;
| k || Keywords || $kKeyword = Default&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Variables are named following this schema:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! dollar prefix !! type (lower case) !! [optional] subtype (lower case) !! var name (first letter in upper case)&lt;br /&gt;
|-&lt;br /&gt;
| $ || a || h || Handles&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Assign a local variable the integer 7.&lt;br /&gt;
Local $iWeekDays = 7&lt;br /&gt;
&lt;br /&gt;
; Assign a local variable the value of Pi.&lt;br /&gt;
Local $fPi = 3.14159265358979&lt;br /&gt;
&lt;br /&gt;
; Assign a local variable an array of strings.&lt;br /&gt;
Local $asArray[7] = [&#039;mon&#039;, &#039;tue&#039;, &#039;wed&#039;, &#039;thu&#039;, &#039;fri&#039;, &#039;sat&#039;, &#039;sun&#039;]&lt;br /&gt;
&lt;br /&gt;
; Assign a local variable an array of numbers.&lt;br /&gt;
Local $anArray[4] = [0, 0.25, 3 / 4, 12]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variable Initialization ==&lt;br /&gt;
When initializing variables there are several points to consider. It is bad practice to hog memory by holding data which is not immediately required. It is therefore recommended that you declare and initialize variables immediately prior to use. If you wish to assign a default value to a variable which you intend to overwrite later, then the data should be of the same (or the most logical representation of its) type and use as little memory as possible.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Inconsistent data types are considered bad.&lt;br /&gt;
Local $iInteger = &amp;quot;0&amp;quot;&lt;br /&gt;
Local $sString = False&lt;br /&gt;
&lt;br /&gt;
; Correct initialization&lt;br /&gt;
Local $iInteger = 0&lt;br /&gt;
Local $sString = &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To reduce bloat, multiple variables can be declared on a single line. When declaring multiple variables on the same line, it is generally recommended that you stick to declaring one data type on each line. The intention here is to make the code easier to follow, however the best layout will vary according to circumstance.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Not recommended&lt;br /&gt;
Local $sString = &amp;quot;&amp;quot;, $iInteger = 0, $asArray = [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;] ; Mixed data types&lt;br /&gt;
&lt;br /&gt;
; Recommended&lt;br /&gt;
Local $iLeft = 10, $iTop = 10 ; integers&lt;br /&gt;
Local $idGo = GUICtrlCreateButton(&amp;quot;Go&amp;quot;, $iLeft, $iTop), $idQuit = GUICtrlCreateButton(&amp;quot;Quit&amp;quot;, 50, 10) ; controlIDs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In some languages it is essential to initialize variables on declaration, but this is not the case with AutoIt. Regarding data type, variables declared without being initialized should be considered as being undefined.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scopes of Variables ==&lt;br /&gt;
To make the transition, the variables are also named according to their scope.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Global UDF variable !! Global variable !! Local variable&lt;br /&gt;
|-&lt;br /&gt;
| $g__iSomeVar || $g_iSomeVar || $iSomeVar&lt;br /&gt;
|}&lt;br /&gt;
With this method, you will avoid non wanted re-assignments.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Assign a Global variable the number 0.&lt;br /&gt;
Global $iSomeVar1 = 0&lt;br /&gt;
; Assign a Global variable the number 5.&lt;br /&gt;
Global $_iSomeVar2 = 5&lt;br /&gt;
&lt;br /&gt;
SomeFunc()&lt;br /&gt;
&lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	; Assign Local variables respectively the numbers 3 and 4.&lt;br /&gt;
	Local $iSomeVar1 = 3, $iSomeVar2 = 4&lt;br /&gt;
&lt;br /&gt;
	; Note: The user inadvertently re-assigned the global variable $iSomeVar1, because this one is not named as &amp;quot;global&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
	; Display the value of $iSomeVar1.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $iSomeVar1: &amp;quot; &amp;amp; $iSomeVar1)&lt;br /&gt;
&lt;br /&gt;
	; Display the value of $iSomeVar2.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $iSomeVar2: &amp;quot; &amp;amp; $iSomeVar2)&lt;br /&gt;
&lt;br /&gt;
	; Display the value of $_iSomeVar2.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $_iSomeVar2: &amp;quot; &amp;amp; $_iSomeVar2)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A variable declared globally (with the Global keyword) is visible anywhere in the script.&amp;lt;br /&amp;gt;Always declare your global variables in the global scope, not in the functions. It will prevent another function to use it before its declaration and the declaration is implicit (see [[#jumpsec1|examples]]).&lt;br /&gt;
&lt;br /&gt;
* A variable declared locally (with the Local keyword), has a visibility which depends of the scope where it&#039;s declared.&lt;br /&gt;
:Declaration in the global scope: the variable is nonetheless visible everywhere; declare it as Local if this one is only used in the same scope.&lt;br /&gt;
:Declaration in a function: the variable is visible by the function itself and nowhere else.&lt;br /&gt;
&lt;br /&gt;
Structure of a code scope:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Global scope.&lt;br /&gt;
&lt;br /&gt;
; Include the Constants file, it contains various constants; it&#039;s needed here for the $MB_SYSTEMMODAL flag of the MsgBox function).&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; This scope is either Global or Local, depending on where do you use the variables.&lt;br /&gt;
&lt;br /&gt;
; Assign a Global variable the number 0 (which corresponds to an initialization of a variable number), its scope is Global because it&#039;s used at least in one function.&lt;br /&gt;
Global $_iVar1 = 0&lt;br /&gt;
&lt;br /&gt;
; Assign a Local variable the string &amp;quot;foo&amp;quot;, its scope is Local because it&#039;s use is restricted to this scope.&lt;br /&gt;
Local $_sVar2 = &amp;quot;foo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Display the content of $_sVar2&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $sVar2: &amp;quot; &amp;amp; $_sVar2)&lt;br /&gt;
&lt;br /&gt;
; Re-assign a Local variable the string returned by the function MyFunc.&lt;br /&gt;
$_sVar2 = MyFunc()&lt;br /&gt;
&lt;br /&gt;
; Re-Display the content of $_sVar2&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $sVar2: &amp;quot; &amp;amp; $_sVar2)&lt;br /&gt;
&lt;br /&gt;
; Declare a function (its main utility is described later in Functions, we can see one here which is to create a Local scope).&lt;br /&gt;
Func MyFunc()&lt;br /&gt;
	; Local scope.&lt;br /&gt;
&lt;br /&gt;
	; Display the content of $_iVar1.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $_iVar1: &amp;quot; &amp;amp; $_iVar1)&lt;br /&gt;
&lt;br /&gt;
	; Assign a Local variable the string &amp;quot;bar&amp;quot;, its scope is Local because it&#039;s use is restricted to the function&#039;s scope.&lt;br /&gt;
	Local $sVar3 = &amp;quot;bar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	; Display the content of $sVar3.&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Value of $sVar3: &amp;quot; &amp;amp; $sVar3)&lt;br /&gt;
&lt;br /&gt;
	; Return the $sVar3 content, it will be visible (if used) to the scope where the function is called.&lt;br /&gt;
	Return $sVar3&lt;br /&gt;
EndFunc   ;==&amp;gt;MyFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Concerning the Dim keyword, its recommended usage is limited to empty an existing array (Example 1) or to redeclare a function parameter (Example 2).&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Include the Array UDF, it&#039;s needed here for the _ArrayDisplay function.&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
; Assign a Local variable an array containing numbers with a size of 5.&lt;br /&gt;
; Note than an array is based 0 index, to access the first element the code is: $aiArray[0].&lt;br /&gt;
Local $aArray[5] = [1, 2, 3, 4, 5]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
 &lt;br /&gt;
; Empty the array (and keep its size).&lt;br /&gt;
Dim $aArray[5]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Remark: The variable type of the emptied array is a string, every variable non initialized is a string.&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Call MyFunc with default parameters ($vParam1 = 0).&lt;br /&gt;
MyFunc()&lt;br /&gt;
&lt;br /&gt;
; Assign a Local variable an array containing integers.&lt;br /&gt;
Local $aiArray[3] = [3, 4, 5]&lt;br /&gt;
; Call MyFunc with $aiArray as parameter ($vParam1 = $aiArray).&lt;br /&gt;
MyFunc($aiArray)&lt;br /&gt;
&lt;br /&gt;
Func MyFunc($vParam1 = 0)&lt;br /&gt;
    ; If $vParam1 is NOT an array then redeclare it to an array.&lt;br /&gt;
    If IsArray($vParam1) = 0 Then&lt;br /&gt;
        Dim $vParam1[3] = [0, 1, 2]&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Display the array.&lt;br /&gt;
    _ArrayDisplay($vParam1)&lt;br /&gt;
EndFunc   ;==&amp;gt;MyFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for the ReDim keyword, limit its use to resize an array you want to keep its content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Include the Array UDF, it&#039;s needed here for the _ArrayDisplay function.&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
; Assign a Local variable an array containing numbers with a size of 5.&lt;br /&gt;
; Note than an array is based 0 index, to access the first element the code is: $aiArray[0].&lt;br /&gt;
Local $aArray[5] = [1, 2, 3, 4, 5]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
 &lt;br /&gt;
; Resize the array (and keep its content).&lt;br /&gt;
ReDim $aArray[3]&lt;br /&gt;
 &lt;br /&gt;
; Display the contents.&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why using Dim over Local/Global is not always a good option:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Dim $vVariableThatIsGlobal = &amp;quot;This is a variable that has &amp;quot;&amp;quot;Program Scope&amp;quot;&amp;quot; aka Global.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;An example of why Dim can cause more problems than solve them.&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
Example()&lt;br /&gt;
 &lt;br /&gt;
Func Example()&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, $vVariableThatIsGlobal) ; That looks alright to me as it displays the following text: This is a variable that has &amp;quot;Program Scope&amp;quot; aka Global.&lt;br /&gt;
 &lt;br /&gt;
	Local $vReturn = SomeFunc() ; Call some random function.&lt;br /&gt;
 &lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, $vReturn, $vVariableThatIsGlobal) ; The Global variable ($vVariableThatIsGlobal) changed because I totally forgot I had a duplicate variable name in &amp;quot;SomeFunc&amp;quot;.&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
 &lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	; This should create a variable in Local scope if the variable name doesn&amp;quot;t already exist.&lt;br /&gt;
	; For argument sake I totally forgot that I declared a variable already with the same name.&lt;br /&gt;
	; Well I only want this to be changed in the function and not the variable at the top of the script.&lt;br /&gt;
	; Should be OK right? Think again.&lt;br /&gt;
	Dim $vVariableThatIsGlobal = &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
	For $i = 1 To 10&lt;br /&gt;
		$vVariableThatIsGlobal &amp;amp;= $i ; This will return 12345678910 totally wiping the previous contents of $vVariableThatIsGlobal.&lt;br /&gt;
	Next&lt;br /&gt;
	Return $vVariableThatIsGlobal&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;jumpsec1&amp;quot;&amp;gt;Declaring Global variables in a Function is never a good idea:&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Calling Example() first will initialise the Global variable $vVariableThatIsGlobal and therefore calling SomeFunc() won&#039;t return an error.&lt;br /&gt;
; Now look at Example 2.&lt;br /&gt;
Example()&lt;br /&gt;
 &lt;br /&gt;
Func Example()&lt;br /&gt;
	; Declaring a variable in a function can cause serious problems, hence why all Global variables should be declared at the top of a script.&lt;br /&gt;
	Global $vVariableThatIsGlobal = &#039;This is a variable that has &#039;&#039;File Scope&#039;&#039; aka Global.&#039;&lt;br /&gt;
	SomeFunc()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
 &lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $vVariableThatIsGlobal) ; As the variable was initialised this will not return an error.&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Calling SomeFunc() first will bypass the Global variable $vVariableThatIsGlobal being initialised and therefore AutoIt has no idea of what data the variable&lt;br /&gt;
; $vVariableThatIsGlobal contains.&lt;br /&gt;
SomeFunc()&lt;br /&gt;
 &lt;br /&gt;
Func Example()&lt;br /&gt;
	; Declaring a variable in a function can cause serious problems, hence why all Global variables should be declared at the top of a script.&lt;br /&gt;
	Global $vVariableThatIsGlobal = &#039;This is a variable that has &#039;&#039;File Scope&#039;&#039; aka Global.&#039;&lt;br /&gt;
	SomeFunc()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
 &lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $vVariableThatIsGlobal) ; As the variable wasn&#039;t initialised this will return an error of &amp;quot;variable used without being declared.&amp;quot;&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Declaring variables in loops (For, While, Do etc..) can have an affect on efficiency:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Declaring variables inside loops should be avoided as the variable is re-declared on each repetition.&lt;br /&gt;
For $i = 1 To 10 ; $i is in &#039;loop scope.&#039;&lt;br /&gt;
	Local $iInt = $i&lt;br /&gt;
Next&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $iInt) ; This will display 10.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Declaring variables outside of loops is more efficent in the long run.&lt;br /&gt;
Local $iInt = 0&lt;br /&gt;
For $i = 1 To 10 ; $i is in &#039;loop scope.&#039;&lt;br /&gt;
	$iInt = $i&lt;br /&gt;
Next&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &#039;&#039;, $iInt) ; This will display 10.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is no requirement to declare the iteration count variable in a loop:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Correct&lt;br /&gt;
Local Const $iCount = 99&lt;br /&gt;
Local $aArray[$iCount]&lt;br /&gt;
For $i = 0 To UBound($iCount) - 1 ; $i is only used in the loop, so there is no requirement to declare it.&lt;br /&gt;
	$aArray[$i] = $i&lt;br /&gt;
Next&lt;br /&gt;
&lt;br /&gt;
; Incorrect&lt;br /&gt;
Local Const $iCount = 99&lt;br /&gt;
Local $aArray[$iCount]&lt;br /&gt;
Local $i ; This is only used to store the iteration count value in the loop and therefore doesn&#039;t need to be declared. This is known as loop scope.&lt;br /&gt;
For $i = 0 To UBound($iCount) - 1&lt;br /&gt;
	$aArray[$i] = $i&lt;br /&gt;
Next&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
As you can see, there is the Const keyword in the example, we are going to talk about it.&lt;br /&gt;
&lt;br /&gt;
== Const, Static, Enum ==&lt;br /&gt;
&lt;br /&gt;
=== Const ===&lt;br /&gt;
We won&#039;t talk about the advantages of a constant variable, they are neglibible (for your information, an autoit constant variable is marked as read-only and remains a variable as read-only when compiled).&lt;br /&gt;
&lt;br /&gt;
The Const keyword may be used in a first by some of you to avoid re-assignments.&lt;br /&gt;
The best way to use them is not this last case, the constants should be used for real static variables, meaning that their value won&#039;t change regardless to the instance of the program.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Not recommended&lt;br /&gt;
Local Const $hGUI = GUICreate(&amp;quot;MyGUI&amp;quot;)&lt;br /&gt;
; The handle of the window is unique, it&#039;s generated by Windows and changes.&lt;br /&gt;
&lt;br /&gt;
; Recommended&lt;br /&gt;
Local Const $iMyAge = 19&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Static ===&lt;br /&gt;
Static variables are the solution to the global variables used in only one function.&lt;br /&gt;
e.g: Retain variable data once returned from a Function and only use that variable in that particular Function.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    SomeFunc() ; This will display a message box of 1, 1.&lt;br /&gt;
    SomeFunc() ; This will display a message box of 1, 2.&lt;br /&gt;
    SomeFunc() ; This will display a message box of 1, 3.&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func SomeFunc()&lt;br /&gt;
    ; This initialises a Static variable in Local scope. When a variable is declared just in Local scope (within a Function,)&lt;br /&gt;
    ; it&#039;s destroyed when the Function ends/returns. This isn&#039;t the case for a Static variable. The variable can&#039;t be&lt;br /&gt;
    ; accessed from anywhere else in the script apart from the Function it was declared in.&lt;br /&gt;
    Local Static $vVariableThatIsStatic = 0&lt;br /&gt;
    Local $vVariableThatIsLocal = 0&lt;br /&gt;
    $vVariableThatIsLocal += 1 ; This will always be 1 as it was destroyed once returned from SomeFunc.&lt;br /&gt;
    $vVariableThatIsStatic += 1 ; This will increase by 1.&lt;br /&gt;
    MsgBox(4096, $vVariableThatIsLocal, $vVariableThatIsStatic)&lt;br /&gt;
EndFunc   ;==&amp;gt;SomeFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enum ===&lt;br /&gt;
This statement is often practical in certain situations:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Create variables in Local scope and enumerate through the variables. Default is to start from 0.&lt;br /&gt;
    Local Enum $eCat, $eDog, $eMouse, $eHamster ; $eHamster is equal to the value 3, not 4.&lt;br /&gt;
&lt;br /&gt;
    ; Create an array in Local scope with 4 elements.&lt;br /&gt;
    Local $aAnimalNames[4]&lt;br /&gt;
&lt;br /&gt;
    ; Assign each array element with the name of the respective animal. For example the name of the cat is Jasper.&lt;br /&gt;
    $aAnimalNames[$eCat] = &#039;Jasper&#039; ; $eCat is equal to 0, similar to using $aAnimalNames[0]&lt;br /&gt;
    $aAnimalNames[$eDog] = &#039;Beethoven&#039; ; $eDog is equal to 1, similar to using $aAnimalNames[1]&lt;br /&gt;
    $aAnimalNames[$eMouse] = &#039;Pinky&#039; ; $eMouse is equal to 2, similar to using $aAnimalNames[2]&lt;br /&gt;
    $aAnimalNames[$eHamster] = &#039;Fidget&#039; ; $eHamster is equal to 3, similar to using $aAnimalNames[3]&lt;br /&gt;
&lt;br /&gt;
    ; Display the values of the array.&lt;br /&gt;
    MsgBox($MB_SYSTEMMODAL, &#039;&#039;, &#039;$aAnimalNames[$eCat] = &#039; &amp;amp; $aAnimalNames[$eCat] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;$aAnimalNames[$eDog] = &#039; &amp;amp; $aAnimalNames[$eDog] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;$aAnimalNames[$eMouse] = &#039; &amp;amp; $aAnimalNames[$eMouse] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;$aAnimalNames[$eHamster] = &#039; &amp;amp; $aAnimalNames[$eHamster] &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    ; Sometimes using this approach for accessing an element is more practical than using a numerical value, due to the fact changing the index value of&lt;br /&gt;
    ; the enum constant has no affect on it&#039;s position in the array. Therefore changing the location of $eCat in the array is as simple as changing the order&lt;br /&gt;
    ; it appears in the initial declaration e.g.&lt;br /&gt;
&lt;br /&gt;
    ; Local Enum $eDog, $eMouse, $eCat, $eHamster&lt;br /&gt;
&lt;br /&gt;
    ; Now $eCat is the 2nd element in the array. If you were using numerical values, you would have to manually change all references of $aAnimalNames[0] to&lt;br /&gt;
    ; $aAnimalNames[2], as well as for the other elements which have now shifted.&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Au3Check directive ==&lt;br /&gt;
As you may know (and we hope), the Au3Check tool checks your code for syntax errors, variables used without being declared etc. which is a good thing to fix your script.&lt;br /&gt;
&lt;br /&gt;
With the official custom directive used to check the helpfile examples/includes, you can apply the good coding practices listed above:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Magic Numbers ==&lt;br /&gt;
Magic numbers are arbitrary numbers interspersed throughout a program&#039;s source code which do not have an associated identifier. The downside to this is not being able to derive a meaning from the number. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
MsgBox(262144, &amp;quot;Magic Numbers&amp;quot;, &amp;quot;It&#039;s Adventure Time!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In this example, the magic number is 262144 with the identifier being $MB_TOPMOST according to the helpfile.&lt;br /&gt;
&lt;br /&gt;
The corrected example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
MsgBox($MB_TOPMOST, &amp;quot;Magic Numbers&amp;quot;, &amp;quot;It&#039;s Adventure Time!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Imagine you&#039;re a new user to AutoIt and you come across this code, where would you find -3, -4 or -5 in the help file?&lt;br /&gt;
; Since AutoIt is relatively a new concept to you, your first thought isn&#039;t to search through all the include files, I mean&lt;br /&gt;
; why would you, the help file is there for a reason.&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUICtrlCreateLabel(&#039;Why magic numbers are counter productive.&#039;, 5, 5)&lt;br /&gt;
    GUICtrlSetState(Default, 128) ; Does this hide, show or disable it?&lt;br /&gt;
    GUICtrlSetState(Default, 64) ; Does this hide, show or disable it?&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case -3 ; Doesn&#039;t really tell much about what it does.&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
            Case -4, -5 ; Again, no idea what these are. MouseMove? MouseClick? Restore?&lt;br /&gt;
                MsgBox(4096, &#039;&#039;, &#039;Do something when this action takes place.&#039;)&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Did you understand the numbers were these:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    GUICtrlCreateLabel(&#039;Why magic numbers are counter productive.&#039;, 5, 5)&lt;br /&gt;
    GUICtrlSetState(Default, $GUI_DISABLE) ; Better, this is documented in the help file.&lt;br /&gt;
    GUICtrlSetState(Default, $GUI_ENABLE) ; Better, this is documented in the help file.&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE ; Better, this is documented in the help file. Ah, it&#039;s the close action.&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
            Case $GUI_EVENT_MINIMIZE, $GUI_EVENT_RESTORE ; Better, this is documented in the help file.&lt;br /&gt;
                MsgBox($MB_SYSTEMMODAL, &#039;&#039;, &#039;Do something when this action takes place.&#039;) ; Better, this is documented in the help file.&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Magic_number_(programming) Magic number (programming)]&lt;br /&gt;
&lt;br /&gt;
== Include-once directive ==&lt;br /&gt;
This one is designed for standard includes and UDFs, it&#039;s highly recommended to use it.&lt;br /&gt;
&lt;br /&gt;
Those includes may be included in more than one script of your project because they are needed for some includes or your script itself.&lt;br /&gt;
In that case, the code will be duplicated which is not a good thing especially if you have (and it&#039;s mainly the case) constants declared in those files, in so far as the constants cannot be redeclared/reassigned; same thing for functions.&lt;br /&gt;
&lt;br /&gt;
Put the directive in top of your UDF (library) to avoid itself to be included more than once :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include-once&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12889</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12889"/>
		<updated>2015-03-07T20:21:41Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is more than just a simply change log. It describes the history of AutoIt by travelling back in time and using all kind of source to describe how AutoIt became what it is now. Enjoy!&lt;br /&gt;
== History ==&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate the installation of Windows NT 4 for a company, Jon had difficulties with installing some components which didn&#039;t take parameters from external programs, so Jon was searching for a program which could force button clicks and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
From the official v1.0 helpfile:&amp;lt;br /&amp;gt;&lt;br /&gt;
:Advantages:&lt;br /&gt;
:* It&#039;s much smaller at 40Kb (600Kb smaller than ScriptIt).&lt;br /&gt;
:* It will be updated if problems are found.&lt;br /&gt;
:* The &amp;quot;Reveal&amp;quot; function is much better.&lt;br /&gt;
:* Non-active as well as active windows can be waited for.&lt;br /&gt;
:* Variable delays are possible (defined in milliseconds).&lt;br /&gt;
:* The time in between keystrokes can be altered.&lt;br /&gt;
:* When running an application, a working directory can be specified.&lt;br /&gt;
:* Will force Windows to be active under Win98/NT 5.0 (Use &amp;quot;WinActivate&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:Disadvantages:&lt;br /&gt;
:* The &amp;quot;[ADLIB]&amp;quot; section is not implemented.&lt;br /&gt;
:* The script file must be formatted correctly (no white spaces allowed on lines containing a command).&lt;br /&gt;
:* None of the Wilson WinBatch commands are featured. (But who used them anyway?).&lt;br /&gt;
:* Due to the command names I&#039;ve used, the scripts tend to be a little larger.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-2.png|600x400px|link=https://www.autoitscript.com/w/images/7/72/AutoIt-History-2.png|hiddensoft.com (First official site of AutoIt)]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh. In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-3.png|600x400px|text-top|link=https://www.autoitscript.com/w/images/0/05/AutoIt-History-3.png|AutoItScript.com was registered.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Input for this article has been taken from many sources. Amongst them are:&lt;br /&gt;
* AutoIt Help File ([https://www.autoitscript.com/autoit3/docs/intro/dev_history.htm AutoIt and Developer History])&lt;br /&gt;
* Who.is (website registration data)&lt;br /&gt;
* Archive.org (Old website images) [Reference note: The taken images are snippets of oldest available snapshot]&lt;br /&gt;
* Wikipedia (history of [https://en.wikipedia.org/wiki/AutoHotkey Chris Mallett])&lt;br /&gt;
* AutoIt forum&lt;br /&gt;
* Complete [https://www.autoitscript.com/autoit3/docs/autoit_changelog_complete.txt AutoIt Changelog]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12888</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12888"/>
		<updated>2015-03-07T20:19:47Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is more than just a simply change log. It describes the history of AutoIt by traveling back in time and using all kind of source to describe how AutoIt became what it is now. Enjoy!&lt;br /&gt;
== History ==&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate the installation of Windows NT 4 for a company, Jon had difficulties with installing some components which didn&#039;t take parameters from external programs, so Jon was searching for a program which could force button clicks and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
From the official v1.0 helpfile:&amp;lt;br /&amp;gt;&lt;br /&gt;
:Advantages:&lt;br /&gt;
:* It&#039;s much smaller at 40Kb (600Kb smaller than ScriptIt).&lt;br /&gt;
:* It will be updated if problems are found.&lt;br /&gt;
:* The &amp;quot;Reveal&amp;quot; function is much better.&lt;br /&gt;
:* Non-active as well as active windows can be waited for.&lt;br /&gt;
:* Variable delays are possible (defined in milliseconds).&lt;br /&gt;
:* The time in between keystrokes can be altered.&lt;br /&gt;
:* When running an application, a working directory can be specified.&lt;br /&gt;
:* Will force Windows to be active under Win98/NT 5.0 (Use &amp;quot;WinActivate&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:Disadvantages:&lt;br /&gt;
:* The &amp;quot;[ADLIB]&amp;quot; section is not implemented.&lt;br /&gt;
:* The script file must be formatted correctly (no white spaces allowed on lines containing a command).&lt;br /&gt;
:* None of the Wilson WinBatch commands are featured. (But who used them anyway?).&lt;br /&gt;
:* Due to the command names I&#039;ve used, the scripts tend to be a little larger.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-2.png|600x400px|link=https://www.autoitscript.com/w/images/7/72/AutoIt-History-2.png|hiddensoft.com (First official site of AutoIt)]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh. In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-3.png|600x400px|text-top|link=https://www.autoitscript.com/w/images/0/05/AutoIt-History-3.png|AutoItScript.com was registered.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Input for this article has been taken from many sources. Amongst them are:&lt;br /&gt;
* AutoIt Help File ([https://www.autoitscript.com/autoit3/docs/intro/dev_history.htm AutoIt and Developer History])&lt;br /&gt;
* Who.is (website registration data)&lt;br /&gt;
* Archive.org (Old website images) [Reference note: The taken images are snippets of oldest available snapshot]&lt;br /&gt;
* Wikipedia (history of [https://en.wikipedia.org/wiki/AutoHotkey Chris Mallett])&lt;br /&gt;
* AutoIt forum&lt;br /&gt;
* Complete [https://www.autoitscript.com/autoit3/docs/autoit_changelog_complete.txt AutoIt Changelog]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12887</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12887"/>
		<updated>2015-03-07T20:04:55Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is more than just a simply change log. It describes the history of AutoIt by traveling back in time and using all kind of source to describe how AutoIt became what it is now. Enjoy!&lt;br /&gt;
== History ==&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate the installation of Windows NT 4 for a company, Jon had difficulties with installing some components which didn&#039;t take parameters from external programs, so Jon was searching for a program which could force button clicks and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
From the official v1.0 helpfile:&amp;lt;br /&amp;gt;&lt;br /&gt;
:Advantages:&lt;br /&gt;
:* It&#039;s much smaller at 40Kb (600Kb smaller than ScriptIt).&lt;br /&gt;
:* It will be updated if problems are found.&lt;br /&gt;
:* The &amp;quot;Reveal&amp;quot; function is much better.&lt;br /&gt;
:* Non-active as well as active windows can be waited for.&lt;br /&gt;
:* Variable delays are possible (defined in milliseconds).&lt;br /&gt;
:* The time in between keystrokes can be altered.&lt;br /&gt;
:* When running an application, a working directory can be specified.&lt;br /&gt;
:* Will force Windows to be active under Win98/NT 5.0 (Use &amp;quot;WinActivate&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:Disadvantages:&lt;br /&gt;
:* The &amp;quot;[ADLIB]&amp;quot; section is not implemented.&lt;br /&gt;
:* The script file must be formatted correctly (no white spaces allowed on lines containing a command).&lt;br /&gt;
:* None of the Wilson WinBatch commands are featured. (But who used them anyway?).&lt;br /&gt;
:* Due to the command names I&#039;ve used, the scripts tend to be a little larger.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-2.png|600x400px|hiddensoft.com (First official site of AutoIt)]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh. In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-3.png|600x400px|text-top|AutoItScript.com was registered.]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Input for this article has been taken from many sources. Amongst them are:&lt;br /&gt;
* AutoIt Help File ([https://www.autoitscript.com/autoit3/docs/intro/dev_history.htm AutoIt and Developer History])&lt;br /&gt;
* Who.is (website registration data)&lt;br /&gt;
* Archive.org (Old website images) [Reference note: The taken images are snippets of oldest available snapshot]&lt;br /&gt;
* Wikipedia (history of [https://en.wikipedia.org/wiki/AutoHotkey Chris Mallett])&lt;br /&gt;
* AutoIt forum&lt;br /&gt;
* Complete [https://www.autoitscript.com/autoit3/docs/autoit_changelog_complete.txt AutoIt Changelog]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12886</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12886"/>
		<updated>2015-03-07T19:38:30Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is more than just a simply change log. It describes the history of AutoIt by traveling back in time and using all kind of source to describe how AutoIt became what it is now. Enjoy!&lt;br /&gt;
== History ==&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate the installation of Windows NT 4 for a company, Jon had difficulties with installing some components which didn&#039;t take parameters from external programs, so Jon was searching for a program which could force button clicks and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
From the official v1.0 helpfile:&amp;lt;br /&amp;gt;&lt;br /&gt;
:Advantages:&lt;br /&gt;
:* It&#039;s much smaller at 40Kb (600Kb smaller than ScriptIt).&lt;br /&gt;
:* It will be updated if problems are found.&lt;br /&gt;
:* The &amp;quot;Reveal&amp;quot; function is much better.&lt;br /&gt;
:* Non-active as well as active windows can be waited for.&lt;br /&gt;
:* Variable delays are possible (defined in milliseconds).&lt;br /&gt;
:* The time in between keystrokes can be altered.&lt;br /&gt;
:* When running an application, a working directory can be specified.&lt;br /&gt;
:* Will force Windows to be active under Win98/NT 5.0 (Use &amp;quot;WinActivate&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:Disadvantages:&lt;br /&gt;
:* The &amp;quot;[ADLIB]&amp;quot; section is not implemented.&lt;br /&gt;
:* The script file must be formatted correctly (no white spaces allowed on lines containing a command).&lt;br /&gt;
:* None of the Wilson WinBatch commands are featured. (But who used them anyway?).&lt;br /&gt;
:* Due to the command names I&#039;ve used, the scripts tend to be a little larger.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:AutoIt-History-2.png|thumb|hiddensoft.com (First official site of AutoIt)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh. In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&lt;br /&gt;
[[File:AutoIt-History-3.png|thumb|left|AutoItScript.com was registered.]]&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Input for this article has been taken from many sources. Amongst them are:&lt;br /&gt;
* AutoIt Help File ([https://www.autoitscript.com/autoit3/docs/intro/dev_history.htm AutoIt and Developer History])&lt;br /&gt;
* Who.is (website registration data)&lt;br /&gt;
* Archive.org (Old website images) [Reference note: The taken images are snippets of oldest available snapshot]&lt;br /&gt;
* Wikipedia (history of [https://en.wikipedia.org/wiki/AutoHotkey Chris Mallett])&lt;br /&gt;
* AutoIt forum&lt;br /&gt;
* Complete [https://www.autoitscript.com/autoit3/docs/autoit_changelog_complete.txt AutoIt Changelog]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=File:AutoIt-History-3.png&amp;diff=12885</id>
		<title>File:AutoIt-History-3.png</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=File:AutoIt-History-3.png&amp;diff=12885"/>
		<updated>2015-03-07T19:34:43Z</updated>

		<summary type="html">&lt;p&gt;Rt01: AutoItScript.com was registered.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AutoItScript.com was registered.&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=File:AutoIt-History-2.png&amp;diff=12884</id>
		<title>File:AutoIt-History-2.png</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=File:AutoIt-History-2.png&amp;diff=12884"/>
		<updated>2015-03-07T19:24:25Z</updated>

		<summary type="html">&lt;p&gt;Rt01: First offical site of AutoIt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First offical site of AutoIt&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12883</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12883"/>
		<updated>2015-03-07T19:08:07Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is more than just a simply change log. It describes the history of AutoIt by traveling back in time and using all kind of source to describe how AutoIt became what it is now. Enjoy!&lt;br /&gt;
== History ==&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate the installation of Windows NT 4 for a company, Jon had difficulties with installing some components which didn&#039;t take parameters from external programs, so Jon was searching for a program which could force button clicks and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released on&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws.&amp;lt;br /&amp;gt;&lt;br /&gt;
Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh. In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because Other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Input for this article has been taken from many sources. Amongst them are:&lt;br /&gt;
* AutoIt Help File ([https://www.autoitscript.com/autoit3/docs/intro/dev_history.htm AutoIt and Developer History])&lt;br /&gt;
* Who.is (website registration data)&lt;br /&gt;
* Archive.org (Old website images) [Reference note: The taken images are snippets of oldest available snapshot]&lt;br /&gt;
* Wikipedia (history of [https://en.wikipedia.org/wiki/AutoHotkey Chris Mallett])&lt;br /&gt;
* AutoIt forum&lt;br /&gt;
* Complete [https://www.autoitscript.com/autoit3/docs/autoit_changelog_complete.txt AutoIt Changelog]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12882</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12882"/>
		<updated>2015-03-07T18:46:05Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is more than just a simply change log. It describes the history of AutoIt by traveling back in time and using all kind of source to describe how AutoIt became what it is now. Enjoy!&lt;br /&gt;
== History ==&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate installation of Windows NT 4 for a company, Jon had difficulties with installing some components which don&#039;t take parameters from external programs, so Jon was searching for a program which can force click buttons and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.... Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released on&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws..... Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh. In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because Other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
Input for this article has been taken from many sources. Amongst them are:&lt;br /&gt;
* AutoIt Help File ([https://www.autoitscript.com/autoit3/docs/intro/dev_history.htm AutoIt and Developer History])&lt;br /&gt;
* Who.is (website registration data)&lt;br /&gt;
* Archive.org (Old website images) [Reference note: The taken images are snippets of oldest available snapshot]&lt;br /&gt;
* Wikipedia (history of [https://en.wikipedia.org/wiki/AutoHotkey Chris Mallett])&lt;br /&gt;
* AutoIt forum&lt;br /&gt;
* Complete [https://www.autoitscript.com/autoit3/docs/autoit_changelog_complete.txt AutoIt Changelog]&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12881</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12881"/>
		<updated>2015-03-07T17:38:10Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate installation of Windows NT 4 for a company, Jon had difficulties with installing some components which don&#039;t take parameters from external programs, so Jon was searching for a program which can force click buttons and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.... Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released on&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws..... Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh. In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because Other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12880</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12880"/>
		<updated>2015-03-07T16:51:43Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate installation of Windows NT 4 for a company, Jon had difficulties with installing some components which don&#039;t take parameters from external programs, so Jon was searching for a program which can force click buttons and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.... Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released on&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws..... Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh. In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because Other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12879</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12879"/>
		<updated>2015-03-07T16:49:54Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate installation of Windows NT 4 for a company, Jon had difficulties with installing some components which don&#039;t take parameters from external programs, so Jon was searching for a program which can force click buttons and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.... Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1 was released on&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January - April, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v1.8 was released with many cool features like:&lt;br /&gt;
* Cool /reveal mode&lt;br /&gt;
* Goto!&lt;br /&gt;
* IfWin...&lt;br /&gt;
* Mouse control&lt;br /&gt;
* ScriptIt ADLIB-like support&lt;br /&gt;
* Gosub&lt;br /&gt;
* %ENV% variable support&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;August, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2 was released with the first version of AutoItX.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.1 was released along with first version of Aut2Exe.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;22 December, 1999:&amp;lt;/big&amp;gt;&#039;&#039;&#039; hiddensoft.com (First official site of AutoIt) was registered.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;September, 1999 - May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Rapid development in AutoIt with loads of additional function.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;May, 2001:&amp;lt;/big&amp;gt;&#039;&#039;&#039; The AutoIt source code was a mess and the entire source was re-written in C++.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;January, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of Exe2Aut &amp;amp; AutoIt DLL was created.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;  &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;December, 2002:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt v2.64 (last version of AutoIt v2) was released with new FileInstall function after writing his (Jon) own compression and archive library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 January, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to start work on development framework of AutoIt v3, since AutoIt v2 had some flaws..... Jon said:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Very little development was done from 2001 to 2003. Project had reached the point where I&#039;d lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Half the requests I got were for proper loops and expressions - half of the questions were &amp;quot;how do I use a backslash in a Run command&amp;quot;. Arrgh.&lt;br /&gt;
In this time there were numerous &amp;quot;add-ons&amp;quot; like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn&#039;t the time or motivation to add them).&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a &amp;quot;proper&amp;quot; language. I started the development framework for AutoIt v3.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Previous versions were very strict about syntax it was &amp;quot;Command, param1, param2,...&amp;quot; and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I &amp;quot;get&amp;quot; it now, writing the expression code in AutoIt was the 2nd hardest thing I&#039;d ever done. (Hardest thing I&#039;ve written was the compression code used in Aut2Exe that I wrote from scratch)&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here.&amp;quot;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;4 March, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First (beta) version of AutoIt v3 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;20 August, 2003:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Started logging of AutoIt version history.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;12 August, 2006:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoIt switched to closed source from GPL because Other developers were using AutoIt source&#039;s to make a rival language as a competitor to AutoIt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;February, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; First version of AutoIt v3.0.100 was released.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;5 May, 2004:&amp;lt;/big&amp;gt;&#039;&#039;&#039; AutoItScript.com was registered.&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=History&amp;diff=12878</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=History&amp;diff=12878"/>
		<updated>2015-03-07T16:36:38Z</updated>

		<summary type="html">&lt;p&gt;Rt01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&amp;lt;big&amp;gt;October, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon was working on a project to automate installation of Windows NT 4 for a company, Jon had difficulties with installing some components which don&#039;t take parameters from external programs, so Jon was searching for a program which can force click buttons and he found Microsoft ScriptIt but Jon found that it was extremely unreliable.... Jon said:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn&#039;t work under NT 5 beta (i.e. Windows 2000)&amp;quot;.&#039;&#039; &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;25 December, 1998:&amp;lt;/big&amp;gt;&#039;&#039;&#039; Jon decided to make a program (AutoIt v1) in C as a better alternative to Microsoft ScriptIt.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rt01</name></author>
	</entry>
</feed>