<?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=Mlipok</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=Mlipok"/>
	<link rel="alternate" type="text/html" href="https://www.autoitscript.com/wiki/Special:Contributions/Mlipok"/>
	<updated>2026-05-07T20:04:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=UDF-spec&amp;diff=14883</id>
		<title>UDF-spec</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=UDF-spec&amp;diff=14883"/>
		<updated>2024-01-19T18:51:36Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Headers */ header is 129 characters wide - requirement removal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:UDF]]&lt;br /&gt;
{{WIP}}This page is still under construction.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A library is a collection of one or more User Defined Functions (UDFs). However, the term UDF is often used to describe the collection as a whole. If a UDF is to be considered for inclusion in the standard set distributed with AutoIt then it must meet all the criteria detailed here, but it&#039;s also good practice to always write in conformance with at least the majority of this document, as that is what will be expected by people reading your code later.&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
Firstly, the code itself should meet the following basic requirements:&lt;br /&gt;
&lt;br /&gt;
* Be tidied. Just hit &amp;lt;code&amp;gt;Ctrl+T&amp;lt;/code&amp;gt; from SciTE or run Tidy manually. The only flag needed is &amp;lt;code&amp;gt;/sf&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Pass Au3Check with no errors using the strictest settings: &amp;lt;code&amp;gt;-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7&amp;lt;/code&amp;gt;&lt;br /&gt;
* Support everything AutoIt supports. In some cases features may not be able to support everything, in which case this should be checked for and return errors appropriately. This applies to: windows OS versions (AutoIt has support for all OS&#039; from windows 2000), unicode and ansi strings, 64 and 32 bit machines.&lt;br /&gt;
* Not use any magic numbers. Ever. None. At all. No excuses.&lt;br /&gt;
&lt;br /&gt;
== UDF Outline ==&lt;br /&gt;
The library itself has a header that details important information such as the minimum OS and AutoIt versions, and what system dlls are required. There is also a number of other sections that are required that list what is present in the UDF.&lt;br /&gt;
&lt;br /&gt;
=== Includes ===&lt;br /&gt;
Since a UDF is designed to define functions, it should only be included once. As a result, the &amp;lt;code&amp;gt;#include-once&amp;lt;/code&amp;gt; directive should be used. This is typically the first line of the UDF, followed by the includes used by the UDF. Include statements should use the double quoted form, as the library is expected to work in the same directory as libraries it depends on. Non standard libraries can be used if necessary, but this should be documented and linked to so users can download it as well. It goes without saying that a UDF based on non-standard UDFs cannot itself become a standard.&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
The index follows the following template (taken from &amp;lt;code&amp;gt;WinAPI.au3&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INDEX# =======================================================================================================================&lt;br /&gt;
; Title .........: Windows API&lt;br /&gt;
; AutoIt Version : 3.2&lt;br /&gt;
; Description ...: Windows API calls that have been translated to AutoIt functions.&lt;br /&gt;
; Author(s) .....: Paul Campbell (PaulIA), gafrost, Siao, Zedna, arcker, Prog@ndy, PsaltyDS, Raik, jpm&lt;br /&gt;
; Dll ...........: kernel32.dll, user32.dll, gdi32.dll, comdlg32.dll, shell32.dll, ole32.dll, winspool.drv&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The only required element in the index header is &amp;lt;code&amp;gt;Title&amp;lt;/code&amp;gt;. All others are ignored by the processor, but should be included for reference, remember that you can add some custom fields like &amp;lt;code&amp;gt;Links&amp;lt;/code&amp;gt; too.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Dll&amp;lt;/code&amp;gt; field can remain empty in many cases where no dlls are called directly. This header must be defined.&lt;br /&gt;
&lt;br /&gt;
=== Other Sections ===&lt;br /&gt;
Other sections, in order of appearance, are as follows.&lt;br /&gt;
&lt;br /&gt;
==== Variables ====&lt;br /&gt;
All global variables needed to be declared in the UDF are defined in this section. They should follow the variable rules for globals. Individual variables do not need to be documented, as it is assumed they are for internal use only. Any globals designed to be accessible for the user should instead be wrapped by a function (or multiple functions if globals must be retrieved and set). The template for this section is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #VARIABLES# ===================================================================================================================&lt;br /&gt;
Global $__g_vMyGlobal = 0&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no globals are needed then this section may be ommitted. Please consider the use of global variables carefully, and read through the section on global variables.&lt;br /&gt;
&lt;br /&gt;
==== Constants ====&lt;br /&gt;
Any global constant values are defined in this section. This should be constants only designated for use within the library itself. Constants that may be needed by the user should be defined in a separate file, named &amp;lt;code&amp;gt;UDFConstants.au3&amp;lt;/code&amp;gt; where &amp;lt;code&amp;gt;UDF&amp;lt;/code&amp;gt; is the name of the parent file. For example &amp;lt;code&amp;gt;File.au3&amp;lt;/code&amp;gt; uses constants defined in &amp;lt;code&amp;gt;FileConstants.au3&amp;lt;/code&amp;gt;. The exception to that rule is control UDFs which miss out the prepended &#039;GUI&#039; when naming constant files, so &amp;lt;code&amp;gt;GUIButton.au3&amp;lt;/code&amp;gt; uses constants from &amp;lt;code&amp;gt;ButtonConstants.au3&amp;lt;/code&amp;gt;. The template for this section is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #CONSTANTS# ===================================================================================================================&lt;br /&gt;
Global Const $__MYUDFCONSTANT_FOOBAR = 42&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no constants are needed in this section, either because none are used or because they are stored in a separate file, then it may be ommitted. Please read the section on global constants for specific info on naming and definition of constants.&lt;br /&gt;
&lt;br /&gt;
==== Listing ====&lt;br /&gt;
This defines all functions and structures currently used in the library. It MUST be the second defined header item after [[#Index]]. It is a simple list with each function on a line where the functions and structures appear in the same order as they do in the code, which is alphabetical order and structures first. A simple way to generate this list is to create a small script that searches for function definitions and outputs them in the correct format, an example of which is [http://www.autoitscript.com/forum/topic/120820-function-name-lister/ here]. In addition there is a second section that lists functions and structures for internal use only, this does not need to appear if none are defined.&lt;br /&gt;
&lt;br /&gt;
The template for these sections are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #CURRENT# =====================================================================================================================&lt;br /&gt;
;$tagSTRUCT&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
;$tagINTERNALSTRUCT&lt;br /&gt;
;__MyUDF_InternalFunction&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This section still needs to be defined for files that only define constants. It should also be noted that there MUST NOT be a space between the &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; and the function/structure name.&lt;br /&gt;
&lt;br /&gt;
==== Undocumented Listing ====&lt;br /&gt;
There is a final kind of listing that lists functions for which no documentation exists, or they have been deprecated and are only included for backwards compatibility. These are listed in a section with the header &amp;lt;code&amp;gt;NO_DOC_FUNCTION&amp;lt;/code&amp;gt;. This is very rarely used, and is reserved only for functions that can be utilised by the user, or that would have been in the past, as opposed to those for internal use only.&lt;br /&gt;
&lt;br /&gt;
Template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #NO_DOC_FUNCTION# =============================================================================================================&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Renamed Functions ====&lt;br /&gt;
Although it should not be the case in new UDFs, many of the older ones (particularly to do with controls) have had script breaking name changes to functions. These are documented in the UDF to ensure updating old scripts is as easy as possible. The basic format for this is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #NO_DOC_FUNCTION# =============================================================================================================&lt;br /&gt;
;_MyUDF_OldFunction                        ; --&amp;gt; _MyUDF_NewFunction&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The space padding is optional. This section is ignored as far as the docs are concerned, and is usually omitted.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== Naming ===&lt;br /&gt;
Function names must start with an underscore, and the first word is the library name. There is then usually another underscore before the rest of the function name. The library name should be consistent across all the functions in the library, and can be shortened if a logical abbreviation is available (e.g. &amp;lt;code&amp;gt;Window&amp;lt;/code&amp;gt; ==&amp;gt; &amp;lt;code&amp;gt;Win&amp;lt;/code&amp;gt;). Each word should be capitalized, but no underscores are placed in the rest of the name, for example &amp;lt;code&amp;gt;_WinAPI_GetWindowLong&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For control libraries, the first part of the function name is changed slightly. For example the UDF for listviews would use &amp;lt;code&amp;gt;_GUICtrlListview_*&amp;lt;/code&amp;gt;. When a function wraps a dll call, then the second part should closely resemble the function name as it appears in other languages. This also applies to functions acting as a wrapper to &amp;lt;code&amp;gt;SendMessage&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Functions are defined in alphabetical order by name, which is the same as using &amp;lt;code&amp;gt;Tidy&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;/sf&amp;lt;/code&amp;gt; flag set.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
Parameters should follow the variable naming scheme ([[#Naming_2|here]]). All parameters must be checked to ensure they are valid, and return unique and documented error codes if they are not. For functions involving a specific type of control, this includes checking the class name using &amp;lt;code&amp;gt;_WinAPI_IsClassName&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Parameters that are optional or byref should be documented as such, and the effect these have explicitly stated. For example a byref parameter should detail exactly what the expected output is as well as the input.&lt;br /&gt;
&lt;br /&gt;
=== Headers ===&lt;br /&gt;
All functions have a documentation header that describes the function. This uses the following template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: _WinAPI_GetMousePos&lt;br /&gt;
; Description ...: Returns the current mouse position&lt;br /&gt;
; Syntax.........: _WinAPI_GetMousePos([$bToClient = False[, $hWnd = 0]])&lt;br /&gt;
; Parameters ....: $bToClient   - If True, the coordinates will be converted to client coordinates&lt;br /&gt;
;                  $hWnd        - Window handle used to convert coordinates if $fToClient is True&lt;br /&gt;
; Return values .: Success      - $tagPOINT structure with current mouse position&lt;br /&gt;
;                  Failure      - 0&lt;br /&gt;
; Author ........: Paul Campbell (PaulIA)&lt;br /&gt;
; Modified.......:&lt;br /&gt;
; Remarks .......: This function takes into account the current MouseCoordMode setting when  obtaining  the  mouse  position.&lt;br /&gt;
;                  It will also convert screen to client coordinates based on the parameters passed.&lt;br /&gt;
; Related .......: $tagPOINT, _WinAPI_GetMousePosX, _WinAPI_GetMousePosY&lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: Yes&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _WinAPI_GetMousePos($bToClient = False, $hWnd = 0)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some of the parameters in the header are optional, in which case they should remain, but be left empty (for example the &amp;lt;code&amp;gt;Link&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Modified&amp;lt;/code&amp;gt; lines in the above header). In others, they are needed, but can be empty or not used such as &amp;lt;code&amp;gt;Parameters&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Return Values&amp;lt;/code&amp;gt;. In this case the value should be &#039;None&#039;, as they will still be present in the documentation.&lt;br /&gt;
&lt;br /&gt;
There are some flags that can be used within function headers: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; in column 20 is the continuation flag for the previous line (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;|&#039;&#039;&#039; in column 20 is a new line in the right side of the table when the help file is generated (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;-&#039;&#039;&#039; in column 20 will create new row in the table, used for things like Defaults for a style (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; in column 2 of Remarks is a blank line&lt;br /&gt;
Name&lt;br /&gt;
:Specifies the name of the function. This will be identical to how it appeas in the Func statement in the code itself.&lt;br /&gt;
Description&lt;br /&gt;
:Gives a short summary of what the function does. This should only be a single line, as it is only designed to give a short impression of what is happening. For the standard set of includes distributed with AutoIt3, this value is also used in the SciTE calltips.&lt;br /&gt;
Syntax&lt;br /&gt;
:Describes the syntax of the function call. This differs slightly from what appears in the code itself for optional parameters, which are enclosed in square brackets (&amp;quot;[ ]&amp;quot;). Since subsequent parameters must also be optional, and cannot be defined unless all the previous ones have been given, these brackets are nested in the form: Function([param1[, param2[,param3]]]). Note that the opening bracket appears before the comma seperator.&lt;br /&gt;
Parameters&lt;br /&gt;
:This is a list of the arguments accepted by the function. Each is listed, followed by a dash (&amp;quot;-&amp;quot;) and a description of what it is. The dash can be padded for neatness, although the amount of padding depends on how long the parameter names are. If the parameter is optional then the meaning of the default value should be given, similarly if it&#039;s used to pass data back to the program in the form of byref then the changes made should also be detailed. For more information on parameters see Parameters.&lt;br /&gt;
Return values&lt;br /&gt;
:Details what is returned by the function. This often comes in the form of Success and Failure values, but this is not always the case. Any setting of the @error of @extended flags should be detailed, along with their meanings, in some cases it is enough to say that @error is set to non-zero in the event of an error, in most cases though a list of values for @error should be given.&lt;br /&gt;
Author&lt;br /&gt;
:This is the original writer of the function. It should contain the username, so that any queries about the code can be made through the forum, but you can give as much or little information as you feel appropriate.&lt;br /&gt;
Modified&lt;br /&gt;
:This is a list of modifications made. At its most basic this is just a list of users who have made changes, but ideally it includes some information about what they did, in which cases it follows the same form as other multi-value lines, with the username and description of modifications seperated by a dash.&lt;br /&gt;
Remarks&lt;br /&gt;
:This is anything the user should know about a function in order to use it. For example exceptional cases and recommended ways to handle the function should all be detailed here, as well as additional info about possible reasons for failure and how to deal with them.&lt;br /&gt;
Related&lt;br /&gt;
:A comma seperated list of functions or structures related to the function.&lt;br /&gt;
Link&lt;br /&gt;
:A link to additional information about the function. For many system function wrappers, this will be &amp;lt;code&amp;gt;@@MsdnLink@@ FunctionName&amp;lt;/code&amp;gt;, which represents that the user should search MSDN for the function.&lt;br /&gt;
Example&lt;br /&gt;
:A simple yes or no value specifying whether the function has an example. If this is no then your UDF is not ready to be released. The [[#Examples]] section has more information on the format and location of examples.&lt;br /&gt;
&lt;br /&gt;
The easiest way to generate the header is to copy and paste the following blank template in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Syntax.........: &lt;br /&gt;
; Parameters ....: &lt;br /&gt;
; Return values .: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Modified.......: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are also a number of plugins for SciTE that will generate a header and maybe fill in certain known values for you such as Name, Syntax and Parameters. The most complete one that conforms to these standards is [http://code.google.com/p/m-a-t/wiki/UDFHeaderGenerator here], but there are two others [http://www.autoitscript.com/forum/topic/28270-lua-script-for-udf-header/ here] and [http://www.autoitscript.com/forum/topic/28270-lua-script-for-udf-header/page__view__findpost__p__200823 here].&lt;br /&gt;
&lt;br /&gt;
=== Internal use only ===&lt;br /&gt;
Functions can also be marked for use only within the library and not to be documented for use by the user. These are named according to the same rules as normal functions but begin with a double underscore (&amp;quot;__&amp;quot;). The header is exactly the same except with the first line replaced, to make the blank template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Syntax.........: &lt;br /&gt;
; Parameters ....: &lt;br /&gt;
; Return values .: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Modified.......: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Structures ==&lt;br /&gt;
Structures are defined as global constants, and follow the naming pattern &amp;lt;code&amp;gt;$tagSTRUCTNAME&amp;lt;/code&amp;gt;. The struct name should be as it appears on MSDN if it&#039;s used in the windows API, or follow a similar pattern if not. It should go without saying that they must work for both 32 and 64 bit machines, including resolving any alignment issues. Elements should also be named as they appear on MSDN if they are taken from there, which includes the hungarian notation prefix. Although many standard UDFs do not follow that rule, importantly &amp;lt;code&amp;gt;StructureConstants.au3&amp;lt;/code&amp;gt;, the rule still stands.&lt;br /&gt;
&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Structures need a header similar to functions, but with some minor differences. The same rules apply in terms of wrapping and line length however. The header follow this standard template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: $tagPOINT&lt;br /&gt;
; Description ...: Defines the x and y coordinates of a point&lt;br /&gt;
; Fields ........: X - Specifies the x-coordinate of the point&lt;br /&gt;
;                  Y - Specifies the y-coordinate of the point&lt;br /&gt;
; Author ........: Paul Campbell (PaulIA)&lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Global Const $tagPOINT = &amp;quot;long X;long Y&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is essentially a shortened header, with the only thing new is the Fields line, which effectively replaces the Parameters field in terms of usage. All the same rules apply as listed [[#Function Header Fields|here]].&lt;br /&gt;
&lt;br /&gt;
The blank template is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Fields ........: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Structures may also be marked for internal use only. In this case the header ramains the same, but the sections first line changes. The blank template is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Fields ........: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
For code readability, there are special rules dealing with variables, particularly naming. All variables should be declared at the beginning of their scope, which usually means at the start of the function in which they are used, but could mean the top of the UDF itself in the [[#Variables|Variables section]].&lt;br /&gt;
&lt;br /&gt;
=== Naming ===&lt;br /&gt;
A variable&#039;s first letter signifies the expected scope and type of the variable. See [[Best_coding_practices#Names_of_Variables|Names of Variables]]&lt;br /&gt;
&lt;br /&gt;
=== Globals ===&lt;br /&gt;
The use of globals in a UDF is generally frowned upon, and byref parameters and static variables should be used where possible instead. However, in cases where this is not possible and a global must be used they should be defined using the following naming pattern: &amp;lt;code&amp;gt;$__g_&amp;amp;lt;VARNAME&amp;amp;gt;&amp;lt;/code&amp;gt; where &amp;lt;code&amp;gt;&amp;amp;lt;VARNAME&amp;amp;gt;&amp;lt;/code&amp;gt; is the name as it would usually appear according to the variable naming rules above. This ensures there will never be a conflict with user variables of other UDF globals. They should be declared at the top of the UDF in the Variables section.&lt;br /&gt;
&lt;br /&gt;
Globals are always private. If they need to be accessed by the user then functions need to be written wrapping that operation and values should be checked. Notable exceptions are debug variables, which are designed for developer purposes and may be used by some users in extreme cases. These are named &amp;lt;code&amp;gt;$Debug_&amp;amp;lt;UDF&amp;amp;gt;&amp;lt;/code&amp;gt; although the &amp;lt;code&amp;gt;&amp;amp;lt;UDF&amp;amp;gt;&amp;lt;/code&amp;gt; part is often shortened so &amp;lt;code&amp;gt;GUIEdit.au3&amp;lt;/code&amp;gt; uses &amp;lt;code&amp;gt;$Debug_Ed&amp;lt;/code&amp;gt;. It is not required that a UDF has debugging symbols, but they are allowed to remain in releases.&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
There are two types of constants, internal and public. Public constants are designed to be utilised by the user, and are referenced in functions that use them. They include styles and flags. Internal constants are designed for use only within the library, so that values used fairly often can be held in one place to allow for easy updating. Both kinds of constant are always typed in all upper case. Constants taken from the windows API should appear exactly as they are defined there, but internal constants follow the naming pattern: &amp;lt;code&amp;gt;$__&amp;amp;lt;UDF&amp;amp;gt;CONSTANT_&amp;amp;lt;NAME&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;lt;code&amp;gt;Dim&amp;lt;/code&amp;gt; statement ===&lt;br /&gt;
Should not be used.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
All functions and structures that are made public to the user need to have a good quality example. This means that it should:&lt;br /&gt;
&lt;br /&gt;
* Be simple. Ideally the only functions used are basic functions like ConsoleWrite and MsgBox and the function that the example is written for. Writing a single example that covers a wide range of functions is not nearly as easy to use as writing an example per function that clearly demonstrates its use.&lt;br /&gt;
* Be readable. Everything should be explained step by step in comments.&lt;br /&gt;
* Be correct. In addition to passing the same Au3Check flags as the UDF itself (&amp;lt;code&amp;gt;-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7&amp;lt;/code&amp;gt;) it should always be written with best practice being the main consideration. This takes preference over the first point, just because code is shorter and looks easier doesn&#039;t mean it&#039;s right.&lt;br /&gt;
* Examples should represent all the functionality. If there is more than one way of using a function then include more than one example of how to use it.&lt;br /&gt;
* Not make any permanent changes to the users computer. For example, if demonstrating a File function, be sure to delete the file after it has been used. The same applies for any function that makes a change to the environment: the changes MUST be undone.&lt;br /&gt;
&lt;br /&gt;
Always remember, the readability of code in an example is MORE important than the readability of code inside the UDF itself.&lt;br /&gt;
&lt;br /&gt;
Examples are stored in script files called &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;.au3&amp;lt;/code&amp;gt;. The files should be kept in a folder called &amp;lt;code&amp;gt;Examples&amp;lt;/code&amp;gt;. To remain correct all examples should be wrapped in functions, such that the only code executed in the global scope is calling the function. This is usually named &amp;lt;code&amp;gt;Example&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Constants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Opt(&amp;quot;MustDeclareVars&amp;quot;, 1)&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $idButton_Run, $idButton_Test, $iMsg, $hGUI_MyApp&lt;br /&gt;
	&lt;br /&gt;
	$hGUI_MyApp = GUICreate(&amp;quot;My GUI Button&amp;quot;) ; Will create a dialog box that when displayed is centered&lt;br /&gt;
&lt;br /&gt;
	$idButton_Run = GUICtrlCreateButton(&amp;quot;Run Notepad&amp;quot;, 4, 4, 80, 30)&lt;br /&gt;
	$idButton_Test = GUICtrlCreateButton(&amp;quot;Button Test&amp;quot;, 4, 38, 80, 30)&lt;br /&gt;
&lt;br /&gt;
	GUISetState() ; will display a dialog box with 2 button&lt;br /&gt;
&lt;br /&gt;
	; Run the GUI until the dialog is closed&lt;br /&gt;
	While 1&lt;br /&gt;
		$iMsg = GUIGetMsg()&lt;br /&gt;
		Select&lt;br /&gt;
			Case $iMsg = $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $iMsg = $idButton_Run&lt;br /&gt;
				Run(&amp;quot;Notepad.exe&amp;quot;) ; Will Run/Open Notepad&lt;br /&gt;
			Case $iMsg = $idButton_Test&lt;br /&gt;
				MsgBox($MB_SYSTEMMODAL, &amp;quot;Testing&amp;quot;, &amp;quot;Button 2 was pressed&amp;quot;) ; Will demonstrate Button 2 being pressed&lt;br /&gt;
		EndSelect&lt;br /&gt;
	WEnd&lt;br /&gt;
	GUIDelete($hGUI_MyApp)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multiple Examples ===&lt;br /&gt;
The helpfile now supports multiple examples per function. In order to maintain backwards compatibility with any other tools that use examples, the first file is still named &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;.au3&amp;lt;/code&amp;gt;, but any additional examples are named &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;[n].au3&amp;lt;/code&amp;gt; where n is an integer counter starting at 2.&lt;br /&gt;
&lt;br /&gt;
== Template UDF ==&lt;br /&gt;
Here is an example of a UDF called &amp;lt;code&amp;gt;MyUDF.au3&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; AU3Check settings&lt;br /&gt;
#AutoIt3Wrapper_Run_AU3Check=Y&lt;br /&gt;
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7&lt;br /&gt;
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=Y&lt;br /&gt;
#include-once&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;MyUDFConstants.au3&amp;quot;&lt;br /&gt;
#include &amp;quot;AnInclude.au3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; #INDEX# =======================================================================================================================&lt;br /&gt;
; Title .........: MyUDF&lt;br /&gt;
; AutoIt Version : 3.3.10.2&lt;br /&gt;
; Language ......: English&lt;br /&gt;
; Author(s) .....: &lt;br /&gt;
; Modifiers .....: &lt;br /&gt;
; Forum link ....: a link to the main forum topic (if aplicable)&lt;br /&gt;
; Description ...: An example UDF that does very little.&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #CURRENT# =====================================================================================================================&lt;br /&gt;
;$tagMYSTRUCT&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: $tagMYSTRUCT&lt;br /&gt;
; Description ...: An example of a structure.&lt;br /&gt;
; Fields ........: hFoo       - A handle to foo that does something.&lt;br /&gt;
;                  iBar       - An integer that does something.&lt;br /&gt;
; Author ........: Matt Diesel (Mat)&lt;br /&gt;
; Remarks .......:&lt;br /&gt;
; Related .......: _MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Global Const $tagMYSTRUCT = &amp;quot;ptr hFoo; int iBar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: _MyUDF_Function&lt;br /&gt;
; Description ...: A function that does something.&lt;br /&gt;
; Syntax.........: _MyUDF_Function(ByRef $avAnArray, $iAnInt[, $hAHandle = 0[, $nSomeNumber = 42]])&lt;br /&gt;
; Parameters ....: $avAnArray       - [byref] An array of anything. The value of anything is changed and passed out using this&lt;br /&gt;
;                                     parameter. The array should only have one dimension&lt;br /&gt;
;                  $iAnInt          - An integer that does very little.&lt;br /&gt;
;                  $hAHandle        - [optional] A handle. Default is zero.&lt;br /&gt;
;                  $nSomeNumber     - [optional] A number of some kind. Default is 42.&lt;br /&gt;
; Return values .: Success          - A MYSTRUCT structure.&lt;br /&gt;
;                  Failure          - Returns zero and sets the @error flag:&lt;br /&gt;
;                                   |1 - The $avAnArray is invalid.&lt;br /&gt;
; Author ........: Matt Diesel (Mat)&lt;br /&gt;
; Modified.......:&lt;br /&gt;
; Remarks .......:&lt;br /&gt;
; Related .......: $tagMYSTRUCT&lt;br /&gt;
; Link ..........:&lt;br /&gt;
; Example .......: No&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _MyUDF_Function(ByRef $avAnArray, $iAnInt, $hAHandle = 0, $nSomeNumber = 42)&lt;br /&gt;
	; 1 - Error Checking for parameters.&lt;br /&gt;
	If Not IsArray($avAnArray) Or UBound($avAnArray, 0) &amp;lt;&amp;gt; 1 Then Return SetError(1, 0, 0) ; The $avAnArray is invalid.&lt;br /&gt;
&lt;br /&gt;
	; 2 - Declaration of locals.&lt;br /&gt;
	Local $tMS = DllStructCreate($tagMYSTRUCT)&lt;br /&gt;
&lt;br /&gt;
	; 3 - Function code&lt;br /&gt;
	DllStructSetData($tMS, &amp;quot;hFoo&amp;quot;, $hAHandle)&lt;br /&gt;
	DllStructSetData($tMS, &amp;quot;iBar&amp;quot;, $iAnInt * $nSomeNumber)&lt;br /&gt;
&lt;br /&gt;
	Return $tMS&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyUDF_Function&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13899</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=13899"/>
		<updated>2019-02-28T07:23:50Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Media */ fixed HyperCam (by seangriffin) link&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (340 UDFs on 2019/02/25), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Latest modifications&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Date !! section !! creator !! title&lt;br /&gt;
|-&lt;br /&gt;
| 2019-02-25 || Files, Databases and web connections || seangriffin || CSV - a UDF for manipulating CSV files&lt;br /&gt;
|-&lt;br /&gt;
| 2019-02-22 || GUI additions || Taskms4 || MTSkin - Simply create modern looking GUIs (borderless GUI, Interactive menu panel (with mouse-over detection), a bunch of skins)&lt;br /&gt;
|-&lt;br /&gt;
| 2019-01-27 || Microsoft Office || water || Outlook Tools - import/export contacts from/to vcf files and calendar events from/to ics files&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=480 Outlook Tools (by water)] - Import/export contacts from/to vcf files and calendar events from/to ics files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office PowerPoint (by Toady)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178783 Microsoft Office PowerPoint (by water)] - 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=454 cDebug (by c.haslam)] - Dumps the values of all AutoIt subtypes and expressions including nested arrays, DLL structs and maps.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
=== Inter Process Communications ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126936 Container (by MrCreatoR)] - Scripts interaction method. Allows to transfer whole arrays as data, and even COM objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - Use your AutoIt script as DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=193277 FMIPC (by argumentum)] - IPC via FileMapping &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127615 Interprocess (by JScript)] - Remotely execute a function in another script (using Mailslot).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=193158 IPC_IO (by JohnWIlling)] - IPC library supporting multiple connection types (such as: Named Pipe, File, TCP, SharedMemory, MailSlot)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106710 Mailslot (by trancexx)] - IPC using Mailslots.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169797 Pool - Post Office for Organised Labour (by RTFC)] - Provides multiple AutoIt processes with an infrastructure for exchanging messages, data, and remote-control instructions.&lt;br /&gt;
&lt;br /&gt;
== Files, Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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;
* [https://www.autoitscript.com/forum/topic/114406-csv-file-to-multidimensional-array/?do=findComment&amp;amp;comment=799820 CSV (by ProgAndy)] - Read/write CSV files to/from 2D arrays.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=197909 CSV (by seangriffin)] - Manipulate CSV files&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121985 AutoIt Machine Code Algorithm Collection (by Ward)] - Checksum, Compression, Encode and hash algorithm collection for 32 and 64 bit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121985 AutoIt Machine Code Algorithm Collection (by Ward)] - Checksum, Compression, Encode and hash algorithm collection for 32 and 64 bit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=194693 MTSkin (by Taskms4)] - Simply create modern looking GUIs (borderless GUI, Interactive menu panel (with mouse-over detection), a bunch of skins)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=110003 Tray Icon Bar Graph (by BeeGee)] - Creates a scrolling bar graph as the tray icon.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquee (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99713 Drive Info (by NerdFencer)] - Gathers drive info for Hard Drives, Disk Drives, and Floppy Drives.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182684 Nitgen (by Jefrey)] - UDF to work with Nitgen fingerprint readers that use NGenBio SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184817 SyslogSend (by Irios)] - This allows sending (BSD) messages to a syslog server using UDP&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116009 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=192422 Gmail API (by Ascer)] - Automate communication with Gmail using oAuth 2.0 security. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - Monitors the file system by recording all file system events occurring within a given path.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Control and manipulate the Windows Firewall (enable/disable, Exclusions list, enable/disable ports etc.)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Control any Android device.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - Manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Functions to better deal with binary variables.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87735 BlockInputEx (by MrCreatoR)] - Supports a few features that built-in BlockInput() function does not.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=29763 Clipboard (by eltorro)] - When apps need to watch the clipboard.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170630 ClipboardEx (by ozmike)] - Allows to have more than 1 item in the Clipboard. Handles all data types, not just text.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - Ttransform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - Embed compiled Flat Assembler (FASM) code in your script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - Retrieve MIME types based on the extension of the filename/filepath/URL provided.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon (by J2TeaM)] - Use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - Overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111492 Link Grammar for AutoIt (by JRowe)] -  Input is a regular sentence in English, German or Italian, output is a pattern parsed from the structure of the sentence.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - Create, delete and manage self notify icons (formerly TrayIconEx). &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Embed any binary data into your AutoIt compiled EXE files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - Up to date version of Zedna&#039;s Resources UDF. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111215 Restart (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - Editing control, supports multiple editors.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=152093 ScriptEditor (by pandel)] - ScriptEditor with I18N support and customizable lexer completely written in AutoIt (based on SciLexer).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker functions to call Hunspell, Hyphenate and MyThes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - Functions to interact with a Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap (by Beege)] - Automatic Window Alignment by applying that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13866</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=13866"/>
		<updated>2018-10-23T19:43:29Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: JSON moved to: &amp;quot;Files, Databases and web connections&amp;quot;&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (331 UDFs on 2018/10/22), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=454 cDebug (by c.haslam)] - Dumps the values of all AutoIt subtypes and expressions including nested arrays, DLL structs and maps.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
=== Inter Process Communications ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126936 Container (by MrCreatoR)] - Scripts interaction method. Allows to transfer whole arrays as data, and even COM objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - Use your AutoIt script as DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=193277 FMIPC (by argumentum)] - IPC via FileMapping &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127615 Interprocess (by JScript)] - Remotely execute a function in another script (using Mailslot).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=193158 IPC_IO (by JohnWIlling)] - IPC library supporting multiple connection types (such as: Named Pipe, File, TCP, SharedMemory, MailSlot)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106710 Mailslot (by trancexx)] - IPC using Mailslots.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169797 Pool - Post Office for Organised Labour (by RTFC)] - Provides multiple AutoIt processes with an infrastructure for exchanging messages, data, and remote-control instructions.&lt;br /&gt;
&lt;br /&gt;
== Files, Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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;
* [https://www.autoitscript.com/forum/topic/114406-csv-file-to-multidimensional-array/?do=findComment&amp;amp;comment=799820 CSV (by ProgAndy)] - Read/write CSV files to/from 2D arrays.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121985 AutoIt Machine Code Algorithm Collection (by Ward)] - Checksum, Compression, Encode and hash algorithm collection for 32 and 64 bit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121985 AutoIt Machine Code Algorithm Collection (by Ward)] - Checksum, Compression, Encode and hash algorithm collection for 32 and 64 bit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182684 Nitgen (by Jefrey)] - UDF to work with Nitgen fingerprint readers that use NGenBio SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184817 SyslogSend (by Irios)] - This allows sending (BSD) messages to a syslog server using UDP&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=809854 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111492 Link Grammar for AutoIt (by JRowe)] -  It&#039;s somewhat akin to a reverse regular expression. You input a regular English (or German or Italian) sentence, and it outputs a pattern parsed from the structure of the sentence. http://www.link.cs.cmu.edu/link/&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF. Embed any binary data into your AutoIt compiled EXE files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - Up to date version of Zedna&#039;s Resources UDF. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=152093 LexingUDF (by pandel)] - LexingUDF + ScriptEditor with I18N support and customizable lexer completely written in AutoIt (based on SciLexer).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13863</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=13863"/>
		<updated>2018-10-22T00:59:32Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: counter changed from 329 to 330&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (330 UDFs on 2018/10/22), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
=== Inter Process Communications ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126936 Container (by MrCreatoR)] - Scripts interaction method. Allows to transfer whole arrays as data, and even COM objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - Use your AutoIt script as DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=193277 FMIPC (by argumentum)] - IPC via FileMapping &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127615 Interprocess (by JScript)] - Remotely execute a function in another script (using Mailslot).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=193158 IPC_IO (by JohnWIlling)] - IPC library supporting multiple connection types (such as: Named Pipe, File, TCP, SharedMemory, MailSlot)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106710 Mailslot (by trancexx)] - IPC using Mailslots.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169797 Pool - Post Office for Organised Labour (by RTFC)] - Provides multiple AutoIt processes with an infrastructure for exchanging messages, data, and remote-control instructions.&lt;br /&gt;
&lt;br /&gt;
== Files, Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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;
* [https://www.autoitscript.com/forum/topic/114406-csv-file-to-multidimensional-array/?do=findComment&amp;amp;comment=799820 CSV (by ProgAndy)] - Read/write CSV files to/from 2D arrays.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121985 AutoIt Machine Code Algorithm Collection (by Ward)] - Checksum, Compression, Encode and hash algorithm collection for 32 and 64 bit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121985 AutoIt Machine Code Algorithm Collection (by Ward)] - Checksum, Compression, Encode and hash algorithm collection for 32 and 64 bit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182684 Nitgen (by Jefrey)] - UDF to work with Nitgen fingerprint readers that use NGenBio SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184817 SyslogSend (by Irios)] - This allows sending (BSD) messages to a syslog server using UDP&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=809854 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111492 Link Grammar for AutoIt (by JRowe)] -  It&#039;s somewhat akin to a reverse regular expression. You input a regular English (or German or Italian) sentence, and it outputs a pattern parsed from the structure of the sentence. http://www.link.cs.cmu.edu/link/&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF. Embed any binary data into your AutoIt compiled EXE files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - Up to date version of Zedna&#039;s Resources UDF. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=152093 LexingUDF (by pandel)] - LexingUDF + ScriptEditor with I18N support and customizable lexer completely written in AutoIt (based on SciLexer).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13862</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=13862"/>
		<updated>2018-10-22T00:59:04Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Hardware */ added Nitgen (by Jefrey)&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (329 UDFs on 2018/10/20), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
=== Inter Process Communications ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126936 Container (by MrCreatoR)] - Scripts interaction method. Allows to transfer whole arrays as data, and even COM objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - Use your AutoIt script as DDE client or server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=193277 FMIPC (by argumentum)] - IPC via FileMapping &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127615 Interprocess (by JScript)] - Remotely execute a function in another script (using Mailslot).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=193158 IPC_IO (by JohnWIlling)] - IPC library supporting multiple connection types (such as: Named Pipe, File, TCP, SharedMemory, MailSlot)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=106710 Mailslot (by trancexx)] - IPC using Mailslots.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169797 Pool - Post Office for Organised Labour (by RTFC)] - Provides multiple AutoIt processes with an infrastructure for exchanging messages, data, and remote-control instructions.&lt;br /&gt;
&lt;br /&gt;
== Files, Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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;
* [https://www.autoitscript.com/forum/topic/114406-csv-file-to-multidimensional-array/?do=findComment&amp;amp;comment=799820 CSV (by ProgAndy)] - Read/write CSV files to/from 2D arrays.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&lt;br /&gt;
&lt;br /&gt;
== Data compression ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121985 AutoIt Machine Code Algorithm Collection (by Ward)] - Checksum, Compression, Encode and hash algorithm collection for 32 and 64 bit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85094 7z, zip, gzip, bzip2, tar (by rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121985 AutoIt Machine Code Algorithm Collection (by Ward)] - Checksum, Compression, Encode and hash algorithm collection for 32 and 64 bit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182684 Nitgen (by Jefrey)] - UDF to work with Nitgen fingerprint readers that use NGenBio SDK.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184817 SyslogSend (by Irios)] - This allows sending (BSD) messages to a syslog server using UDP&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=809854 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111492 Link Grammar for AutoIt (by JRowe)] -  It&#039;s somewhat akin to a reverse regular expression. You input a regular English (or German or Italian) sentence, and it outputs a pattern parsed from the structure of the sentence. http://www.link.cs.cmu.edu/link/&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF. Embed any binary data into your AutoIt compiled EXE files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - Up to date version of Zedna&#039;s Resources UDF. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=152093 LexingUDF (by pandel)] - LexingUDF + ScriptEditor with I18N support and customizable lexer completely written in AutoIt (based on SciLexer).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=13861</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=13861"/>
		<updated>2018-10-21T23:21:43Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Dual Monitor + WorkingArea */ fixed: first screen width and height&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&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;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&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;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&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;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&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;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&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;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&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 $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&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;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.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;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&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;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.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;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&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;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&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;GuiEdit.au3&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;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&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;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SPI_GETWORKAREA = 0x30&lt;br /&gt;
Global $nGap = 20, $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Snapped Window&amp;quot;, 300, 200)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
#cs&lt;br /&gt;
    HWND hwnd;&lt;br /&gt;
    HWND hwndInsertAfter;&lt;br /&gt;
    int x;&lt;br /&gt;
    int y;&lt;br /&gt;
    int cx;&lt;br /&gt;
    int cy;&lt;br /&gt;
    UINT flags;&lt;br /&gt;
#ce&lt;br /&gt;
    Local $stRect = DllStructCreate(&amp;quot;int;int;int;int&amp;quot;)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    DllCall(&amp;quot;User32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;SystemParametersInfo&amp;quot;, &amp;quot;int&amp;quot;, $SPI_GETWORKAREA, &amp;quot;int&amp;quot;, 0, &amp;quot;ptr&amp;quot;, DllStructGetPtr($stRect), &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stRect, 1)&lt;br /&gt;
    Local $nTop = DllStructGetData($stRect, 2)&lt;br /&gt;
    Local $nRight  = DllStructGetData($stRect, 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
    Local $nBottom = DllStructGetData($stRect, 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft)&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop)&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight)&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.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;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&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, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13860</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13860"/>
		<updated>2018-10-21T22:27:28Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Does AutoIt have an agreed set of good practices ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of frequently asked questions asked on the forums.&lt;br /&gt;
&lt;br /&gt;
Other FAQs include:&lt;br /&gt;
* The one found in the [http://www.autoitscript.com/autoit3/docs/faq.htm AutoIt HelpFile].  Much of it is about the transition from V2 to V3, but most is still relevant and should be a port of call, as well as this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I debug my script?==&lt;br /&gt;
&lt;br /&gt;
=== In SciTE ===&lt;br /&gt;
This one has a myriad of answers, but the most effective is to begin by using the [http://www.autoitscript.com/autoit3/scite/ SciTE4AutoIt3 Editor] to create or edit scripts. This program is useful in debugging for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* Syntax highlighting allows for immediate viewing of any mistakes from unended script tags or quotes. This allows the scripter to visibly see the difference between the following portions of code.&lt;br /&gt;
[[File:FAQ_Q1_2.jpg|center|Incorrect code]]&lt;br /&gt;
And the correct version: &lt;br /&gt;
[[File:FAQ_Q1_3.jpg|center||Correct Code]]&lt;br /&gt;
* Global syntax check built directly into the tools menu allows you to check an entire script for problems all at once.&lt;br /&gt;
* Built-in code tidying program that correctly indents untidy code and repairs messy scripts to allow them to be more readable. It also corrects problems with incorrectly capitalised function names and variables.&lt;br /&gt;
* Per-line trace insertion allows you to log every line of code executed to debug errors.&lt;br /&gt;
* Debug MsgBoxes or ConsoleWrites are able to be added anywhere in the script directly from SciTE. ConsoleWrite lines are less intrusive and prevent the added annoyance to the user of MsgBoxes.&lt;br /&gt;
&lt;br /&gt;
You can also use AutoIt3Wrapper directive:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#AutoIt3Wrapper_Run_Debug_Mode=Y&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FAQ_Q1_4.jpg|center|Picture of SciTE4AutoIt3]]&lt;br /&gt;
&lt;br /&gt;
=== Using more code to check @error value ===&lt;br /&gt;
Nearly all functions will return something.  Most of the time when a function fails, it returns 0 and sets @error.  You can use this information not only to create scripts that handle for different errors but to debug and find out exactly why you are having problems.  Check the help file for specific functions and their return values.&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;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	Local $aFileList = _FileListToArray(@ScriptDir, &#039;NO_EXISTING_FILE.TEST&#039;)&lt;br /&gt;
	If @error Then ; check if _FileListToArray() function return any error&lt;br /&gt;
		MsgBox($MB_ICONERROR, &#039;_FileListToArray&#039;, &#039;@error = &#039; &amp;amp; @error &amp;amp; @CRLF &amp;amp; &#039;@extended = &#039; &amp;amp; @extended) ; show error message&lt;br /&gt;
		Return ; return / exit from function to prevent unexpected further error&#039;s&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	For $iFile_idx = 1 To $aFileList[0]&lt;br /&gt;
		FileRead($aFileList[$iFile_idx])&lt;br /&gt;
		; any further code&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Via the Tray icon===&lt;br /&gt;
You can add this line at the top of your script (1 is on, 0 is off) to enable debugging from the tray icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;AutoItSetOption (&amp;quot;TrayIconDebug&amp;quot;, 1);0-off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then if you run the script (uncompiled as an AU3 file), you can mouse over the AutoIt icon in the system tray (down by the clock) to display debugging information.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_1.jpg|center|Example output for TrayIconDebug]]&lt;br /&gt;
&lt;br /&gt;
=== OutputDebugString native call ===&lt;br /&gt;
You can also debug a script on any computer by adding the following code to your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _MyDebug($sMessage, $iError = @error, $iExtended = @extended)&lt;br /&gt;
	If $iError Or $iExtended Then&lt;br /&gt;
		$sMessage &amp;amp;= &#039;[ @error = &#039; &amp;amp; $iError &amp;amp; &#039; @extended = &#039; &amp;amp; $iExtended &amp;amp; &#039; ]&#039;&lt;br /&gt;
	EndIf&lt;br /&gt;
	DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;OutputDebugString&amp;quot;, &amp;quot;str&amp;quot;, $sMessage)&lt;br /&gt;
	Return SetError($iError, $iExtended, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyDebug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then, when you need to add a debug line, call it as necessary. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;_MyDebug(&amp;quot;The value of Variable 1 at this time is &amp;quot; &amp;amp; $var1)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This debugging is completely transparent to the user, and is only viewable with a program such as DebugView from SysInternals. This method of debugging has the added advantage of being available to the developer in situations where is not acceptable or feasable to install SciTE on a client&#039;s unit.&lt;br /&gt;
&lt;br /&gt;
=== Graphical debugger ===&lt;br /&gt;
Stumpii created a [http://www.autoitscript.com/forum/index.php?showtopic=21834 Graphical AutoIt Debugger], similar to Dev-C++&#039;s debugging style.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_5.jpg|center|Stumpii&#039;s Graphical AutoIt Debugger]]&lt;br /&gt;
&lt;br /&gt;
=== Another debugger for AutoIt ===&lt;br /&gt;
Heron created a [http://www.autoitscript.com/forum/index.php?showtopic=103142 Another debugger for AutoIt].&lt;br /&gt;
&lt;br /&gt;
The latest version by asdf8 is here:&lt;br /&gt;
https://www.autoitscript.com/forum/topic/103142-another-debugger-for-autoit/?do=findComment&amp;amp;comment=1303208&lt;br /&gt;
&lt;br /&gt;
=== Other UDF to log/trace/script analyze ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
==How can I run something that is not an exe file [.txt, .msi, .pdf,.jpg etc.] [or] How can I open a webpage in the default browser?==&lt;br /&gt;
It was for this reason that the ShellExecute function was created. Here is one example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;edit&amp;quot;, @SW_MAXIMIZE)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also specify a web address this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;http://www.autoitscript.com/forum&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;open&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you normally are able to right-click the file and select print, then you can also print the file from AutoIt using this function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\boot.ini&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;print&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to open the file with the default program, you can do as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish your script to wait until the process is finished, you can use the ShellExecuteWait function with the same parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The default verb is the verb configured in the registry. If no verb is set as default in the registry then the &amp;quot;open&amp;quot; verb is used. If the &amp;quot;open&amp;quot; verb is not present then the first verb listed in the registry is used.&lt;br /&gt;
&lt;br /&gt;
==How can I prevent more than one copy of my script from running at once, or detect another copy of my script running?==&lt;br /&gt;
&lt;br /&gt;
=== _Singleton function ===&lt;br /&gt;
There are a few different ways to go about this. You can use a function called _Singleton to detect multiple instances of your script. An example of how to use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
_Singleton(&amp;quot;TheNameOfMyScript&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this instance, the script will bring up some messages explaining to the user of the occurring events. &lt;br /&gt;
This example will show you how the above function can be used in a real world application.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _Singleton(&amp;quot;MyScriptName&amp;quot;, 1) = 0 Then&lt;br /&gt;
    ; If successful, running our script a second time should cause us to fall through here&lt;br /&gt;
    MsgBox($MB_ICONERROR, &amp;quot;User Generated Error Message&amp;quot;, &amp;quot;Error: This script is already running!&amp;quot;)&lt;br /&gt;
Else&lt;br /&gt;
    ; We have detected that we are the only instance running, now we will run a second instance to display _Singleton&#039;s function!&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We are the first instance of this script, press OK to run another instance and trigger the error message!&amp;quot;)&lt;br /&gt;
    Switch @Compiled&lt;br /&gt;
        Case 1&lt;br /&gt;
            Run(FileGetShortName(@ScriptFullPath));when running an app, it&#039;s usually better to use its short name&lt;br /&gt;
        Case 0&lt;br /&gt;
            Run(FileGetShortName(@AutoItExe) &amp;amp; &#039; /AutoIt3ExecuteScript &#039; &amp;amp; FileGetShortName(@ScriptFullPath))&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We ran a second instance, you should have recieved an error message!&amp;quot;, 5)&lt;br /&gt;
EndIf&lt;br /&gt;
Exit&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_MutexExists function ===&lt;br /&gt;
Another method is to use _MutexExists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _MutexExists(&amp;quot;MydeswswScriptName&amp;quot;) Then&lt;br /&gt;
	; We know the script is already running. Let the user know.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;Script Name&amp;quot;, &amp;quot;This script is already running. Using multiple copies of this script at the same time is unsupported!&amp;quot;)&lt;br /&gt;
	Exit&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
;Function Author- Martin&lt;br /&gt;
Func _MutexExists($sOccurenceName)&lt;br /&gt;
	Local $ERROR_ALREADY_EXISTS = 183, $handle, $lastError&lt;br /&gt;
	$sOccurenceName = StringReplace($sOccurenceName, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;); to avoid error&lt;br /&gt;
	$handle = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;CreateMutex&amp;quot;, &amp;quot;int&amp;quot;, 0, &amp;quot;long&amp;quot;, 1, &amp;quot;str&amp;quot;, $sOccurenceName)&lt;br /&gt;
	$lastError = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetLastError&amp;quot;)&lt;br /&gt;
	Return $lastError[0] = $ERROR_ALREADY_EXISTS&lt;br /&gt;
EndFunc;==&amp;gt;_MutexExists&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I run my script as a service?==&lt;br /&gt;
This is also a question with multiple answers, and none of them are the only way to do it. The first question to ask yourself is whether or not you wish to install the service on other computers besides your own.&lt;br /&gt;
&lt;br /&gt;
=== On your own computer - One time only ===&lt;br /&gt;
The easiest way to do this is to use Pirmasoft RunAsSvc. This program makes services easy to install and easy to remove when necessary.&lt;br /&gt;
&lt;br /&gt;
=== On all computers that run your script===&lt;br /&gt;
To do this you can use SRVANY.EXE and [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3]. You can then use this code to install your script as a service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_CreateService(&amp;quot;&amp;quot;, $servicename, &amp;quot;My AutoIt Script&amp;quot;, &amp;quot;C:\Path_to_\srvany.exe&amp;quot;, &amp;quot;LocalSystem&amp;quot;, &amp;quot;&amp;quot;, 0x110)&lt;br /&gt;
RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\&amp;quot; &amp;amp; $servicename &amp;amp; &amp;quot;\Parameters&amp;quot;, &amp;quot;Application&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the following code to delete this service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_DeleteService(&amp;quot;&amp;quot;, $servicename)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one caveat to setting up AutoIt as a service. If the service is not installed using the above code, it must have the &amp;quot;allow service to interact with the desktop&amp;quot; setting or else automation functions such as Control* or Win* functions will not function. To assure the service does indeed have this setting, use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\[ServiceName]&amp;quot;, &amp;quot;Type&amp;quot;, &amp;quot;REG_DWORD&amp;quot;, 0x110)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I create/start/stop or otherwise control a service?==&lt;br /&gt;
There are two include libraries that are designed specifically to interact with services. These are the following:&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3] made by SumTingWong. Functionality:&lt;br /&gt;
** _StartService()&lt;br /&gt;
** _StopService()&lt;br /&gt;
** _ServiceExists()&lt;br /&gt;
** _ServiceRunning()&lt;br /&gt;
** _CreateService()&lt;br /&gt;
** _DeleteService()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22165 _NTServices.au3] made by CatchFish. Functionality:&lt;br /&gt;
** _ServiceStart()&lt;br /&gt;
** _ServiceStop()&lt;br /&gt;
** _ServiceStatus()&lt;br /&gt;
** _ServicePause()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I display a progress bar while copying files or directories?==&lt;br /&gt;
There are a many different topics on how to do this.  For more, just search the forums for [http://www.autoitscript.com/forum/index.php?act=Search&amp;amp;CODE=show&amp;amp;searchid=22030d4d4effe5e32da23fdb69ed772f&amp;amp;search_in=posts&amp;amp;result_type=topics&amp;amp;highlite=%2BCopy%2B Progress Copy + Progress].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11313 Copy with progress dialog]... By ezztabi&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11888 Yet another copy with progress]... By SumTingWong&lt;br /&gt;
* [http://www.autoit.de/index.php?page=Thread&amp;amp;postID=58875 _MultiFileCopy]... By Oscar (German Forums)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19370&amp;amp;st=45&amp;amp;p=186198&amp;amp;#entry186198 _FileCopy]... By Jos&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q6_1.jpg|center|Copy progress dialog by ezztabi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make a hotkey that only works in my GUI?==&lt;br /&gt;
It used to be quite tedious setting hotkeys to only work in your GUI.  Now there is an easier way with the function GUISetAccelerators.&lt;br /&gt;
&lt;br /&gt;
(From Helpfile example)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; A simple custom messagebox that uses the MessageLoop mode&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Custom Msgbox&amp;quot;, 210, 80)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Please click a button!&amp;quot;, 10, 10)&lt;br /&gt;
$YesID = GUICtrlCreateButton(&amp;quot;Yes&amp;quot;, 10, 50, 50, 20)&lt;br /&gt;
$NoID = GUICtrlCreateButton(&amp;quot;No&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$ExitID = GUICtrlCreateButton(&amp;quot;Exit&amp;quot;, 150, 50, 50, 20)&lt;br /&gt;
&lt;br /&gt;
; Set accelerators for Ctrl+y and Ctrl+n&lt;br /&gt;
Dim $AccelKeys[2][2]=[[&amp;quot;^y&amp;quot;, $YesID], [&amp;quot;^n&amp;quot;, $NoID]]&lt;br /&gt;
GUISetAccelerators($AccelKeys)&lt;br /&gt;
&lt;br /&gt;
GUISetState(); display the GUI&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
	$msg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case $msg = $YesID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		Case $msg = $NoID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;No&amp;quot;)&lt;br /&gt;
		Case $msg = $ExitID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Exit&amp;quot;)&lt;br /&gt;
		Case $msg = $GUI_EVENT_CLOSE&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Close&amp;quot;)&lt;br /&gt;
	EndSelect&lt;br /&gt;
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I perform an action while a key is held down?==&lt;br /&gt;
You can use the _IsPressed() function to determine when a key is held down. The values that can be specified in this function are listed in the AutoIt Help File under User Defined Functions -&amp;gt; Misc Management -&amp;gt; _IsPressed. The following example will press the left mouse button while the k key is held down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
$pressed = 0&lt;br /&gt;
While 1&lt;br /&gt;
	If _IsPressed(&amp;quot;4B&amp;quot;) Then&lt;br /&gt;
		If Not $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;K Key being held down&amp;quot;)&lt;br /&gt;
			MouseDown(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 1&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		If $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;&amp;quot;)&lt;br /&gt;
			MouseUp(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 0&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(250)&lt;br /&gt;
WEnd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I run my script on a remote computer over the network?==&lt;br /&gt;
The answer to this question depends on how much experience you have in networking. If the target system is a Windows system to which you have administrator access then you may use one of the following programs:&lt;br /&gt;
&lt;br /&gt;
* PsExec from SysInternals&lt;br /&gt;
* BeyondExec from BeyondLogic&lt;br /&gt;
&lt;br /&gt;
With either of these programs it is possible to launch any process on a remote system and even copy your script to the target computer before starting it. Neither these programs nor any others will work with Windows XP Home Edition unless you create a custom &amp;quot;command listener&amp;quot; that you manually install on the target system.&lt;br /&gt;
&lt;br /&gt;
NOTE: Those of you with more advanced programming skills and a little imagination can figure out how to use the service control libraries and srvany.exe to do this same thing without either of the above mentioned programs.&lt;br /&gt;
&lt;br /&gt;
==How can I make a User Defined Function with optional parameters like the ones I see in the Help File?==&lt;br /&gt;
You can specify optional parameters by giving them a default value in the Func declaration. An example of how this is done:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Func testme($param1, $param2 = &amp;quot;nothing&amp;quot;, $param3 = 5)&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;&amp;quot;, &amp;quot;Parameter one is required. The value of Parameter 1 is &amp;quot; &amp;amp; $param1 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 2 is optional. The value of Parameter 2 is &amp;quot; &amp;amp; $param2 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 3 is optional. The value of Parameter 3 is &amp;quot; &amp;amp; $param3)&lt;br /&gt;
EndFunc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If testme() is called with only one parameter [I.E. testme(&amp;quot;test&amp;quot;)] then the output is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
However, if the function is called with more than one parameter like this testme(&amp;quot;test&amp;quot;, &amp;quot;something&amp;quot;), then the output is&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is something&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make my script start every time windows starts?==&lt;br /&gt;
You can use one of the following codes to allow your script to start with Windows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&amp;quot;, &amp;quot;MyProgramName&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;FileCreateShortcut(@ScriptFullPath, @StartupCommonDir &amp;amp; &amp;quot;\MyProgramName.lnk&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or place a Shortcut in the Startup folder, or the entire Executable.  For Win8+ systems, use the Win+R keys to open a Run box, then &amp;quot;Shell:Startup&amp;quot; to access the Startup folder. Due to Windows User Account Control (UAC) restrictions, your script may require [https://www.autoitscript.com/autoit3/docs/keywords/RequireAdmin.htm #RequireAdmin].&lt;br /&gt;
&lt;br /&gt;
==How can I have the script delete itself?==&lt;br /&gt;
The following function will delete the running script or .exe once it has finished execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: Make a copy of your script before calling this function!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _SelfDelete($iDelay = 0)&lt;br /&gt;
	Local $sCmdFile&lt;br /&gt;
	FileDelete(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;)&lt;br /&gt;
	$sCmdFile = &#039;ping -n &#039; &amp;amp; $iDelay &amp;amp; &#039; 127.0.0.1 &amp;gt; nul&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;:loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot;&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;if exist &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; goto loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del %0&#039;&lt;br /&gt;
	FileWrite(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, $sCmdFile)&lt;br /&gt;
	Run(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, @TempDir, @SW_HIDE)&lt;br /&gt;
EndFunc;==&amp;gt;_SelfDelete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I create a clickable website hyperlink in my gui?==&lt;br /&gt;
[[File:FAQ_Q13_1.jpg|center|Example GUI using Gary&#039;s UDF.]]&lt;br /&gt;
&lt;br /&gt;
Gary Frost has made great advances in this area and has provided a [http://www.autoitscript.com/forum/index.php?showtopic=23111&amp;amp;st=0 UDF here] (&#039;&#039;&#039;the UDF was removed from the post&#039;&#039;&#039;) to help with doing this.&lt;br /&gt;
&lt;br /&gt;
==How can I change the screen resolution / refresh rate / color depth?==&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=20121 ChangeResolution.au3] is a library function created to make changes to these settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I get the screen resolution in multiple monitor setups?==&lt;br /&gt;
The following code was worked out by Larry to determine the total screen resolution of multiple monitors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$aTSR = _GetTotalScreenResolution()&lt;br /&gt;
MsgBox($MB_OK, &amp;quot;Total Screen Resolution&amp;quot;, &amp;quot;Width = &amp;quot; &amp;amp; $aTSR[0] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Height = &amp;quot; &amp;amp; $aTSR[1])&lt;br /&gt;
&lt;br /&gt;
;Original code by Larry.&lt;br /&gt;
;Edited by BrettF&lt;br /&gt;
Func _GetTotalScreenResolution()&lt;br /&gt;
	Local $aRet[2]&lt;br /&gt;
	Global Const $SM_VIRTUALWIDTH = 78&lt;br /&gt;
	Global Const $SM_VIRTUALHEIGHT = 79&lt;br /&gt;
	$VirtualDesktopWidth = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALWIDTH)&lt;br /&gt;
	$aRet[0] = $VirtualDesktopWidth[0]&lt;br /&gt;
	$VirtualDesktopHeight = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALHEIGHT)&lt;br /&gt;
	$aRet[1] = $VirtualDesktopHeight[0]&lt;br /&gt;
	Return $aRet&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  How can I register a file type with my program [or] How can I make files with a certain extension open in my program?==&lt;br /&gt;
[[File:FAQ_Q16_1.jpg|center|Example of how a file type can be registered.]]&lt;br /&gt;
File registration can be a tricky business for those who have not done it before. The first thing to be done is to modify your script to allow it to accept files from the command line. Here is one example of how to do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;$cmdline[0] is the number of parameters passed&lt;br /&gt;
If $cmdline[0] &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
	$filename = $cmdline[1]&lt;br /&gt;
;Do something with the file here&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;The file name passed to the command line is &amp;quot;&#039; &amp;amp; $filename &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
Else&lt;br /&gt;
; We did not get any command line parameters.&lt;br /&gt;
; If this is a command line only program, you would want to&lt;br /&gt;
; alert the user that the command line parameters were incorrect.&lt;br /&gt;
; If this is a GUI program (like a notepad program), you would&lt;br /&gt;
; want to simply continue from here without opening a file.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;Command line parameters incorrect.&#039; &amp;amp; @CRLF &amp;amp; &#039;Command line usage: &amp;quot;&#039; &amp;amp; @ScriptName &amp;amp; &#039;&amp;quot; &amp;quot;file to process&amp;quot;&#039;)&lt;br /&gt;
 EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After your script is ready to accept files, you can begin to register the file type you need with your program. To prevent errors, this-is-me has created a UDF that will allow you to do this easily:&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to register and unregister a file extension using this UDF:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;quot;FileRegister.au3&amp;quot;&lt;br /&gt;
;================================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileRegister($ext, $cmd, $verb [, $def [, $icon = &amp;quot;&amp;quot; [, $desc = &amp;quot;&amp;quot; ]]])&lt;br /&gt;
;			   Registers a file type in Explorer&lt;br /&gt;
;&lt;br /&gt;
; Parameter(s): $ext -  File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;		$cmd -  Program path with arguments eg. &#039;&amp;quot;C:\test\testprog.exe&amp;quot; &amp;quot;%1&amp;quot;&#039;&lt;br /&gt;
;			 (%1 is 1st argument, %2 is 2nd, etc.)&lt;br /&gt;
;		$verb - Name of action to perform on file&lt;br /&gt;
;			 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;		$def -  Action is the default action for this filetype&lt;br /&gt;
;			 (1 for true 0 for false)&lt;br /&gt;
;			 If the file is not already associated, this will be the default.&lt;br /&gt;
;		$icon - Default icon for filetype including resource # if needed&lt;br /&gt;
;			 eg. &amp;quot;C:\test\testprog.exe,0&amp;quot; or &amp;quot;C:\test\filetype.ico&amp;quot;&lt;br /&gt;
;		$desc - File Description eg. &amp;quot;Zip File&amp;quot; or &amp;quot;ProgramName Document&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;================================================&lt;br /&gt;
&lt;br /&gt;
 FileRegister(&amp;quot;uxy&amp;quot;, &#039;&amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; &amp;quot;%1&amp;quot;&#039;, &amp;quot;Open in UXYFixer&amp;quot;, 1, @ScriptFullPath &amp;amp; &#039;,0&#039;, &amp;quot;UXYFixer Document&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;========================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileUnRegister($ext, $verb)&lt;br /&gt;
;			   UnRegisters a verb for a file type in Explorer&lt;br /&gt;
; Parameter(s):  $ext - File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;			   $verb - Name of file action to remove&lt;br /&gt;
;					 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;========================================&lt;br /&gt;
&lt;br /&gt;
 FileUnRegister(&amp;quot;uxy&amp;quot;, &amp;quot;Open in UXYFixer&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download here:&#039;&#039;&#039;&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=26378 FileRegister.au3]&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my combobox (GUICtrlCreateCombo) show a dropdown list when clicked?==&lt;br /&gt;
When using GUICtrlCreateCombo be sure to enter the desired height for your combobox list in the &amp;quot;height&amp;quot; parameter. Windows XP automatically selects an appropriate height for combo boxes, but other versions of Windows usually do not.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,20)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Would correctly be changed to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,200)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why isn&#039;t my thread getting any replies?==&lt;br /&gt;
&lt;br /&gt;
=== Asking the right question right ===&lt;br /&gt;
Did you give a good description of the problem? If your title or explanation of the issue is not descriptive, users are likely to bypass your issue instead of helping. Post titles such as &amp;quot;Help Me&amp;quot;, &amp;quot;I Have A Problem&amp;quot;, &amp;quot;Question&amp;quot;, &amp;quot;Help me fix my code&amp;quot;, &amp;quot;This code doesn&#039;t work&amp;quot; or similarly worded titles will not readily draw forum users to your post. Experienced users (which are your best hope of resolving the issue) will often skip your post altogether in cases like this. An example of a post title descriptive enough to attract users to assist you is &amp;quot;Problem with WinWaitClose&amp;quot; or &amp;quot;Loop never ends&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Example for reproduction ===&lt;br /&gt;
Did you post example code? If you have not posted an example of the code you are having an issue with, then you will not recieve support. When posting a non-working script, please do so in the smallest amount of stand-alone code possible. If the code you post cannot run by itself on another person&#039;s computer, they will not be able to recreate the issue.&lt;br /&gt;
&lt;br /&gt;
=== Information about Environment ===&lt;br /&gt;
Did you provide any information about your AutoIt Development Environment ? &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
; Version: 1.00. AutoIt: V3.3.8.1&lt;br /&gt;
; Retrieve the recommended information of the current system when posting a support question.&lt;br /&gt;
Local $sSystemInfo = &#039;I have a valid AutoIt support question and kindly provided the details of my system:&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;AutoIt Version: V&#039; &amp;amp; @AutoItVersion &amp;amp; &#039; [&#039; &amp;amp; (@AutoItX64 ?&#039;X64&#039;:&#039;X32&#039;) &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Windows Version: &#039; &amp;amp; @OSVersion &amp;amp; &#039; [&#039; &amp;amp; @OSArch &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Language: &#039; &amp;amp; _GetOSLanguage() &amp;amp; &#039; (&#039; &amp;amp; @OSLang &amp;amp; &#039;)&#039; &amp;amp; @CRLF &amp;amp; @CRLF&lt;br /&gt;
ClipPut($sSystemInfo)&lt;br /&gt;
MsgBox(4096, &#039;This info has been copied to the clipboard. Use Ctrl + V to retrieve it.&#039;, $sSystemInfo)&lt;br /&gt;
&lt;br /&gt;
Func _GetOSLanguage()&lt;br /&gt;
     Local $aString[20] = [19, &amp;quot;0409 0809 0C09 1009 1409 1809 1C09 2009 2409 2809 2C09 3009 3409&amp;quot;, &amp;quot;0404 0804 0C04 1004 0406&amp;quot;, &amp;quot;0406&amp;quot;, &amp;quot;0413 0813&amp;quot;, &amp;quot;0425&amp;quot;, _&lt;br /&gt;
               &amp;quot;040B&amp;quot;, &amp;quot;040C 080C 0C0C 100C 140C 180C&amp;quot;, &amp;quot;0407 0807 0C07 1007 1407&amp;quot;, &amp;quot;040E&amp;quot;, &amp;quot;0410 0810&amp;quot;, _&lt;br /&gt;
               &amp;quot;0411&amp;quot;, &amp;quot;0414 0814&amp;quot;, &amp;quot;0415&amp;quot;, &amp;quot;0416 0816&amp;quot;, &amp;quot;0418&amp;quot;, _&lt;br /&gt;
               &amp;quot;0419&amp;quot;, &amp;quot;081A 0C1A&amp;quot;, &amp;quot;040A 080A 0C0A 100A 140A 180A 1C0A 200A 240A 280A 2C0A 300A 340A 380A 3C0A 400A 440A 480A 4C0A 500A&amp;quot;, &amp;quot;041D 081D&amp;quot;]&lt;br /&gt;
     Local $aLanguage[20] = [19, &amp;quot;English&amp;quot;, &amp;quot;Chinese&amp;quot;, &amp;quot;Danish&amp;quot;, &amp;quot;Dutch&amp;quot;, &amp;quot;Estonian&amp;quot;, &amp;quot;Finnish&amp;quot;, &amp;quot;French&amp;quot;, &amp;quot;German&amp;quot;, &amp;quot;Hungarian&amp;quot;, &amp;quot;Italian&amp;quot;, _&lt;br /&gt;
               &amp;quot;Japanese&amp;quot;, &amp;quot;Norwegian&amp;quot;, &amp;quot;Polish&amp;quot;, &amp;quot;Portuguese&amp;quot;, &amp;quot;Romanian&amp;quot;, &amp;quot;Russian&amp;quot;, &amp;quot;Serbian&amp;quot;, &amp;quot;Spanish&amp;quot;, &amp;quot;Swedish&amp;quot;]&lt;br /&gt;
     For $i = 1 To $aString[0]&lt;br /&gt;
          If StringInStr($aString[$i], @OSLang) Then&lt;br /&gt;
               Return $aLanguage[$i]&lt;br /&gt;
          EndIf&lt;br /&gt;
     Next&lt;br /&gt;
     Return $aLanguage[1]&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetOSLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Speak English and speak it right ===&lt;br /&gt;
Did you use proper English? Here are guidelines for posting properly in the English language:&lt;br /&gt;
* Use proper case.  THIS IS CONSIDERED YELLING. If you post in ALL UPPERCASE or all lowercase then you will not be taken seriously.&lt;br /&gt;
* Use proper punctuation. Complete sentences need only one trailing punctuation mark. Twelve exclamation points after every sentence &amp;lt;b&amp;gt;will not&amp;lt;/b&amp;gt; get you an answer more quickly (just the opposite) Writing a sentence without simple punctuation such as commas reflects badly on your attention to detail, and is considered a good judge of the poster&#039;s coding style. If you cannot summon the intellect to write a sentence with correct punctuation, you will most likely miss simple coding mistakes such as unterminated quotes.&lt;br /&gt;
&lt;br /&gt;
=== Breaking forum rules, law, modesty, or common sense ===&lt;br /&gt;
Show common sense by following the forum rules, http://www.autoitscript.com/forum/topic/169097-forum-rules/, as well as generally accepted forum etiquette. Repeated failure to do so will result in sanctions by the Moderation team as it ruins the experience for everyone.&lt;br /&gt;
&lt;br /&gt;
==Why does the Ctrl key get stuck down after I run my script?==&lt;br /&gt;
&lt;br /&gt;
=== Keys virtually stuck ===&lt;br /&gt;
It could equally be the Shift or the Alt key.&lt;br /&gt;
&lt;br /&gt;
If you use Send in a script and you have a problem with keys being stuck down then Send is the most likely culprit. A similar problem can occur with BlockInput. The solution is generally quite simple. If there is a key like Shift or Alt held down at the start of the Send sequence, but that key is released by the time the Send sequence finishes then the key will get &#039;stuck&#039; down. As an example of a solution, you could replace the Send function in your script with the _SendEx function below.&lt;br /&gt;
&lt;br /&gt;
The _SendEx function waits for the Shift, Alt and Ctrl keys to be released or pops up a warning if the $warn parameter is not an empty string. Therefore it is not intended to be used when one of these modifier keys has been set to be down using any combination of {ALTDOWN}, {SHIFTDOWN} and {ALTDOWN}.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt; Misc.au3 &amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
;Send the string $ss after the Shift Alt and Ctrl keys are released. Optionally give a warning after 1 sec if any of those keys are still down.&lt;br /&gt;
;Requires misc.au3 to be included in the script for the _IsPressed function.&lt;br /&gt;
&lt;br /&gt;
Func _SendEx($ss, $warn = &amp;quot;&amp;quot;)&lt;br /&gt;
	Local $iT = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	While _IsPressed(&amp;quot;10&amp;quot;) Or _IsPressed(&amp;quot;11&amp;quot;) Or _IsPressed(&amp;quot;12&amp;quot;)&lt;br /&gt;
		If $warn &amp;lt;&amp;gt; &amp;quot;&amp;quot; And TimerDiff($iT) &amp;gt; 1000 Then&lt;br /&gt;
			MsgBox($MB_TOPMOST, &amp;quot;Warning&amp;quot;, $warn)&lt;br /&gt;
		EndIf&lt;br /&gt;
		Sleep(50)&lt;br /&gt;
	WEnd&lt;br /&gt;
	Send($ss)&lt;br /&gt;
EndFunc;==&amp;gt;_SendEx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General unstuck method ===&lt;br /&gt;
Shilbiz also discovered that the following can &#039;clear&#039; locked down keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt; ControlSend(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;text&amp;quot;, 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use Pixel functions?==&lt;br /&gt;
&lt;br /&gt;
=== Using a color change as an event ===&lt;br /&gt;
The following is an example of using the pixel to check if the colour has changed in a specific region.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $PixelCheck = 0, $NewCheck&lt;br /&gt;
$PixelCheck = PixelCheckSum(40, 50, 60, 70); Get the checksum for this area.&lt;br /&gt;
While 1; Keep going&lt;br /&gt;
	$NewCheck = PixelCheckSum(40, 50, 60, 70)&lt;br /&gt;
	If $PixelCheck &amp;lt;&amp;gt; $NewCheck Then&lt;br /&gt;
		; The old pixel checksum and the new one are different.&lt;br /&gt;
		$PixelCheck = $NewCheck; Update the $PixelCheck to the new value&lt;br /&gt;
		; Let us know it has changed.  Change this to what you want to happen when the colour in the region changes.&lt;br /&gt;
		Msgbox($MB_ICONWARNING,&amp;quot;PixelChecksum&amp;quot;,&amp;quot;Pixel region has changed !&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(50); Just to give the CPU a bit of a break.&lt;br /&gt;
Wend&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Searching for a specific pixel color ===&lt;br /&gt;
This is an example of searching for a specific pixel (red), both pure red (0xFF0000) and red in a few different shades.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
; Find a pure red pixel in the range 0,0-20,300&lt;br /&gt;
&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Find a pure red pixel or a red pixel within 10 shades variations of pure red&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my script work on a locked workstation?==&lt;br /&gt;
On a locked station any window will never be active (active is only dialog with text &amp;quot;Press Ctrl+Alt+Del&amp;quot;).  In Windows locked state applications run hidden (behind that visible dialog) and do not have focus and active status.  So generally don&#039;t use Send() MouseClick() WinActivate() WinWaitActive() WinActive() etc.  Instead use ControlSend() ControlSetText() ControlClick() WinWait() WinExists() WinMenuSelectItem() etc.  Doing so allows you to interact with an application regardless of whether it is active or not. It&#039;s possible to run such a script from scheduler on locked Windows stations.&lt;br /&gt;
&lt;br /&gt;
==Where can I learn AutoIt? Are there any tutorials?==&lt;br /&gt;
AutoIt is a constantly growing and evolving language with a diverse and engaged community of volunteers. This wiki, along with the official forum, will always be your best place for answers to questions as well as examples and tutorials. With this in mind, below are a few resources that can also help you as you become familiar with the language:&lt;br /&gt;
&lt;br /&gt;
AutoIt 1-2-3, an interactive classroom by Valuater:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=21048 http://www.autoitscript.com/forum/index.php?showtopic=21048]&lt;br /&gt;
&lt;br /&gt;
BrettF&#039;s updated AutoIt tutorial:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=84960 http://www.autoitscript.com/forum/index.php?showtopic=84960]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Learn To Program Using FREE Tools with AutoIt&amp;quot; PDF Book by Jfish&lt;br /&gt;
[https://www.autoitscript.com/forum/files/file/351-learn-to-program-using-free-tools-with-autoit/ Learn To Program Using FREE Tools with AutoIt]&lt;br /&gt;
&lt;br /&gt;
YouTube has a number of videos available:&lt;br /&gt;
[http://www.youtube.com/results?search_query=autoit+tutorial&amp;amp;search_type=&amp;amp;aq=0&amp;amp;oq=AutoIt YouTube AutoIt tutorials list]&lt;br /&gt;
&lt;br /&gt;
As always, when asking questions about a video or script you saw on an external source, please ensure you are adhering to the [[FAQ#Breaking_forum_rules.2C_law.2C_modesty.2C_or_common_Sense|forum rules]].&lt;br /&gt;
&lt;br /&gt;
==Why does my script no longer decompile?==&lt;br /&gt;
Decompilation is no longer supported, and is only available for the older versions of AutoIt (Version 3.2.5.1 and earlier compiled scripts).&lt;br /&gt;
&lt;br /&gt;
Please &#039;&#039;&#039;do not&#039;&#039;&#039; post on this topic; see the [[Decompiling FAQ]] for more information. Topics discussing decompilation of scripts will be locked immediately. Posting the source of a decompiled script with lead to immediate sanctions from the Moderation team, as it directly violates AutoIt EULA (End-User-License-Agreement).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt;You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.&amp;lt;/i&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I get a window handle when all I have is a PID?==&lt;br /&gt;
Refer to the following example showing converting and use when manipulating the window. The function is based on work by Smoke_N/Hubertus and Helge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Run process&lt;br /&gt;
$iPID = Run(&amp;quot;Notepad.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;Allow window to initialize...&lt;br /&gt;
Sleep (500)&lt;br /&gt;
&lt;br /&gt;
;Get HWND.&lt;br /&gt;
$hWnd = _GetHwndFromPID($iPID)&lt;br /&gt;
&lt;br /&gt;
;Maximize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MAXIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Minimize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MINIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Restore window&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_RESTORE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Move top left corner of screen, and resize to 800x600&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, 0, 0, 800, 600)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Calculate Center of screen.&lt;br /&gt;
$x = (@DesktopWidth / 2) - 400; Desktop width divided by 2, then minus half the width of the window&lt;br /&gt;
$y = (@DesktopHeight / 2) - 300; Desktop height divided by 2, then minus half the height of the window&lt;br /&gt;
&lt;br /&gt;
;Move to center of screen&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, $x, $y)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Close notepad&lt;br /&gt;
WinClose($hWnd)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Function for getting HWND from PID&lt;br /&gt;
Func _GetHwndFromPID($PID)&lt;br /&gt;
	$hWnd = 0&lt;br /&gt;
	$winlist = WinList()&lt;br /&gt;
	Do&lt;br /&gt;
		For $i = 1 To $winlist[0][0]&lt;br /&gt;
			If $winlist[$i][0] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$iPID2 = WinGetProcess($winlist[$i][1])&lt;br /&gt;
				If $iPID2 = $PID Then&lt;br /&gt;
					$hWnd = $winlist[$i][1]&lt;br /&gt;
					ExitLoop&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	Until $hWnd &amp;lt;&amp;gt; 0&lt;br /&gt;
	Return $hWnd&lt;br /&gt;
EndFunc;==&amp;gt;_GetHwndFromPID&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use single or double quotes in strings?==&lt;br /&gt;
It is a fairly simple concept once you get the basics down.  Basically there are a few different ways to go about mixing quotes in strings.&lt;br /&gt;
&lt;br /&gt;
A string in AutoIt can be encased in either single(&#039;) or double (&amp;quot;) quotes.  So if you want to add only one type of quote into your string, your first port of call is to use the other type of quote to encase the string.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &amp;quot;I am a &#039;quote&#039; inside the string&amp;quot;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&lt;br /&gt;
$var = &#039;I wish I could be a &amp;quot;quote&amp;quot; inside the string!&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have to have both types of quotes in the string, the easiest way is to escape the quote ending the string as so to speak.  To do this, use two quotes instead of one.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &#039;I am a single &#039;&#039;quote&#039;&#039; inside the string made using &amp;quot;single quote!&amp;quot;&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==When should I bump my threads?==&lt;br /&gt;
As a courtesy to other users you should only bump your post once in a 24 hour period.  Doing this allows all users the chance to get helped equally.  Also refer to [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;view=findpost&amp;amp;p=688050 Why isn&#039;t my thread getting any replies?], as this will help you get replies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I protect my code from decompilation?==&lt;br /&gt;
The fact of the matter is &#039;&#039;&#039;you can&#039;t fully protect your code&#039;&#039;&#039;.  AutoIt is an  interpreted language, so all scripts are interpreted, and that script has to get stored somewhere.  There is still hope though.  You can take certain measures to make the decompiled code less usable to the person that decompiled it.  The first step is to obfuscate your code.  This causes the code to become less readable.  Basically variables and functions are renamed, making it very hard to make head or tail of what is what.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Decompiling FAQ]] for more information.&lt;br /&gt;
&lt;br /&gt;
==How can I decompile my AutoIt EXEs?==&lt;br /&gt;
You cannot decompile your AutoIt compiled scripts unless it was compiled with AutoIt 3.2.5.1 or earlier.&lt;br /&gt;
&lt;br /&gt;
In order to be able to recover your script from the compiled executable, you can use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Original Author SmokeN&lt;br /&gt;
If $CMDLINE[0] Then&lt;br /&gt;
	If $CMDLINE[1] == &amp;quot;/SOURCE&amp;quot; AND $CMDLINE[2] == &amp;quot;MYPASSWORD&amp;quot; Then&lt;br /&gt;
		FileInstall(&amp;quot;ThisSCript.au3&amp;quot;, @ScriptDir &amp;amp; &amp;quot;\DecompiledScript.au3&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then if you run the compiled script with the following command line parameters your source will be extracted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;myscript.exe /SOURCE MYPASSWORD&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What is proper forum etiquette?  What rules are there for the forum?==&lt;br /&gt;
Proper forum etiquette will ensure you will stay a member of these forums.  So try to follow these rules.  Also see this [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;st=15&amp;amp;p=688050&amp;amp;#entry688050 FAQ post], as you should follow what is outlined there as well.&lt;br /&gt;
&lt;br /&gt;
* Use proper English.  MSN speak and the like makes it very hard to understand what you want.  Keep posts in proper case because UPPERCASE is considered yelling and lowercase makes you look stupid.  Don&#039;t use more punctuation marks than necessary. For example ?!!!? and ????? is completely unnecessary.&lt;br /&gt;
* Before posting help with a script, make sure you follow these steps:&lt;br /&gt;
*# Search for your issue.&lt;br /&gt;
*#* There are many thousands of posts on this forum, and chances are your question has been asked before.  Make sure to use a variety of terms to maximize your results.&lt;br /&gt;
*# Read the helpfile&lt;br /&gt;
*#* Most if not all things in the help file will have an example (native functions) or two.  Give them a go to try see how the functions work.  Most of the time it helps!&lt;br /&gt;
*# Give it a go&lt;br /&gt;
*#* Seriously, if you can&#039;t be bothered to give it a go, then why should we be bothered to help you?  If you feel you can&#039;t do it and you don&#039;t try then how will you ever know?  We always prefer that you give it a go because you can learn from your mistakes and hopefully understand it better.&lt;br /&gt;
*# Post your problem&lt;br /&gt;
*#* Make sure you post in the correct forum.&lt;br /&gt;
*#** &amp;lt;b&amp;gt;AutoIt Specific&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/2-autoit-general-help-and-support/ General Help and Support] (Most support questions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/10-autoit-gui-help-and-support/ GUI Support] (Support for the Graphical User Interface)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/14-autoitx-help-and-support/ AutoItX Support] (Support for the COM, DLL, PowerShell and .NET add-ons for AutoIt)&lt;br /&gt;
*#** &amp;lt;b&amp;gt;Non-AutoIt&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** Chat&lt;br /&gt;
*#*** Developer Chat&lt;br /&gt;
*#* Include a detailed description in the content of the post, and a detailed title&lt;br /&gt;
*#** Titles such as &#039;Help&#039; and &#039;What&#039;s wrong?&#039; are not acceptable.  To get the most help with your problem, be as descriptive as you can in the title, but keep in mind your title cannot be too long.&lt;br /&gt;
*#** Make sure you also include a descriptive question.  Just saying &#039;what is wrong with the following&#039; is also not acceptable, as we will have no idea what the problem is.  Describe what you think is wrong and what is not working.  It makes our job easier.&lt;br /&gt;
*#* Always include your code&lt;br /&gt;
*#** It shows us that you have tried and gives us a head start with something to play with.&lt;br /&gt;
* Usually asking for a script is not taken too well, within reason.  Keep in mind that this is a support forum, so please acknowledge that. We are here to help you with your scripts, not to spoon-feed code to you.  If you do need something written for you, maybe try  [http://www.rentacoder.com/ RentACoder], as they are more suited to requests.&lt;br /&gt;
* Don&#039;t PM other members asking for them to look at threads of to help you unless they request it.  It is actually quite rude and annoying to receive PMs of that nature.&lt;br /&gt;
* Lurk a little before you dive right in. Read a number of posts, or check out the group&#039;s archives. Get a feel for the tone of the forum so you can participate accordingly.&lt;br /&gt;
* Say online exactly what you would say in person. In other words, if you wouldn&#039;t say it to the person&#039;s face in front of your Grandmother, you shouldn&#039;t type it here.&lt;br /&gt;
* Remember your face doesn&#039;t show. Words alone can convey sentiment, but without benefit of inflection or facial expression, they can be misconstrued. Use descriptive wording, emoticons or .gifs to ensure your meaning is clear. By the same token, don&#039;t jump to conclusions about another person&#039;s intent in posting an unclear comment. When in doubt, ask for clarification.&lt;br /&gt;
* Be respectful. Internet etiquette is similar to standard etiquette in this area. Appreciate that your opinion is one of many. You can disagree with another person without being disrespectful or rude to other people.&lt;br /&gt;
* Ignore Trolls. If you engage in conversation with one, you&#039;ll raise your blood pressure and empower the troll. You can&#039;t win a flame war, and you can&#039;t sway a troll&#039;s opinion. Often, they don&#039;t even care about the subject.  They live for the conflict and nothing more. Trolls are common and not worthy of your time. Ignore their posts no matter how inflammatory and eventually they&#039;ll get bored and move on.&lt;br /&gt;
* When you have found an answer for your question:&lt;br /&gt;
*# Do not edit your post to be blank or to have worthless information.  People may be searching for the same issue you have, so be courteous to them by leaving your question there.&lt;br /&gt;
*# It is also optional to add the word [SOLVED] into the title, as well as selecting the post that best answered your question. It can make the lives of people searching easier.&lt;br /&gt;
* Finally follow the rules:&lt;br /&gt;
** [http://www.autoitscript.com/forum/topic/169097-forum-rules/ Forum rules]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=54168 Rules for the Chat forum]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=65889 Rules for asking for source code]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=37739 General policies and forum settings]&lt;br /&gt;
&lt;br /&gt;
Some general points taken from [http://www.ehow.com/how_2106033_use-proper-forum-etiquette.html here].&lt;br /&gt;
&lt;br /&gt;
==Are there forums available in my local language?==&lt;br /&gt;
Yes there are some available.  Some forum members here participate in multiple forums.&lt;br /&gt;
* [http://www.autoit.de/ German Forums]&lt;br /&gt;
* [http://www.autoit.fr/  French Forums]&lt;br /&gt;
* [http://www.autoit.es/ Spanish Forums]&lt;br /&gt;
* [http://autoit-script.ru/ Russian Forums]&lt;br /&gt;
* [http://forum.autoitbrasil.com/ Portuguese Forums]&lt;br /&gt;
&lt;br /&gt;
Please note that these are independent, community-run message boards and not just a translation of this board.&lt;br /&gt;
&lt;br /&gt;
==How can I control (click, edit etc) an external (html) application?==&lt;br /&gt;
You can use the control* functions of autoit see helpfile&lt;br /&gt;
of use specific udf libraries&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ IUIAutomation for multiple applications]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/154439-chrome-udf/ chrome chrome.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/149526-librariesieau3/ Internet explorer ie.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ firefox ff.au3] (End of life)&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy/ java]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?&amp;amp;q=Selenium Selenium]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/191990-webdriver-udf-w3c-compliant-version/ WebDriver UDF (IE, Chrome, FireFox)]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should use spy applications to identify objects like&lt;br /&gt;
* au3inf part of AutoIT&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ simplespy in the zip]&lt;br /&gt;
* jabsimplespy in examples section of the AutoIt forum&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/126716-control-viewer-autoit-window-info-tool/ control viewer]&lt;br /&gt;
* inspect as part of windows SDK&lt;br /&gt;
* VisualUIAVerifyNative.exe as part of windows SDK (8.1)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If above spy tools are not identifying your object you could try commercial tools (trials) like&lt;br /&gt;
* ranorex spy&lt;br /&gt;
* Testcomplete&lt;br /&gt;
* HP UFT&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And your last recognition can be bitmaps&lt;br /&gt;
* search for GDI&lt;br /&gt;
* search for findBMP&lt;br /&gt;
* search for imagesearch&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt support database connections, such as SQL?==&lt;br /&gt;
Yes! UDFs exist for several popular SQL solutions, including SQLite, Firebird, MySQL, MSSQL and ODBC connections for PostGreSQL and others.&lt;br /&gt;
&lt;br /&gt;
For an illustrative list, see this link:&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/wiki/User_Defined_Functions#Files.2C_Databases_and_web_connections Files, Databases and web connections]&lt;br /&gt;
&lt;br /&gt;
A DBF UDF also exists&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/145142-dbf-udf-dbase-database-read-and-write-with-dll/ DBF UDF dBase with DLL]&lt;br /&gt;
&lt;br /&gt;
==How can I include some files into my compiled Autoit&#039;s EXE?==&lt;br /&gt;
Use FileInstall() or ResourcesEx UDF from the forum Examples.  Additional resources can also be included at compile time, click the &amp;quot;Res Add Files&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
==How can I test if checkbox / radiobutton is checked?==&lt;br /&gt;
Use this small function: If IsChecked($checkbox1) Then ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Zedna&lt;br /&gt;
Func IsChecked($control)&lt;br /&gt;
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED&lt;br /&gt;
EndFunc   ;==&amp;gt;IsChecked&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use the {enter} key as a Tab?==&lt;br /&gt;
Use &lt;br /&gt;
[https://www.autoitscript.com/autoit3/docs/functions/GUISetAccelerators.htm Accelerator keys]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; by Melba23&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
&lt;br /&gt;
$cInput_1 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 10, 200, 20)&lt;br /&gt;
$cInput_2 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 50, 200, 20)&lt;br /&gt;
$cInput_3 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 90, 200, 20)&lt;br /&gt;
&lt;br /&gt;
$cButton_1 = GUICtrlCreateButton(&amp;quot;Button 1&amp;quot;, 250, 10, 80, 30)&lt;br /&gt;
$cButton_2 = GUICtrlCreateButton(&amp;quot;Button 2&amp;quot;, 250, 50, 80, 30)&lt;br /&gt;
$cButton_3 = GUICtrlCreateButton(&amp;quot;Button 3&amp;quot;, 250, 90, 80, 30)&lt;br /&gt;
&lt;br /&gt;
$cEnter = GUICtrlCreateDummy()&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Local $aAccelKeys[2][2] = [[&amp;quot;{ENTER}&amp;quot;, $cEnter], [&amp;quot;{TAB}&amp;quot;, $cEnter]] ; Make {TAB} an accelerator&lt;br /&gt;
GUISetAccelerators($aAccelKeys)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $cEnter&lt;br /&gt;
			Switch _WinAPI_GetFocus()&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_1)&lt;br /&gt;
					; Check the input content&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						; Correct so move to next input&lt;br /&gt;
						GUICtrlSetState($cInput_2, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
					; Not correct so stay in current input&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_2)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						GUICtrlSetState($cInput_3, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_3)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						ConsoleWrite(&amp;quot;End&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case Else&lt;br /&gt;
					GUISetAccelerators(0) ; Remove accelerator link&lt;br /&gt;
					ControlSend($hGUI, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;{TAB}&amp;quot;) ; Send {TAB} to the GUI&lt;br /&gt;
					GUISetAccelerators($aAccelKeys) ; Reset the accelerator&lt;br /&gt;
&lt;br /&gt;
			EndSwitch&lt;br /&gt;
	EndSwitch&lt;br /&gt;
&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func checkEntry()&lt;br /&gt;
&lt;br /&gt;
	; Random chance of correct answer or fail&lt;br /&gt;
	If Mod(@SEC, 2) = 0 Then&lt;br /&gt;
		MsgBox($MB_SYSTEMMODAL, &amp;quot;Test Fail&amp;quot;, &amp;quot;Press Enter to close this message box&amp;quot;)&lt;br /&gt;
		Return False&lt;br /&gt;
	EndIf&lt;br /&gt;
	Return True&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;checkEntry&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why are my number sort results wrong?==&lt;br /&gt;
AutoIt by default uses an alpha sort algorithm. This means that ABC is sorted correctly, but it sorts numbers as 1,10,2,22,3,31 where the user expects 1,2,3,10,22,31.&lt;br /&gt;
This can be remedied by using a custom sort function. An example of such a custom number sort by Valuater appears below.  Search the Forum for [https://www.autoitscript.com/forum/topic/95383-sorting-numbers/ Number Sort] and [https://www.autoitscript.com/forum/topic/83626-natural-order-string-comparison/ Natural Order String Comparison] &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Valuater&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$Array = StringSplit(&amp;quot;2,5,3,4,6,1,8,9,7&amp;quot;, &amp;quot;,&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
_ArraySortNum($Array)&lt;br /&gt;
&lt;br /&gt;
_ArrayDisplay($Array, &amp;quot;Sorted Array&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Func _ArraySortNum(ByRef $n_array, $i_descending = 0, $i_start = 1)&lt;br /&gt;
	Local $i_ub = UBound($n_array)&lt;br /&gt;
	For $i_count = $i_start To $i_ub - 2&lt;br /&gt;
		Local $i_se = $i_count&lt;br /&gt;
		If $i_descending Then&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;lt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;gt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
		Local $i_hld = $n_array[$i_count]&lt;br /&gt;
		$n_array[$i_count] = $n_array[$i_se]&lt;br /&gt;
		$n_array[$i_se] = $i_hld&lt;br /&gt;
	Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_ArraySortNum&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I include AutoIt functions in a C# / C++ / VB programme? AutoItX==&lt;br /&gt;
AutoIt is also supplied as 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;
[https://www.autoitscript.com/site/autoit/ Info on AutoItX] &lt;br /&gt;
&lt;br /&gt;
From AutoItX.chm:&lt;br /&gt;
AutoItX is a DLL version of AutoIt v3 that provides a subset of the features of AutoIt via an ActiveX/COM and DLL interface. This means that you can add AutoIt-like features to your favourite scripting and programming languages, e.g. VB, VBScript, Delphi, C, C++, Kixtart, and most other languages that support the use of DLLs.&lt;br /&gt;
&lt;br /&gt;
Here are some C++ source code samples from various projects by [https://www.autoitscript.com/forum/profile/1-jon/ Jon]. Most are free to use but check any license files that accompany the downloads for details.  All code was created in Microsoft Visual C (6 and 7) but most would probably compile under mingw32 as well.&lt;br /&gt;
[https://www.autoitscript.com/site/code/ Download C++ examples for AutoItX] &lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to regsvr it if you are using the c# library. The c# library uses the non-COM part of the DLL so it just needs to be in the same folder as the exe and add the assembly.dll to your project. From the documenation:&lt;br /&gt;
&lt;br /&gt;
Using the Assembly from VB/C# within in Visual Studio is very easy:&lt;br /&gt;
* Add a reference to AutoItX3.Assembly.dll to your project&lt;br /&gt;
* Add a using AutoIt; statement in the files you want to use AutoIt functions&lt;br /&gt;
* Distribute your final executable with the files AutoItX3.Assembly.dll, AutoItX3.dll, AutoItX3_x64.dll.&lt;br /&gt;
* Write code like this C# example:&lt;br /&gt;
    using AutoIt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Jon&lt;br /&gt;
   // Wow, this is C#!&lt;br /&gt;
    AutoItX.Run(&amp;quot;notepad.exe&amp;quot;);&lt;br /&gt;
    AutoItX.WinWaitActive(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.Send(&amp;quot;I&#039;m in notepad&amp;quot;);&lt;br /&gt;
    IntPtr winHandle = AutoItX.WinGetHandle(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.WinKill(winHandle);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the AutoItX Help File (included in the default AutoIt install):&lt;br /&gt;
AutoItX can be used as a standard DLL from any language capable of calling functions in external DLLs.&lt;br /&gt;
&lt;br /&gt;
The following files are provided to allow you to use the DLL in C++:&lt;br /&gt;
&lt;br /&gt;
* AutoItX3_DLL.h - C language header file showing the exported functions and parameters&lt;br /&gt;
* AutoItX3_DLL.lib - Microsoft format import library (x86)&lt;br /&gt;
* AutoItX3_x64_DLL.lib - Microsoft format import library (x64)&lt;br /&gt;
* AutoItX3.dll - The main AutoItX DLL (x86)&lt;br /&gt;
* AutoItX3_x64.dll - The main AutoItX DLL (x64)&lt;br /&gt;
&lt;br /&gt;
==How can I search an image in another image? ==&lt;br /&gt;
You can use the Pixel* functions of AutoIt. See the help file for more information and examples.&lt;br /&gt;
You can also use one of the UDFs below; most of which use GDI:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/158264-bmpsearch-search-for-bitmap-within-bitmap-assembly-version/ FASM example]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/140478-bitmap-processing-using-raw-code/ asm bitmap processing]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/66545-find-bmp-in-another-bmp-imagesearch/ find bitmap in bitmap]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?type=all&amp;amp;q=_GDIPlus_BitmapLockBits/ GDI bitmaps]&lt;br /&gt;
Other libraries can be found that make use of a specific external dll but those above are considered &amp;quot;native&amp;quot; as no external dlls are required.&lt;br /&gt;
&lt;br /&gt;
==Multithreading==&lt;br /&gt;
Multithreading basically is running multiple scripts/programs that have acces to the same variables, normally by sharing memory. &lt;br /&gt;
&lt;br /&gt;
The AutoIt language is not threadsafe and multithreading is firmly on the &amp;lt;b&amp;gt;NOT TO DO&amp;lt;/b&amp;gt; list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multitasking and Multi&amp;lt;i&amp;gt;processing&amp;lt;/i&amp;gt; are closely related, however, and multiple solutions have been explored:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25350-multithread/ Multithread technical discussion]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25494-threaded-dll-sample/ Multithread with external DLL]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/146794-multi-thread-autoit/ Multithread with external DLL 2]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/64390-how-to-multi-process-in-autoit/ Multi process]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/187334-using-net-libary-with-autoit-possible/ Using C# - Host .NET]&lt;br /&gt;
&lt;br /&gt;
==Test automation==&lt;br /&gt;
Many people are looking for freeware tools to do test automation and cannot afford the commercial tools like HP LeanFT, Ranorex, Squish etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
So how can AutoIt help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Out of the box install the base full zip package and start Scite.Exe as a simple IDE.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to do more these links will help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 31 for the basic stuff on which technologies are readable and which spying tools there are&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 38 for the bitmap stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/ Alternative project IDE]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/188158-net-common-language-runtime-clr-framework/ .NET stuff]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/84133-winhttp-functions/ WinHTTP]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/185401-restwhich-udf-to-use-webdriver-of-edge/ webdriver]&lt;br /&gt;
Android can be reached thru ADB and Webdriver&amp;lt;br /&amp;gt;&lt;br /&gt;
iOS is limited to normal webdriver stuff thru WinHTTP library. So most likely you have to install additional iOS webdriver solutions&amp;lt;br /&amp;gt;&lt;br /&gt;
And after reading FAQ just ask your questions in the support forum&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DPI Awareness==&lt;br /&gt;
The following few links are related to DPI Awareness :&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166479-writing-dpi-awareness-app-workaround/ Writing DPI Awareness App - workaround]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/182423-wrong-screen-resolution-displayed-by-autoit-macros/ Wrong Screen Resolution Displayed by Autoit Macros]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/192529-dpi-awareness-any-suggestion/ DPI Awareness - question]&lt;br /&gt;
&lt;br /&gt;
==AutoIt+SciTE Portable Developer Environment==&lt;br /&gt;
Recent discussion can be found here:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/119572-autoit3-portable/?do=findComment&amp;amp;comment=1391105 How to make AutoIt+SciTE portable ]&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt have an agreed set of good practices ?==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146866 Forum disscusion on good coding practices in AutoIt] &lt;br /&gt;
Wiki related resources:&lt;br /&gt;
* [https://www.autoitscript.com/wiki/Best_coding_practices Best coding practices] &lt;br /&gt;
* [https://www.autoitscript.com/wiki/Variables_-_using_Global,_Local,_Static_and_ByRef Variables - using Global, Local, Static and ByRef] &lt;br /&gt;
* [https://www.autoitscript.com/wiki/UDF-spec UDF-spec]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13859</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13859"/>
		<updated>2018-10-21T22:26:58Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Does AutoIt have an agreed set of good practices ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of frequently asked questions asked on the forums.&lt;br /&gt;
&lt;br /&gt;
Other FAQs include:&lt;br /&gt;
* The one found in the [http://www.autoitscript.com/autoit3/docs/faq.htm AutoIt HelpFile].  Much of it is about the transition from V2 to V3, but most is still relevant and should be a port of call, as well as this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I debug my script?==&lt;br /&gt;
&lt;br /&gt;
=== In SciTE ===&lt;br /&gt;
This one has a myriad of answers, but the most effective is to begin by using the [http://www.autoitscript.com/autoit3/scite/ SciTE4AutoIt3 Editor] to create or edit scripts. This program is useful in debugging for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* Syntax highlighting allows for immediate viewing of any mistakes from unended script tags or quotes. This allows the scripter to visibly see the difference between the following portions of code.&lt;br /&gt;
[[File:FAQ_Q1_2.jpg|center|Incorrect code]]&lt;br /&gt;
And the correct version: &lt;br /&gt;
[[File:FAQ_Q1_3.jpg|center||Correct Code]]&lt;br /&gt;
* Global syntax check built directly into the tools menu allows you to check an entire script for problems all at once.&lt;br /&gt;
* Built-in code tidying program that correctly indents untidy code and repairs messy scripts to allow them to be more readable. It also corrects problems with incorrectly capitalised function names and variables.&lt;br /&gt;
* Per-line trace insertion allows you to log every line of code executed to debug errors.&lt;br /&gt;
* Debug MsgBoxes or ConsoleWrites are able to be added anywhere in the script directly from SciTE. ConsoleWrite lines are less intrusive and prevent the added annoyance to the user of MsgBoxes.&lt;br /&gt;
&lt;br /&gt;
You can also use AutoIt3Wrapper directive:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#AutoIt3Wrapper_Run_Debug_Mode=Y&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FAQ_Q1_4.jpg|center|Picture of SciTE4AutoIt3]]&lt;br /&gt;
&lt;br /&gt;
=== Using more code to check @error value ===&lt;br /&gt;
Nearly all functions will return something.  Most of the time when a function fails, it returns 0 and sets @error.  You can use this information not only to create scripts that handle for different errors but to debug and find out exactly why you are having problems.  Check the help file for specific functions and their return values.&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;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	Local $aFileList = _FileListToArray(@ScriptDir, &#039;NO_EXISTING_FILE.TEST&#039;)&lt;br /&gt;
	If @error Then ; check if _FileListToArray() function return any error&lt;br /&gt;
		MsgBox($MB_ICONERROR, &#039;_FileListToArray&#039;, &#039;@error = &#039; &amp;amp; @error &amp;amp; @CRLF &amp;amp; &#039;@extended = &#039; &amp;amp; @extended) ; show error message&lt;br /&gt;
		Return ; return / exit from function to prevent unexpected further error&#039;s&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	For $iFile_idx = 1 To $aFileList[0]&lt;br /&gt;
		FileRead($aFileList[$iFile_idx])&lt;br /&gt;
		; any further code&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Via the Tray icon===&lt;br /&gt;
You can add this line at the top of your script (1 is on, 0 is off) to enable debugging from the tray icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;AutoItSetOption (&amp;quot;TrayIconDebug&amp;quot;, 1);0-off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then if you run the script (uncompiled as an AU3 file), you can mouse over the AutoIt icon in the system tray (down by the clock) to display debugging information.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_1.jpg|center|Example output for TrayIconDebug]]&lt;br /&gt;
&lt;br /&gt;
=== OutputDebugString native call ===&lt;br /&gt;
You can also debug a script on any computer by adding the following code to your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _MyDebug($sMessage, $iError = @error, $iExtended = @extended)&lt;br /&gt;
	If $iError Or $iExtended Then&lt;br /&gt;
		$sMessage &amp;amp;= &#039;[ @error = &#039; &amp;amp; $iError &amp;amp; &#039; @extended = &#039; &amp;amp; $iExtended &amp;amp; &#039; ]&#039;&lt;br /&gt;
	EndIf&lt;br /&gt;
	DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;OutputDebugString&amp;quot;, &amp;quot;str&amp;quot;, $sMessage)&lt;br /&gt;
	Return SetError($iError, $iExtended, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyDebug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then, when you need to add a debug line, call it as necessary. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;_MyDebug(&amp;quot;The value of Variable 1 at this time is &amp;quot; &amp;amp; $var1)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This debugging is completely transparent to the user, and is only viewable with a program such as DebugView from SysInternals. This method of debugging has the added advantage of being available to the developer in situations where is not acceptable or feasable to install SciTE on a client&#039;s unit.&lt;br /&gt;
&lt;br /&gt;
=== Graphical debugger ===&lt;br /&gt;
Stumpii created a [http://www.autoitscript.com/forum/index.php?showtopic=21834 Graphical AutoIt Debugger], similar to Dev-C++&#039;s debugging style.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_5.jpg|center|Stumpii&#039;s Graphical AutoIt Debugger]]&lt;br /&gt;
&lt;br /&gt;
=== Another debugger for AutoIt ===&lt;br /&gt;
Heron created a [http://www.autoitscript.com/forum/index.php?showtopic=103142 Another debugger for AutoIt].&lt;br /&gt;
&lt;br /&gt;
The latest version by asdf8 is here:&lt;br /&gt;
https://www.autoitscript.com/forum/topic/103142-another-debugger-for-autoit/?do=findComment&amp;amp;comment=1303208&lt;br /&gt;
&lt;br /&gt;
=== Other UDF to log/trace/script analyze ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
==How can I run something that is not an exe file [.txt, .msi, .pdf,.jpg etc.] [or] How can I open a webpage in the default browser?==&lt;br /&gt;
It was for this reason that the ShellExecute function was created. Here is one example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;edit&amp;quot;, @SW_MAXIMIZE)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also specify a web address this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;http://www.autoitscript.com/forum&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;open&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you normally are able to right-click the file and select print, then you can also print the file from AutoIt using this function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\boot.ini&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;print&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to open the file with the default program, you can do as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish your script to wait until the process is finished, you can use the ShellExecuteWait function with the same parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The default verb is the verb configured in the registry. If no verb is set as default in the registry then the &amp;quot;open&amp;quot; verb is used. If the &amp;quot;open&amp;quot; verb is not present then the first verb listed in the registry is used.&lt;br /&gt;
&lt;br /&gt;
==How can I prevent more than one copy of my script from running at once, or detect another copy of my script running?==&lt;br /&gt;
&lt;br /&gt;
=== _Singleton function ===&lt;br /&gt;
There are a few different ways to go about this. You can use a function called _Singleton to detect multiple instances of your script. An example of how to use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
_Singleton(&amp;quot;TheNameOfMyScript&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this instance, the script will bring up some messages explaining to the user of the occurring events. &lt;br /&gt;
This example will show you how the above function can be used in a real world application.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _Singleton(&amp;quot;MyScriptName&amp;quot;, 1) = 0 Then&lt;br /&gt;
    ; If successful, running our script a second time should cause us to fall through here&lt;br /&gt;
    MsgBox($MB_ICONERROR, &amp;quot;User Generated Error Message&amp;quot;, &amp;quot;Error: This script is already running!&amp;quot;)&lt;br /&gt;
Else&lt;br /&gt;
    ; We have detected that we are the only instance running, now we will run a second instance to display _Singleton&#039;s function!&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We are the first instance of this script, press OK to run another instance and trigger the error message!&amp;quot;)&lt;br /&gt;
    Switch @Compiled&lt;br /&gt;
        Case 1&lt;br /&gt;
            Run(FileGetShortName(@ScriptFullPath));when running an app, it&#039;s usually better to use its short name&lt;br /&gt;
        Case 0&lt;br /&gt;
            Run(FileGetShortName(@AutoItExe) &amp;amp; &#039; /AutoIt3ExecuteScript &#039; &amp;amp; FileGetShortName(@ScriptFullPath))&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We ran a second instance, you should have recieved an error message!&amp;quot;, 5)&lt;br /&gt;
EndIf&lt;br /&gt;
Exit&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_MutexExists function ===&lt;br /&gt;
Another method is to use _MutexExists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _MutexExists(&amp;quot;MydeswswScriptName&amp;quot;) Then&lt;br /&gt;
	; We know the script is already running. Let the user know.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;Script Name&amp;quot;, &amp;quot;This script is already running. Using multiple copies of this script at the same time is unsupported!&amp;quot;)&lt;br /&gt;
	Exit&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
;Function Author- Martin&lt;br /&gt;
Func _MutexExists($sOccurenceName)&lt;br /&gt;
	Local $ERROR_ALREADY_EXISTS = 183, $handle, $lastError&lt;br /&gt;
	$sOccurenceName = StringReplace($sOccurenceName, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;); to avoid error&lt;br /&gt;
	$handle = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;CreateMutex&amp;quot;, &amp;quot;int&amp;quot;, 0, &amp;quot;long&amp;quot;, 1, &amp;quot;str&amp;quot;, $sOccurenceName)&lt;br /&gt;
	$lastError = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetLastError&amp;quot;)&lt;br /&gt;
	Return $lastError[0] = $ERROR_ALREADY_EXISTS&lt;br /&gt;
EndFunc;==&amp;gt;_MutexExists&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I run my script as a service?==&lt;br /&gt;
This is also a question with multiple answers, and none of them are the only way to do it. The first question to ask yourself is whether or not you wish to install the service on other computers besides your own.&lt;br /&gt;
&lt;br /&gt;
=== On your own computer - One time only ===&lt;br /&gt;
The easiest way to do this is to use Pirmasoft RunAsSvc. This program makes services easy to install and easy to remove when necessary.&lt;br /&gt;
&lt;br /&gt;
=== On all computers that run your script===&lt;br /&gt;
To do this you can use SRVANY.EXE and [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3]. You can then use this code to install your script as a service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_CreateService(&amp;quot;&amp;quot;, $servicename, &amp;quot;My AutoIt Script&amp;quot;, &amp;quot;C:\Path_to_\srvany.exe&amp;quot;, &amp;quot;LocalSystem&amp;quot;, &amp;quot;&amp;quot;, 0x110)&lt;br /&gt;
RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\&amp;quot; &amp;amp; $servicename &amp;amp; &amp;quot;\Parameters&amp;quot;, &amp;quot;Application&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the following code to delete this service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_DeleteService(&amp;quot;&amp;quot;, $servicename)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one caveat to setting up AutoIt as a service. If the service is not installed using the above code, it must have the &amp;quot;allow service to interact with the desktop&amp;quot; setting or else automation functions such as Control* or Win* functions will not function. To assure the service does indeed have this setting, use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\[ServiceName]&amp;quot;, &amp;quot;Type&amp;quot;, &amp;quot;REG_DWORD&amp;quot;, 0x110)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I create/start/stop or otherwise control a service?==&lt;br /&gt;
There are two include libraries that are designed specifically to interact with services. These are the following:&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3] made by SumTingWong. Functionality:&lt;br /&gt;
** _StartService()&lt;br /&gt;
** _StopService()&lt;br /&gt;
** _ServiceExists()&lt;br /&gt;
** _ServiceRunning()&lt;br /&gt;
** _CreateService()&lt;br /&gt;
** _DeleteService()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22165 _NTServices.au3] made by CatchFish. Functionality:&lt;br /&gt;
** _ServiceStart()&lt;br /&gt;
** _ServiceStop()&lt;br /&gt;
** _ServiceStatus()&lt;br /&gt;
** _ServicePause()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I display a progress bar while copying files or directories?==&lt;br /&gt;
There are a many different topics on how to do this.  For more, just search the forums for [http://www.autoitscript.com/forum/index.php?act=Search&amp;amp;CODE=show&amp;amp;searchid=22030d4d4effe5e32da23fdb69ed772f&amp;amp;search_in=posts&amp;amp;result_type=topics&amp;amp;highlite=%2BCopy%2B Progress Copy + Progress].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11313 Copy with progress dialog]... By ezztabi&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11888 Yet another copy with progress]... By SumTingWong&lt;br /&gt;
* [http://www.autoit.de/index.php?page=Thread&amp;amp;postID=58875 _MultiFileCopy]... By Oscar (German Forums)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19370&amp;amp;st=45&amp;amp;p=186198&amp;amp;#entry186198 _FileCopy]... By Jos&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q6_1.jpg|center|Copy progress dialog by ezztabi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make a hotkey that only works in my GUI?==&lt;br /&gt;
It used to be quite tedious setting hotkeys to only work in your GUI.  Now there is an easier way with the function GUISetAccelerators.&lt;br /&gt;
&lt;br /&gt;
(From Helpfile example)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; A simple custom messagebox that uses the MessageLoop mode&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Custom Msgbox&amp;quot;, 210, 80)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Please click a button!&amp;quot;, 10, 10)&lt;br /&gt;
$YesID = GUICtrlCreateButton(&amp;quot;Yes&amp;quot;, 10, 50, 50, 20)&lt;br /&gt;
$NoID = GUICtrlCreateButton(&amp;quot;No&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$ExitID = GUICtrlCreateButton(&amp;quot;Exit&amp;quot;, 150, 50, 50, 20)&lt;br /&gt;
&lt;br /&gt;
; Set accelerators for Ctrl+y and Ctrl+n&lt;br /&gt;
Dim $AccelKeys[2][2]=[[&amp;quot;^y&amp;quot;, $YesID], [&amp;quot;^n&amp;quot;, $NoID]]&lt;br /&gt;
GUISetAccelerators($AccelKeys)&lt;br /&gt;
&lt;br /&gt;
GUISetState(); display the GUI&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
	$msg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case $msg = $YesID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		Case $msg = $NoID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;No&amp;quot;)&lt;br /&gt;
		Case $msg = $ExitID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Exit&amp;quot;)&lt;br /&gt;
		Case $msg = $GUI_EVENT_CLOSE&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Close&amp;quot;)&lt;br /&gt;
	EndSelect&lt;br /&gt;
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I perform an action while a key is held down?==&lt;br /&gt;
You can use the _IsPressed() function to determine when a key is held down. The values that can be specified in this function are listed in the AutoIt Help File under User Defined Functions -&amp;gt; Misc Management -&amp;gt; _IsPressed. The following example will press the left mouse button while the k key is held down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
$pressed = 0&lt;br /&gt;
While 1&lt;br /&gt;
	If _IsPressed(&amp;quot;4B&amp;quot;) Then&lt;br /&gt;
		If Not $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;K Key being held down&amp;quot;)&lt;br /&gt;
			MouseDown(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 1&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		If $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;&amp;quot;)&lt;br /&gt;
			MouseUp(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 0&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(250)&lt;br /&gt;
WEnd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I run my script on a remote computer over the network?==&lt;br /&gt;
The answer to this question depends on how much experience you have in networking. If the target system is a Windows system to which you have administrator access then you may use one of the following programs:&lt;br /&gt;
&lt;br /&gt;
* PsExec from SysInternals&lt;br /&gt;
* BeyondExec from BeyondLogic&lt;br /&gt;
&lt;br /&gt;
With either of these programs it is possible to launch any process on a remote system and even copy your script to the target computer before starting it. Neither these programs nor any others will work with Windows XP Home Edition unless you create a custom &amp;quot;command listener&amp;quot; that you manually install on the target system.&lt;br /&gt;
&lt;br /&gt;
NOTE: Those of you with more advanced programming skills and a little imagination can figure out how to use the service control libraries and srvany.exe to do this same thing without either of the above mentioned programs.&lt;br /&gt;
&lt;br /&gt;
==How can I make a User Defined Function with optional parameters like the ones I see in the Help File?==&lt;br /&gt;
You can specify optional parameters by giving them a default value in the Func declaration. An example of how this is done:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Func testme($param1, $param2 = &amp;quot;nothing&amp;quot;, $param3 = 5)&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;&amp;quot;, &amp;quot;Parameter one is required. The value of Parameter 1 is &amp;quot; &amp;amp; $param1 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 2 is optional. The value of Parameter 2 is &amp;quot; &amp;amp; $param2 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 3 is optional. The value of Parameter 3 is &amp;quot; &amp;amp; $param3)&lt;br /&gt;
EndFunc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If testme() is called with only one parameter [I.E. testme(&amp;quot;test&amp;quot;)] then the output is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
However, if the function is called with more than one parameter like this testme(&amp;quot;test&amp;quot;, &amp;quot;something&amp;quot;), then the output is&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is something&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make my script start every time windows starts?==&lt;br /&gt;
You can use one of the following codes to allow your script to start with Windows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&amp;quot;, &amp;quot;MyProgramName&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;FileCreateShortcut(@ScriptFullPath, @StartupCommonDir &amp;amp; &amp;quot;\MyProgramName.lnk&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or place a Shortcut in the Startup folder, or the entire Executable.  For Win8+ systems, use the Win+R keys to open a Run box, then &amp;quot;Shell:Startup&amp;quot; to access the Startup folder. Due to Windows User Account Control (UAC) restrictions, your script may require [https://www.autoitscript.com/autoit3/docs/keywords/RequireAdmin.htm #RequireAdmin].&lt;br /&gt;
&lt;br /&gt;
==How can I have the script delete itself?==&lt;br /&gt;
The following function will delete the running script or .exe once it has finished execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: Make a copy of your script before calling this function!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _SelfDelete($iDelay = 0)&lt;br /&gt;
	Local $sCmdFile&lt;br /&gt;
	FileDelete(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;)&lt;br /&gt;
	$sCmdFile = &#039;ping -n &#039; &amp;amp; $iDelay &amp;amp; &#039; 127.0.0.1 &amp;gt; nul&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;:loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot;&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;if exist &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; goto loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del %0&#039;&lt;br /&gt;
	FileWrite(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, $sCmdFile)&lt;br /&gt;
	Run(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, @TempDir, @SW_HIDE)&lt;br /&gt;
EndFunc;==&amp;gt;_SelfDelete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I create a clickable website hyperlink in my gui?==&lt;br /&gt;
[[File:FAQ_Q13_1.jpg|center|Example GUI using Gary&#039;s UDF.]]&lt;br /&gt;
&lt;br /&gt;
Gary Frost has made great advances in this area and has provided a [http://www.autoitscript.com/forum/index.php?showtopic=23111&amp;amp;st=0 UDF here] (&#039;&#039;&#039;the UDF was removed from the post&#039;&#039;&#039;) to help with doing this.&lt;br /&gt;
&lt;br /&gt;
==How can I change the screen resolution / refresh rate / color depth?==&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=20121 ChangeResolution.au3] is a library function created to make changes to these settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I get the screen resolution in multiple monitor setups?==&lt;br /&gt;
The following code was worked out by Larry to determine the total screen resolution of multiple monitors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$aTSR = _GetTotalScreenResolution()&lt;br /&gt;
MsgBox($MB_OK, &amp;quot;Total Screen Resolution&amp;quot;, &amp;quot;Width = &amp;quot; &amp;amp; $aTSR[0] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Height = &amp;quot; &amp;amp; $aTSR[1])&lt;br /&gt;
&lt;br /&gt;
;Original code by Larry.&lt;br /&gt;
;Edited by BrettF&lt;br /&gt;
Func _GetTotalScreenResolution()&lt;br /&gt;
	Local $aRet[2]&lt;br /&gt;
	Global Const $SM_VIRTUALWIDTH = 78&lt;br /&gt;
	Global Const $SM_VIRTUALHEIGHT = 79&lt;br /&gt;
	$VirtualDesktopWidth = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALWIDTH)&lt;br /&gt;
	$aRet[0] = $VirtualDesktopWidth[0]&lt;br /&gt;
	$VirtualDesktopHeight = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALHEIGHT)&lt;br /&gt;
	$aRet[1] = $VirtualDesktopHeight[0]&lt;br /&gt;
	Return $aRet&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  How can I register a file type with my program [or] How can I make files with a certain extension open in my program?==&lt;br /&gt;
[[File:FAQ_Q16_1.jpg|center|Example of how a file type can be registered.]]&lt;br /&gt;
File registration can be a tricky business for those who have not done it before. The first thing to be done is to modify your script to allow it to accept files from the command line. Here is one example of how to do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;$cmdline[0] is the number of parameters passed&lt;br /&gt;
If $cmdline[0] &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
	$filename = $cmdline[1]&lt;br /&gt;
;Do something with the file here&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;The file name passed to the command line is &amp;quot;&#039; &amp;amp; $filename &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
Else&lt;br /&gt;
; We did not get any command line parameters.&lt;br /&gt;
; If this is a command line only program, you would want to&lt;br /&gt;
; alert the user that the command line parameters were incorrect.&lt;br /&gt;
; If this is a GUI program (like a notepad program), you would&lt;br /&gt;
; want to simply continue from here without opening a file.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;Command line parameters incorrect.&#039; &amp;amp; @CRLF &amp;amp; &#039;Command line usage: &amp;quot;&#039; &amp;amp; @ScriptName &amp;amp; &#039;&amp;quot; &amp;quot;file to process&amp;quot;&#039;)&lt;br /&gt;
 EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After your script is ready to accept files, you can begin to register the file type you need with your program. To prevent errors, this-is-me has created a UDF that will allow you to do this easily:&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to register and unregister a file extension using this UDF:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;quot;FileRegister.au3&amp;quot;&lt;br /&gt;
;================================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileRegister($ext, $cmd, $verb [, $def [, $icon = &amp;quot;&amp;quot; [, $desc = &amp;quot;&amp;quot; ]]])&lt;br /&gt;
;			   Registers a file type in Explorer&lt;br /&gt;
;&lt;br /&gt;
; Parameter(s): $ext -  File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;		$cmd -  Program path with arguments eg. &#039;&amp;quot;C:\test\testprog.exe&amp;quot; &amp;quot;%1&amp;quot;&#039;&lt;br /&gt;
;			 (%1 is 1st argument, %2 is 2nd, etc.)&lt;br /&gt;
;		$verb - Name of action to perform on file&lt;br /&gt;
;			 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;		$def -  Action is the default action for this filetype&lt;br /&gt;
;			 (1 for true 0 for false)&lt;br /&gt;
;			 If the file is not already associated, this will be the default.&lt;br /&gt;
;		$icon - Default icon for filetype including resource # if needed&lt;br /&gt;
;			 eg. &amp;quot;C:\test\testprog.exe,0&amp;quot; or &amp;quot;C:\test\filetype.ico&amp;quot;&lt;br /&gt;
;		$desc - File Description eg. &amp;quot;Zip File&amp;quot; or &amp;quot;ProgramName Document&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;================================================&lt;br /&gt;
&lt;br /&gt;
 FileRegister(&amp;quot;uxy&amp;quot;, &#039;&amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; &amp;quot;%1&amp;quot;&#039;, &amp;quot;Open in UXYFixer&amp;quot;, 1, @ScriptFullPath &amp;amp; &#039;,0&#039;, &amp;quot;UXYFixer Document&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;========================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileUnRegister($ext, $verb)&lt;br /&gt;
;			   UnRegisters a verb for a file type in Explorer&lt;br /&gt;
; Parameter(s):  $ext - File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;			   $verb - Name of file action to remove&lt;br /&gt;
;					 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;========================================&lt;br /&gt;
&lt;br /&gt;
 FileUnRegister(&amp;quot;uxy&amp;quot;, &amp;quot;Open in UXYFixer&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download here:&#039;&#039;&#039;&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=26378 FileRegister.au3]&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my combobox (GUICtrlCreateCombo) show a dropdown list when clicked?==&lt;br /&gt;
When using GUICtrlCreateCombo be sure to enter the desired height for your combobox list in the &amp;quot;height&amp;quot; parameter. Windows XP automatically selects an appropriate height for combo boxes, but other versions of Windows usually do not.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,20)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Would correctly be changed to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,200)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why isn&#039;t my thread getting any replies?==&lt;br /&gt;
&lt;br /&gt;
=== Asking the right question right ===&lt;br /&gt;
Did you give a good description of the problem? If your title or explanation of the issue is not descriptive, users are likely to bypass your issue instead of helping. Post titles such as &amp;quot;Help Me&amp;quot;, &amp;quot;I Have A Problem&amp;quot;, &amp;quot;Question&amp;quot;, &amp;quot;Help me fix my code&amp;quot;, &amp;quot;This code doesn&#039;t work&amp;quot; or similarly worded titles will not readily draw forum users to your post. Experienced users (which are your best hope of resolving the issue) will often skip your post altogether in cases like this. An example of a post title descriptive enough to attract users to assist you is &amp;quot;Problem with WinWaitClose&amp;quot; or &amp;quot;Loop never ends&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Example for reproduction ===&lt;br /&gt;
Did you post example code? If you have not posted an example of the code you are having an issue with, then you will not recieve support. When posting a non-working script, please do so in the smallest amount of stand-alone code possible. If the code you post cannot run by itself on another person&#039;s computer, they will not be able to recreate the issue.&lt;br /&gt;
&lt;br /&gt;
=== Information about Environment ===&lt;br /&gt;
Did you provide any information about your AutoIt Development Environment ? &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
; Version: 1.00. AutoIt: V3.3.8.1&lt;br /&gt;
; Retrieve the recommended information of the current system when posting a support question.&lt;br /&gt;
Local $sSystemInfo = &#039;I have a valid AutoIt support question and kindly provided the details of my system:&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;AutoIt Version: V&#039; &amp;amp; @AutoItVersion &amp;amp; &#039; [&#039; &amp;amp; (@AutoItX64 ?&#039;X64&#039;:&#039;X32&#039;) &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Windows Version: &#039; &amp;amp; @OSVersion &amp;amp; &#039; [&#039; &amp;amp; @OSArch &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Language: &#039; &amp;amp; _GetOSLanguage() &amp;amp; &#039; (&#039; &amp;amp; @OSLang &amp;amp; &#039;)&#039; &amp;amp; @CRLF &amp;amp; @CRLF&lt;br /&gt;
ClipPut($sSystemInfo)&lt;br /&gt;
MsgBox(4096, &#039;This info has been copied to the clipboard. Use Ctrl + V to retrieve it.&#039;, $sSystemInfo)&lt;br /&gt;
&lt;br /&gt;
Func _GetOSLanguage()&lt;br /&gt;
     Local $aString[20] = [19, &amp;quot;0409 0809 0C09 1009 1409 1809 1C09 2009 2409 2809 2C09 3009 3409&amp;quot;, &amp;quot;0404 0804 0C04 1004 0406&amp;quot;, &amp;quot;0406&amp;quot;, &amp;quot;0413 0813&amp;quot;, &amp;quot;0425&amp;quot;, _&lt;br /&gt;
               &amp;quot;040B&amp;quot;, &amp;quot;040C 080C 0C0C 100C 140C 180C&amp;quot;, &amp;quot;0407 0807 0C07 1007 1407&amp;quot;, &amp;quot;040E&amp;quot;, &amp;quot;0410 0810&amp;quot;, _&lt;br /&gt;
               &amp;quot;0411&amp;quot;, &amp;quot;0414 0814&amp;quot;, &amp;quot;0415&amp;quot;, &amp;quot;0416 0816&amp;quot;, &amp;quot;0418&amp;quot;, _&lt;br /&gt;
               &amp;quot;0419&amp;quot;, &amp;quot;081A 0C1A&amp;quot;, &amp;quot;040A 080A 0C0A 100A 140A 180A 1C0A 200A 240A 280A 2C0A 300A 340A 380A 3C0A 400A 440A 480A 4C0A 500A&amp;quot;, &amp;quot;041D 081D&amp;quot;]&lt;br /&gt;
     Local $aLanguage[20] = [19, &amp;quot;English&amp;quot;, &amp;quot;Chinese&amp;quot;, &amp;quot;Danish&amp;quot;, &amp;quot;Dutch&amp;quot;, &amp;quot;Estonian&amp;quot;, &amp;quot;Finnish&amp;quot;, &amp;quot;French&amp;quot;, &amp;quot;German&amp;quot;, &amp;quot;Hungarian&amp;quot;, &amp;quot;Italian&amp;quot;, _&lt;br /&gt;
               &amp;quot;Japanese&amp;quot;, &amp;quot;Norwegian&amp;quot;, &amp;quot;Polish&amp;quot;, &amp;quot;Portuguese&amp;quot;, &amp;quot;Romanian&amp;quot;, &amp;quot;Russian&amp;quot;, &amp;quot;Serbian&amp;quot;, &amp;quot;Spanish&amp;quot;, &amp;quot;Swedish&amp;quot;]&lt;br /&gt;
     For $i = 1 To $aString[0]&lt;br /&gt;
          If StringInStr($aString[$i], @OSLang) Then&lt;br /&gt;
               Return $aLanguage[$i]&lt;br /&gt;
          EndIf&lt;br /&gt;
     Next&lt;br /&gt;
     Return $aLanguage[1]&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetOSLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Speak English and speak it right ===&lt;br /&gt;
Did you use proper English? Here are guidelines for posting properly in the English language:&lt;br /&gt;
* Use proper case.  THIS IS CONSIDERED YELLING. If you post in ALL UPPERCASE or all lowercase then you will not be taken seriously.&lt;br /&gt;
* Use proper punctuation. Complete sentences need only one trailing punctuation mark. Twelve exclamation points after every sentence &amp;lt;b&amp;gt;will not&amp;lt;/b&amp;gt; get you an answer more quickly (just the opposite) Writing a sentence without simple punctuation such as commas reflects badly on your attention to detail, and is considered a good judge of the poster&#039;s coding style. If you cannot summon the intellect to write a sentence with correct punctuation, you will most likely miss simple coding mistakes such as unterminated quotes.&lt;br /&gt;
&lt;br /&gt;
=== Breaking forum rules, law, modesty, or common sense ===&lt;br /&gt;
Show common sense by following the forum rules, http://www.autoitscript.com/forum/topic/169097-forum-rules/, as well as generally accepted forum etiquette. Repeated failure to do so will result in sanctions by the Moderation team as it ruins the experience for everyone.&lt;br /&gt;
&lt;br /&gt;
==Why does the Ctrl key get stuck down after I run my script?==&lt;br /&gt;
&lt;br /&gt;
=== Keys virtually stuck ===&lt;br /&gt;
It could equally be the Shift or the Alt key.&lt;br /&gt;
&lt;br /&gt;
If you use Send in a script and you have a problem with keys being stuck down then Send is the most likely culprit. A similar problem can occur with BlockInput. The solution is generally quite simple. If there is a key like Shift or Alt held down at the start of the Send sequence, but that key is released by the time the Send sequence finishes then the key will get &#039;stuck&#039; down. As an example of a solution, you could replace the Send function in your script with the _SendEx function below.&lt;br /&gt;
&lt;br /&gt;
The _SendEx function waits for the Shift, Alt and Ctrl keys to be released or pops up a warning if the $warn parameter is not an empty string. Therefore it is not intended to be used when one of these modifier keys has been set to be down using any combination of {ALTDOWN}, {SHIFTDOWN} and {ALTDOWN}.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt; Misc.au3 &amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
;Send the string $ss after the Shift Alt and Ctrl keys are released. Optionally give a warning after 1 sec if any of those keys are still down.&lt;br /&gt;
;Requires misc.au3 to be included in the script for the _IsPressed function.&lt;br /&gt;
&lt;br /&gt;
Func _SendEx($ss, $warn = &amp;quot;&amp;quot;)&lt;br /&gt;
	Local $iT = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	While _IsPressed(&amp;quot;10&amp;quot;) Or _IsPressed(&amp;quot;11&amp;quot;) Or _IsPressed(&amp;quot;12&amp;quot;)&lt;br /&gt;
		If $warn &amp;lt;&amp;gt; &amp;quot;&amp;quot; And TimerDiff($iT) &amp;gt; 1000 Then&lt;br /&gt;
			MsgBox($MB_TOPMOST, &amp;quot;Warning&amp;quot;, $warn)&lt;br /&gt;
		EndIf&lt;br /&gt;
		Sleep(50)&lt;br /&gt;
	WEnd&lt;br /&gt;
	Send($ss)&lt;br /&gt;
EndFunc;==&amp;gt;_SendEx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General unstuck method ===&lt;br /&gt;
Shilbiz also discovered that the following can &#039;clear&#039; locked down keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt; ControlSend(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;text&amp;quot;, 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use Pixel functions?==&lt;br /&gt;
&lt;br /&gt;
=== Using a color change as an event ===&lt;br /&gt;
The following is an example of using the pixel to check if the colour has changed in a specific region.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $PixelCheck = 0, $NewCheck&lt;br /&gt;
$PixelCheck = PixelCheckSum(40, 50, 60, 70); Get the checksum for this area.&lt;br /&gt;
While 1; Keep going&lt;br /&gt;
	$NewCheck = PixelCheckSum(40, 50, 60, 70)&lt;br /&gt;
	If $PixelCheck &amp;lt;&amp;gt; $NewCheck Then&lt;br /&gt;
		; The old pixel checksum and the new one are different.&lt;br /&gt;
		$PixelCheck = $NewCheck; Update the $PixelCheck to the new value&lt;br /&gt;
		; Let us know it has changed.  Change this to what you want to happen when the colour in the region changes.&lt;br /&gt;
		Msgbox($MB_ICONWARNING,&amp;quot;PixelChecksum&amp;quot;,&amp;quot;Pixel region has changed !&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(50); Just to give the CPU a bit of a break.&lt;br /&gt;
Wend&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Searching for a specific pixel color ===&lt;br /&gt;
This is an example of searching for a specific pixel (red), both pure red (0xFF0000) and red in a few different shades.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
; Find a pure red pixel in the range 0,0-20,300&lt;br /&gt;
&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Find a pure red pixel or a red pixel within 10 shades variations of pure red&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my script work on a locked workstation?==&lt;br /&gt;
On a locked station any window will never be active (active is only dialog with text &amp;quot;Press Ctrl+Alt+Del&amp;quot;).  In Windows locked state applications run hidden (behind that visible dialog) and do not have focus and active status.  So generally don&#039;t use Send() MouseClick() WinActivate() WinWaitActive() WinActive() etc.  Instead use ControlSend() ControlSetText() ControlClick() WinWait() WinExists() WinMenuSelectItem() etc.  Doing so allows you to interact with an application regardless of whether it is active or not. It&#039;s possible to run such a script from scheduler on locked Windows stations.&lt;br /&gt;
&lt;br /&gt;
==Where can I learn AutoIt? Are there any tutorials?==&lt;br /&gt;
AutoIt is a constantly growing and evolving language with a diverse and engaged community of volunteers. This wiki, along with the official forum, will always be your best place for answers to questions as well as examples and tutorials. With this in mind, below are a few resources that can also help you as you become familiar with the language:&lt;br /&gt;
&lt;br /&gt;
AutoIt 1-2-3, an interactive classroom by Valuater:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=21048 http://www.autoitscript.com/forum/index.php?showtopic=21048]&lt;br /&gt;
&lt;br /&gt;
BrettF&#039;s updated AutoIt tutorial:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=84960 http://www.autoitscript.com/forum/index.php?showtopic=84960]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Learn To Program Using FREE Tools with AutoIt&amp;quot; PDF Book by Jfish&lt;br /&gt;
[https://www.autoitscript.com/forum/files/file/351-learn-to-program-using-free-tools-with-autoit/ Learn To Program Using FREE Tools with AutoIt]&lt;br /&gt;
&lt;br /&gt;
YouTube has a number of videos available:&lt;br /&gt;
[http://www.youtube.com/results?search_query=autoit+tutorial&amp;amp;search_type=&amp;amp;aq=0&amp;amp;oq=AutoIt YouTube AutoIt tutorials list]&lt;br /&gt;
&lt;br /&gt;
As always, when asking questions about a video or script you saw on an external source, please ensure you are adhering to the [[FAQ#Breaking_forum_rules.2C_law.2C_modesty.2C_or_common_Sense|forum rules]].&lt;br /&gt;
&lt;br /&gt;
==Why does my script no longer decompile?==&lt;br /&gt;
Decompilation is no longer supported, and is only available for the older versions of AutoIt (Version 3.2.5.1 and earlier compiled scripts).&lt;br /&gt;
&lt;br /&gt;
Please &#039;&#039;&#039;do not&#039;&#039;&#039; post on this topic; see the [[Decompiling FAQ]] for more information. Topics discussing decompilation of scripts will be locked immediately. Posting the source of a decompiled script with lead to immediate sanctions from the Moderation team, as it directly violates AutoIt EULA (End-User-License-Agreement).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt;You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.&amp;lt;/i&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I get a window handle when all I have is a PID?==&lt;br /&gt;
Refer to the following example showing converting and use when manipulating the window. The function is based on work by Smoke_N/Hubertus and Helge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Run process&lt;br /&gt;
$iPID = Run(&amp;quot;Notepad.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;Allow window to initialize...&lt;br /&gt;
Sleep (500)&lt;br /&gt;
&lt;br /&gt;
;Get HWND.&lt;br /&gt;
$hWnd = _GetHwndFromPID($iPID)&lt;br /&gt;
&lt;br /&gt;
;Maximize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MAXIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Minimize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MINIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Restore window&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_RESTORE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Move top left corner of screen, and resize to 800x600&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, 0, 0, 800, 600)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Calculate Center of screen.&lt;br /&gt;
$x = (@DesktopWidth / 2) - 400; Desktop width divided by 2, then minus half the width of the window&lt;br /&gt;
$y = (@DesktopHeight / 2) - 300; Desktop height divided by 2, then minus half the height of the window&lt;br /&gt;
&lt;br /&gt;
;Move to center of screen&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, $x, $y)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Close notepad&lt;br /&gt;
WinClose($hWnd)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Function for getting HWND from PID&lt;br /&gt;
Func _GetHwndFromPID($PID)&lt;br /&gt;
	$hWnd = 0&lt;br /&gt;
	$winlist = WinList()&lt;br /&gt;
	Do&lt;br /&gt;
		For $i = 1 To $winlist[0][0]&lt;br /&gt;
			If $winlist[$i][0] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$iPID2 = WinGetProcess($winlist[$i][1])&lt;br /&gt;
				If $iPID2 = $PID Then&lt;br /&gt;
					$hWnd = $winlist[$i][1]&lt;br /&gt;
					ExitLoop&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	Until $hWnd &amp;lt;&amp;gt; 0&lt;br /&gt;
	Return $hWnd&lt;br /&gt;
EndFunc;==&amp;gt;_GetHwndFromPID&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use single or double quotes in strings?==&lt;br /&gt;
It is a fairly simple concept once you get the basics down.  Basically there are a few different ways to go about mixing quotes in strings.&lt;br /&gt;
&lt;br /&gt;
A string in AutoIt can be encased in either single(&#039;) or double (&amp;quot;) quotes.  So if you want to add only one type of quote into your string, your first port of call is to use the other type of quote to encase the string.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &amp;quot;I am a &#039;quote&#039; inside the string&amp;quot;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&lt;br /&gt;
$var = &#039;I wish I could be a &amp;quot;quote&amp;quot; inside the string!&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have to have both types of quotes in the string, the easiest way is to escape the quote ending the string as so to speak.  To do this, use two quotes instead of one.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &#039;I am a single &#039;&#039;quote&#039;&#039; inside the string made using &amp;quot;single quote!&amp;quot;&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==When should I bump my threads?==&lt;br /&gt;
As a courtesy to other users you should only bump your post once in a 24 hour period.  Doing this allows all users the chance to get helped equally.  Also refer to [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;view=findpost&amp;amp;p=688050 Why isn&#039;t my thread getting any replies?], as this will help you get replies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I protect my code from decompilation?==&lt;br /&gt;
The fact of the matter is &#039;&#039;&#039;you can&#039;t fully protect your code&#039;&#039;&#039;.  AutoIt is an  interpreted language, so all scripts are interpreted, and that script has to get stored somewhere.  There is still hope though.  You can take certain measures to make the decompiled code less usable to the person that decompiled it.  The first step is to obfuscate your code.  This causes the code to become less readable.  Basically variables and functions are renamed, making it very hard to make head or tail of what is what.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Decompiling FAQ]] for more information.&lt;br /&gt;
&lt;br /&gt;
==How can I decompile my AutoIt EXEs?==&lt;br /&gt;
You cannot decompile your AutoIt compiled scripts unless it was compiled with AutoIt 3.2.5.1 or earlier.&lt;br /&gt;
&lt;br /&gt;
In order to be able to recover your script from the compiled executable, you can use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Original Author SmokeN&lt;br /&gt;
If $CMDLINE[0] Then&lt;br /&gt;
	If $CMDLINE[1] == &amp;quot;/SOURCE&amp;quot; AND $CMDLINE[2] == &amp;quot;MYPASSWORD&amp;quot; Then&lt;br /&gt;
		FileInstall(&amp;quot;ThisSCript.au3&amp;quot;, @ScriptDir &amp;amp; &amp;quot;\DecompiledScript.au3&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then if you run the compiled script with the following command line parameters your source will be extracted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;myscript.exe /SOURCE MYPASSWORD&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What is proper forum etiquette?  What rules are there for the forum?==&lt;br /&gt;
Proper forum etiquette will ensure you will stay a member of these forums.  So try to follow these rules.  Also see this [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;st=15&amp;amp;p=688050&amp;amp;#entry688050 FAQ post], as you should follow what is outlined there as well.&lt;br /&gt;
&lt;br /&gt;
* Use proper English.  MSN speak and the like makes it very hard to understand what you want.  Keep posts in proper case because UPPERCASE is considered yelling and lowercase makes you look stupid.  Don&#039;t use more punctuation marks than necessary. For example ?!!!? and ????? is completely unnecessary.&lt;br /&gt;
* Before posting help with a script, make sure you follow these steps:&lt;br /&gt;
*# Search for your issue.&lt;br /&gt;
*#* There are many thousands of posts on this forum, and chances are your question has been asked before.  Make sure to use a variety of terms to maximize your results.&lt;br /&gt;
*# Read the helpfile&lt;br /&gt;
*#* Most if not all things in the help file will have an example (native functions) or two.  Give them a go to try see how the functions work.  Most of the time it helps!&lt;br /&gt;
*# Give it a go&lt;br /&gt;
*#* Seriously, if you can&#039;t be bothered to give it a go, then why should we be bothered to help you?  If you feel you can&#039;t do it and you don&#039;t try then how will you ever know?  We always prefer that you give it a go because you can learn from your mistakes and hopefully understand it better.&lt;br /&gt;
*# Post your problem&lt;br /&gt;
*#* Make sure you post in the correct forum.&lt;br /&gt;
*#** &amp;lt;b&amp;gt;AutoIt Specific&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/2-autoit-general-help-and-support/ General Help and Support] (Most support questions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/10-autoit-gui-help-and-support/ GUI Support] (Support for the Graphical User Interface)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/14-autoitx-help-and-support/ AutoItX Support] (Support for the COM, DLL, PowerShell and .NET add-ons for AutoIt)&lt;br /&gt;
*#** &amp;lt;b&amp;gt;Non-AutoIt&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** Chat&lt;br /&gt;
*#*** Developer Chat&lt;br /&gt;
*#* Include a detailed description in the content of the post, and a detailed title&lt;br /&gt;
*#** Titles such as &#039;Help&#039; and &#039;What&#039;s wrong?&#039; are not acceptable.  To get the most help with your problem, be as descriptive as you can in the title, but keep in mind your title cannot be too long.&lt;br /&gt;
*#** Make sure you also include a descriptive question.  Just saying &#039;what is wrong with the following&#039; is also not acceptable, as we will have no idea what the problem is.  Describe what you think is wrong and what is not working.  It makes our job easier.&lt;br /&gt;
*#* Always include your code&lt;br /&gt;
*#** It shows us that you have tried and gives us a head start with something to play with.&lt;br /&gt;
* Usually asking for a script is not taken too well, within reason.  Keep in mind that this is a support forum, so please acknowledge that. We are here to help you with your scripts, not to spoon-feed code to you.  If you do need something written for you, maybe try  [http://www.rentacoder.com/ RentACoder], as they are more suited to requests.&lt;br /&gt;
* Don&#039;t PM other members asking for them to look at threads of to help you unless they request it.  It is actually quite rude and annoying to receive PMs of that nature.&lt;br /&gt;
* Lurk a little before you dive right in. Read a number of posts, or check out the group&#039;s archives. Get a feel for the tone of the forum so you can participate accordingly.&lt;br /&gt;
* Say online exactly what you would say in person. In other words, if you wouldn&#039;t say it to the person&#039;s face in front of your Grandmother, you shouldn&#039;t type it here.&lt;br /&gt;
* Remember your face doesn&#039;t show. Words alone can convey sentiment, but without benefit of inflection or facial expression, they can be misconstrued. Use descriptive wording, emoticons or .gifs to ensure your meaning is clear. By the same token, don&#039;t jump to conclusions about another person&#039;s intent in posting an unclear comment. When in doubt, ask for clarification.&lt;br /&gt;
* Be respectful. Internet etiquette is similar to standard etiquette in this area. Appreciate that your opinion is one of many. You can disagree with another person without being disrespectful or rude to other people.&lt;br /&gt;
* Ignore Trolls. If you engage in conversation with one, you&#039;ll raise your blood pressure and empower the troll. You can&#039;t win a flame war, and you can&#039;t sway a troll&#039;s opinion. Often, they don&#039;t even care about the subject.  They live for the conflict and nothing more. Trolls are common and not worthy of your time. Ignore their posts no matter how inflammatory and eventually they&#039;ll get bored and move on.&lt;br /&gt;
* When you have found an answer for your question:&lt;br /&gt;
*# Do not edit your post to be blank or to have worthless information.  People may be searching for the same issue you have, so be courteous to them by leaving your question there.&lt;br /&gt;
*# It is also optional to add the word [SOLVED] into the title, as well as selecting the post that best answered your question. It can make the lives of people searching easier.&lt;br /&gt;
* Finally follow the rules:&lt;br /&gt;
** [http://www.autoitscript.com/forum/topic/169097-forum-rules/ Forum rules]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=54168 Rules for the Chat forum]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=65889 Rules for asking for source code]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=37739 General policies and forum settings]&lt;br /&gt;
&lt;br /&gt;
Some general points taken from [http://www.ehow.com/how_2106033_use-proper-forum-etiquette.html here].&lt;br /&gt;
&lt;br /&gt;
==Are there forums available in my local language?==&lt;br /&gt;
Yes there are some available.  Some forum members here participate in multiple forums.&lt;br /&gt;
* [http://www.autoit.de/ German Forums]&lt;br /&gt;
* [http://www.autoit.fr/  French Forums]&lt;br /&gt;
* [http://www.autoit.es/ Spanish Forums]&lt;br /&gt;
* [http://autoit-script.ru/ Russian Forums]&lt;br /&gt;
* [http://forum.autoitbrasil.com/ Portuguese Forums]&lt;br /&gt;
&lt;br /&gt;
Please note that these are independent, community-run message boards and not just a translation of this board.&lt;br /&gt;
&lt;br /&gt;
==How can I control (click, edit etc) an external (html) application?==&lt;br /&gt;
You can use the control* functions of autoit see helpfile&lt;br /&gt;
of use specific udf libraries&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ IUIAutomation for multiple applications]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/154439-chrome-udf/ chrome chrome.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/149526-librariesieau3/ Internet explorer ie.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ firefox ff.au3] (End of life)&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy/ java]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?&amp;amp;q=Selenium Selenium]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/191990-webdriver-udf-w3c-compliant-version/ WebDriver UDF (IE, Chrome, FireFox)]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should use spy applications to identify objects like&lt;br /&gt;
* au3inf part of AutoIT&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ simplespy in the zip]&lt;br /&gt;
* jabsimplespy in examples section of the AutoIt forum&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/126716-control-viewer-autoit-window-info-tool/ control viewer]&lt;br /&gt;
* inspect as part of windows SDK&lt;br /&gt;
* VisualUIAVerifyNative.exe as part of windows SDK (8.1)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If above spy tools are not identifying your object you could try commercial tools (trials) like&lt;br /&gt;
* ranorex spy&lt;br /&gt;
* Testcomplete&lt;br /&gt;
* HP UFT&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And your last recognition can be bitmaps&lt;br /&gt;
* search for GDI&lt;br /&gt;
* search for findBMP&lt;br /&gt;
* search for imagesearch&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt support database connections, such as SQL?==&lt;br /&gt;
Yes! UDFs exist for several popular SQL solutions, including SQLite, Firebird, MySQL, MSSQL and ODBC connections for PostGreSQL and others.&lt;br /&gt;
&lt;br /&gt;
For an illustrative list, see this link:&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/wiki/User_Defined_Functions#Files.2C_Databases_and_web_connections Files, Databases and web connections]&lt;br /&gt;
&lt;br /&gt;
A DBF UDF also exists&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/145142-dbf-udf-dbase-database-read-and-write-with-dll/ DBF UDF dBase with DLL]&lt;br /&gt;
&lt;br /&gt;
==How can I include some files into my compiled Autoit&#039;s EXE?==&lt;br /&gt;
Use FileInstall() or ResourcesEx UDF from the forum Examples.  Additional resources can also be included at compile time, click the &amp;quot;Res Add Files&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
==How can I test if checkbox / radiobutton is checked?==&lt;br /&gt;
Use this small function: If IsChecked($checkbox1) Then ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Zedna&lt;br /&gt;
Func IsChecked($control)&lt;br /&gt;
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED&lt;br /&gt;
EndFunc   ;==&amp;gt;IsChecked&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use the {enter} key as a Tab?==&lt;br /&gt;
Use &lt;br /&gt;
[https://www.autoitscript.com/autoit3/docs/functions/GUISetAccelerators.htm Accelerator keys]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; by Melba23&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
&lt;br /&gt;
$cInput_1 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 10, 200, 20)&lt;br /&gt;
$cInput_2 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 50, 200, 20)&lt;br /&gt;
$cInput_3 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 90, 200, 20)&lt;br /&gt;
&lt;br /&gt;
$cButton_1 = GUICtrlCreateButton(&amp;quot;Button 1&amp;quot;, 250, 10, 80, 30)&lt;br /&gt;
$cButton_2 = GUICtrlCreateButton(&amp;quot;Button 2&amp;quot;, 250, 50, 80, 30)&lt;br /&gt;
$cButton_3 = GUICtrlCreateButton(&amp;quot;Button 3&amp;quot;, 250, 90, 80, 30)&lt;br /&gt;
&lt;br /&gt;
$cEnter = GUICtrlCreateDummy()&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Local $aAccelKeys[2][2] = [[&amp;quot;{ENTER}&amp;quot;, $cEnter], [&amp;quot;{TAB}&amp;quot;, $cEnter]] ; Make {TAB} an accelerator&lt;br /&gt;
GUISetAccelerators($aAccelKeys)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $cEnter&lt;br /&gt;
			Switch _WinAPI_GetFocus()&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_1)&lt;br /&gt;
					; Check the input content&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						; Correct so move to next input&lt;br /&gt;
						GUICtrlSetState($cInput_2, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
					; Not correct so stay in current input&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_2)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						GUICtrlSetState($cInput_3, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_3)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						ConsoleWrite(&amp;quot;End&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case Else&lt;br /&gt;
					GUISetAccelerators(0) ; Remove accelerator link&lt;br /&gt;
					ControlSend($hGUI, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;{TAB}&amp;quot;) ; Send {TAB} to the GUI&lt;br /&gt;
					GUISetAccelerators($aAccelKeys) ; Reset the accelerator&lt;br /&gt;
&lt;br /&gt;
			EndSwitch&lt;br /&gt;
	EndSwitch&lt;br /&gt;
&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func checkEntry()&lt;br /&gt;
&lt;br /&gt;
	; Random chance of correct answer or fail&lt;br /&gt;
	If Mod(@SEC, 2) = 0 Then&lt;br /&gt;
		MsgBox($MB_SYSTEMMODAL, &amp;quot;Test Fail&amp;quot;, &amp;quot;Press Enter to close this message box&amp;quot;)&lt;br /&gt;
		Return False&lt;br /&gt;
	EndIf&lt;br /&gt;
	Return True&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;checkEntry&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why are my number sort results wrong?==&lt;br /&gt;
AutoIt by default uses an alpha sort algorithm. This means that ABC is sorted correctly, but it sorts numbers as 1,10,2,22,3,31 where the user expects 1,2,3,10,22,31.&lt;br /&gt;
This can be remedied by using a custom sort function. An example of such a custom number sort by Valuater appears below.  Search the Forum for [https://www.autoitscript.com/forum/topic/95383-sorting-numbers/ Number Sort] and [https://www.autoitscript.com/forum/topic/83626-natural-order-string-comparison/ Natural Order String Comparison] &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Valuater&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$Array = StringSplit(&amp;quot;2,5,3,4,6,1,8,9,7&amp;quot;, &amp;quot;,&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
_ArraySortNum($Array)&lt;br /&gt;
&lt;br /&gt;
_ArrayDisplay($Array, &amp;quot;Sorted Array&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Func _ArraySortNum(ByRef $n_array, $i_descending = 0, $i_start = 1)&lt;br /&gt;
	Local $i_ub = UBound($n_array)&lt;br /&gt;
	For $i_count = $i_start To $i_ub - 2&lt;br /&gt;
		Local $i_se = $i_count&lt;br /&gt;
		If $i_descending Then&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;lt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;gt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
		Local $i_hld = $n_array[$i_count]&lt;br /&gt;
		$n_array[$i_count] = $n_array[$i_se]&lt;br /&gt;
		$n_array[$i_se] = $i_hld&lt;br /&gt;
	Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_ArraySortNum&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I include AutoIt functions in a C# / C++ / VB programme? AutoItX==&lt;br /&gt;
AutoIt is also supplied as 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;
[https://www.autoitscript.com/site/autoit/ Info on AutoItX] &lt;br /&gt;
&lt;br /&gt;
From AutoItX.chm:&lt;br /&gt;
AutoItX is a DLL version of AutoIt v3 that provides a subset of the features of AutoIt via an ActiveX/COM and DLL interface. This means that you can add AutoIt-like features to your favourite scripting and programming languages, e.g. VB, VBScript, Delphi, C, C++, Kixtart, and most other languages that support the use of DLLs.&lt;br /&gt;
&lt;br /&gt;
Here are some C++ source code samples from various projects by [https://www.autoitscript.com/forum/profile/1-jon/ Jon]. Most are free to use but check any license files that accompany the downloads for details.  All code was created in Microsoft Visual C (6 and 7) but most would probably compile under mingw32 as well.&lt;br /&gt;
[https://www.autoitscript.com/site/code/ Download C++ examples for AutoItX] &lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to regsvr it if you are using the c# library. The c# library uses the non-COM part of the DLL so it just needs to be in the same folder as the exe and add the assembly.dll to your project. From the documenation:&lt;br /&gt;
&lt;br /&gt;
Using the Assembly from VB/C# within in Visual Studio is very easy:&lt;br /&gt;
* Add a reference to AutoItX3.Assembly.dll to your project&lt;br /&gt;
* Add a using AutoIt; statement in the files you want to use AutoIt functions&lt;br /&gt;
* Distribute your final executable with the files AutoItX3.Assembly.dll, AutoItX3.dll, AutoItX3_x64.dll.&lt;br /&gt;
* Write code like this C# example:&lt;br /&gt;
    using AutoIt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Jon&lt;br /&gt;
   // Wow, this is C#!&lt;br /&gt;
    AutoItX.Run(&amp;quot;notepad.exe&amp;quot;);&lt;br /&gt;
    AutoItX.WinWaitActive(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.Send(&amp;quot;I&#039;m in notepad&amp;quot;);&lt;br /&gt;
    IntPtr winHandle = AutoItX.WinGetHandle(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.WinKill(winHandle);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the AutoItX Help File (included in the default AutoIt install):&lt;br /&gt;
AutoItX can be used as a standard DLL from any language capable of calling functions in external DLLs.&lt;br /&gt;
&lt;br /&gt;
The following files are provided to allow you to use the DLL in C++:&lt;br /&gt;
&lt;br /&gt;
* AutoItX3_DLL.h - C language header file showing the exported functions and parameters&lt;br /&gt;
* AutoItX3_DLL.lib - Microsoft format import library (x86)&lt;br /&gt;
* AutoItX3_x64_DLL.lib - Microsoft format import library (x64)&lt;br /&gt;
* AutoItX3.dll - The main AutoItX DLL (x86)&lt;br /&gt;
* AutoItX3_x64.dll - The main AutoItX DLL (x64)&lt;br /&gt;
&lt;br /&gt;
==How can I search an image in another image? ==&lt;br /&gt;
You can use the Pixel* functions of AutoIt. See the help file for more information and examples.&lt;br /&gt;
You can also use one of the UDFs below; most of which use GDI:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/158264-bmpsearch-search-for-bitmap-within-bitmap-assembly-version/ FASM example]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/140478-bitmap-processing-using-raw-code/ asm bitmap processing]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/66545-find-bmp-in-another-bmp-imagesearch/ find bitmap in bitmap]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?type=all&amp;amp;q=_GDIPlus_BitmapLockBits/ GDI bitmaps]&lt;br /&gt;
Other libraries can be found that make use of a specific external dll but those above are considered &amp;quot;native&amp;quot; as no external dlls are required.&lt;br /&gt;
&lt;br /&gt;
==Multithreading==&lt;br /&gt;
Multithreading basically is running multiple scripts/programs that have acces to the same variables, normally by sharing memory. &lt;br /&gt;
&lt;br /&gt;
The AutoIt language is not threadsafe and multithreading is firmly on the &amp;lt;b&amp;gt;NOT TO DO&amp;lt;/b&amp;gt; list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multitasking and Multi&amp;lt;i&amp;gt;processing&amp;lt;/i&amp;gt; are closely related, however, and multiple solutions have been explored:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25350-multithread/ Multithread technical discussion]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25494-threaded-dll-sample/ Multithread with external DLL]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/146794-multi-thread-autoit/ Multithread with external DLL 2]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/64390-how-to-multi-process-in-autoit/ Multi process]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/187334-using-net-libary-with-autoit-possible/ Using C# - Host .NET]&lt;br /&gt;
&lt;br /&gt;
==Test automation==&lt;br /&gt;
Many people are looking for freeware tools to do test automation and cannot afford the commercial tools like HP LeanFT, Ranorex, Squish etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
So how can AutoIt help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Out of the box install the base full zip package and start Scite.Exe as a simple IDE.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to do more these links will help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 31 for the basic stuff on which technologies are readable and which spying tools there are&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 38 for the bitmap stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/ Alternative project IDE]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/188158-net-common-language-runtime-clr-framework/ .NET stuff]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/84133-winhttp-functions/ WinHTTP]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/185401-restwhich-udf-to-use-webdriver-of-edge/ webdriver]&lt;br /&gt;
Android can be reached thru ADB and Webdriver&amp;lt;br /&amp;gt;&lt;br /&gt;
iOS is limited to normal webdriver stuff thru WinHTTP library. So most likely you have to install additional iOS webdriver solutions&amp;lt;br /&amp;gt;&lt;br /&gt;
And after reading FAQ just ask your questions in the support forum&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DPI Awareness==&lt;br /&gt;
The following few links are related to DPI Awareness :&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166479-writing-dpi-awareness-app-workaround/ Writing DPI Awareness App - workaround]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/182423-wrong-screen-resolution-displayed-by-autoit-macros/ Wrong Screen Resolution Displayed by Autoit Macros]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/192529-dpi-awareness-any-suggestion/ DPI Awareness - question]&lt;br /&gt;
&lt;br /&gt;
==AutoIt+SciTE Portable Developer Environment==&lt;br /&gt;
Recent discussion can be found here:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/119572-autoit3-portable/?do=findComment&amp;amp;comment=1391105 How to make AutoIt+SciTE portable ]&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt have an agreed set of good practices ?==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146866 Forum disscusion on good coding practices in AutoIt] &lt;br /&gt;
Wiki related resources:&lt;br /&gt;
[https://www.autoitscript.com/wiki/Best_coding_practices Best coding practices] &lt;br /&gt;
[https://www.autoitscript.com/wiki/Variables_-_using_Global,_Local,_Static_and_ByRef Variables - using Global, Local, Static and ByRef] &lt;br /&gt;
[https://www.autoitscript.com/wiki/UDF-spec UDF-spec]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13858</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13858"/>
		<updated>2018-10-21T22:25:00Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Does AutoIt have an agreed set of good practices ?*/ added this section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of frequently asked questions asked on the forums.&lt;br /&gt;
&lt;br /&gt;
Other FAQs include:&lt;br /&gt;
* The one found in the [http://www.autoitscript.com/autoit3/docs/faq.htm AutoIt HelpFile].  Much of it is about the transition from V2 to V3, but most is still relevant and should be a port of call, as well as this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I debug my script?==&lt;br /&gt;
&lt;br /&gt;
=== In SciTE ===&lt;br /&gt;
This one has a myriad of answers, but the most effective is to begin by using the [http://www.autoitscript.com/autoit3/scite/ SciTE4AutoIt3 Editor] to create or edit scripts. This program is useful in debugging for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* Syntax highlighting allows for immediate viewing of any mistakes from unended script tags or quotes. This allows the scripter to visibly see the difference between the following portions of code.&lt;br /&gt;
[[File:FAQ_Q1_2.jpg|center|Incorrect code]]&lt;br /&gt;
And the correct version: &lt;br /&gt;
[[File:FAQ_Q1_3.jpg|center||Correct Code]]&lt;br /&gt;
* Global syntax check built directly into the tools menu allows you to check an entire script for problems all at once.&lt;br /&gt;
* Built-in code tidying program that correctly indents untidy code and repairs messy scripts to allow them to be more readable. It also corrects problems with incorrectly capitalised function names and variables.&lt;br /&gt;
* Per-line trace insertion allows you to log every line of code executed to debug errors.&lt;br /&gt;
* Debug MsgBoxes or ConsoleWrites are able to be added anywhere in the script directly from SciTE. ConsoleWrite lines are less intrusive and prevent the added annoyance to the user of MsgBoxes.&lt;br /&gt;
&lt;br /&gt;
You can also use AutoIt3Wrapper directive:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#AutoIt3Wrapper_Run_Debug_Mode=Y&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FAQ_Q1_4.jpg|center|Picture of SciTE4AutoIt3]]&lt;br /&gt;
&lt;br /&gt;
=== Using more code to check @error value ===&lt;br /&gt;
Nearly all functions will return something.  Most of the time when a function fails, it returns 0 and sets @error.  You can use this information not only to create scripts that handle for different errors but to debug and find out exactly why you are having problems.  Check the help file for specific functions and their return values.&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;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	Local $aFileList = _FileListToArray(@ScriptDir, &#039;NO_EXISTING_FILE.TEST&#039;)&lt;br /&gt;
	If @error Then ; check if _FileListToArray() function return any error&lt;br /&gt;
		MsgBox($MB_ICONERROR, &#039;_FileListToArray&#039;, &#039;@error = &#039; &amp;amp; @error &amp;amp; @CRLF &amp;amp; &#039;@extended = &#039; &amp;amp; @extended) ; show error message&lt;br /&gt;
		Return ; return / exit from function to prevent unexpected further error&#039;s&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	For $iFile_idx = 1 To $aFileList[0]&lt;br /&gt;
		FileRead($aFileList[$iFile_idx])&lt;br /&gt;
		; any further code&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Via the Tray icon===&lt;br /&gt;
You can add this line at the top of your script (1 is on, 0 is off) to enable debugging from the tray icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;AutoItSetOption (&amp;quot;TrayIconDebug&amp;quot;, 1);0-off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then if you run the script (uncompiled as an AU3 file), you can mouse over the AutoIt icon in the system tray (down by the clock) to display debugging information.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_1.jpg|center|Example output for TrayIconDebug]]&lt;br /&gt;
&lt;br /&gt;
=== OutputDebugString native call ===&lt;br /&gt;
You can also debug a script on any computer by adding the following code to your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _MyDebug($sMessage, $iError = @error, $iExtended = @extended)&lt;br /&gt;
	If $iError Or $iExtended Then&lt;br /&gt;
		$sMessage &amp;amp;= &#039;[ @error = &#039; &amp;amp; $iError &amp;amp; &#039; @extended = &#039; &amp;amp; $iExtended &amp;amp; &#039; ]&#039;&lt;br /&gt;
	EndIf&lt;br /&gt;
	DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;OutputDebugString&amp;quot;, &amp;quot;str&amp;quot;, $sMessage)&lt;br /&gt;
	Return SetError($iError, $iExtended, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyDebug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then, when you need to add a debug line, call it as necessary. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;_MyDebug(&amp;quot;The value of Variable 1 at this time is &amp;quot; &amp;amp; $var1)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This debugging is completely transparent to the user, and is only viewable with a program such as DebugView from SysInternals. This method of debugging has the added advantage of being available to the developer in situations where is not acceptable or feasable to install SciTE on a client&#039;s unit.&lt;br /&gt;
&lt;br /&gt;
=== Graphical debugger ===&lt;br /&gt;
Stumpii created a [http://www.autoitscript.com/forum/index.php?showtopic=21834 Graphical AutoIt Debugger], similar to Dev-C++&#039;s debugging style.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_5.jpg|center|Stumpii&#039;s Graphical AutoIt Debugger]]&lt;br /&gt;
&lt;br /&gt;
=== Another debugger for AutoIt ===&lt;br /&gt;
Heron created a [http://www.autoitscript.com/forum/index.php?showtopic=103142 Another debugger for AutoIt].&lt;br /&gt;
&lt;br /&gt;
The latest version by asdf8 is here:&lt;br /&gt;
https://www.autoitscript.com/forum/topic/103142-another-debugger-for-autoit/?do=findComment&amp;amp;comment=1303208&lt;br /&gt;
&lt;br /&gt;
=== Other UDF to log/trace/script analyze ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
==How can I run something that is not an exe file [.txt, .msi, .pdf,.jpg etc.] [or] How can I open a webpage in the default browser?==&lt;br /&gt;
It was for this reason that the ShellExecute function was created. Here is one example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;edit&amp;quot;, @SW_MAXIMIZE)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also specify a web address this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;http://www.autoitscript.com/forum&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;open&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you normally are able to right-click the file and select print, then you can also print the file from AutoIt using this function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\boot.ini&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;print&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to open the file with the default program, you can do as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish your script to wait until the process is finished, you can use the ShellExecuteWait function with the same parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The default verb is the verb configured in the registry. If no verb is set as default in the registry then the &amp;quot;open&amp;quot; verb is used. If the &amp;quot;open&amp;quot; verb is not present then the first verb listed in the registry is used.&lt;br /&gt;
&lt;br /&gt;
==How can I prevent more than one copy of my script from running at once, or detect another copy of my script running?==&lt;br /&gt;
&lt;br /&gt;
=== _Singleton function ===&lt;br /&gt;
There are a few different ways to go about this. You can use a function called _Singleton to detect multiple instances of your script. An example of how to use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
_Singleton(&amp;quot;TheNameOfMyScript&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this instance, the script will bring up some messages explaining to the user of the occurring events. &lt;br /&gt;
This example will show you how the above function can be used in a real world application.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _Singleton(&amp;quot;MyScriptName&amp;quot;, 1) = 0 Then&lt;br /&gt;
    ; If successful, running our script a second time should cause us to fall through here&lt;br /&gt;
    MsgBox($MB_ICONERROR, &amp;quot;User Generated Error Message&amp;quot;, &amp;quot;Error: This script is already running!&amp;quot;)&lt;br /&gt;
Else&lt;br /&gt;
    ; We have detected that we are the only instance running, now we will run a second instance to display _Singleton&#039;s function!&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We are the first instance of this script, press OK to run another instance and trigger the error message!&amp;quot;)&lt;br /&gt;
    Switch @Compiled&lt;br /&gt;
        Case 1&lt;br /&gt;
            Run(FileGetShortName(@ScriptFullPath));when running an app, it&#039;s usually better to use its short name&lt;br /&gt;
        Case 0&lt;br /&gt;
            Run(FileGetShortName(@AutoItExe) &amp;amp; &#039; /AutoIt3ExecuteScript &#039; &amp;amp; FileGetShortName(@ScriptFullPath))&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We ran a second instance, you should have recieved an error message!&amp;quot;, 5)&lt;br /&gt;
EndIf&lt;br /&gt;
Exit&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_MutexExists function ===&lt;br /&gt;
Another method is to use _MutexExists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _MutexExists(&amp;quot;MydeswswScriptName&amp;quot;) Then&lt;br /&gt;
	; We know the script is already running. Let the user know.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;Script Name&amp;quot;, &amp;quot;This script is already running. Using multiple copies of this script at the same time is unsupported!&amp;quot;)&lt;br /&gt;
	Exit&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
;Function Author- Martin&lt;br /&gt;
Func _MutexExists($sOccurenceName)&lt;br /&gt;
	Local $ERROR_ALREADY_EXISTS = 183, $handle, $lastError&lt;br /&gt;
	$sOccurenceName = StringReplace($sOccurenceName, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;); to avoid error&lt;br /&gt;
	$handle = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;CreateMutex&amp;quot;, &amp;quot;int&amp;quot;, 0, &amp;quot;long&amp;quot;, 1, &amp;quot;str&amp;quot;, $sOccurenceName)&lt;br /&gt;
	$lastError = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetLastError&amp;quot;)&lt;br /&gt;
	Return $lastError[0] = $ERROR_ALREADY_EXISTS&lt;br /&gt;
EndFunc;==&amp;gt;_MutexExists&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I run my script as a service?==&lt;br /&gt;
This is also a question with multiple answers, and none of them are the only way to do it. The first question to ask yourself is whether or not you wish to install the service on other computers besides your own.&lt;br /&gt;
&lt;br /&gt;
=== On your own computer - One time only ===&lt;br /&gt;
The easiest way to do this is to use Pirmasoft RunAsSvc. This program makes services easy to install and easy to remove when necessary.&lt;br /&gt;
&lt;br /&gt;
=== On all computers that run your script===&lt;br /&gt;
To do this you can use SRVANY.EXE and [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3]. You can then use this code to install your script as a service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_CreateService(&amp;quot;&amp;quot;, $servicename, &amp;quot;My AutoIt Script&amp;quot;, &amp;quot;C:\Path_to_\srvany.exe&amp;quot;, &amp;quot;LocalSystem&amp;quot;, &amp;quot;&amp;quot;, 0x110)&lt;br /&gt;
RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\&amp;quot; &amp;amp; $servicename &amp;amp; &amp;quot;\Parameters&amp;quot;, &amp;quot;Application&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the following code to delete this service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_DeleteService(&amp;quot;&amp;quot;, $servicename)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one caveat to setting up AutoIt as a service. If the service is not installed using the above code, it must have the &amp;quot;allow service to interact with the desktop&amp;quot; setting or else automation functions such as Control* or Win* functions will not function. To assure the service does indeed have this setting, use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\[ServiceName]&amp;quot;, &amp;quot;Type&amp;quot;, &amp;quot;REG_DWORD&amp;quot;, 0x110)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I create/start/stop or otherwise control a service?==&lt;br /&gt;
There are two include libraries that are designed specifically to interact with services. These are the following:&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3] made by SumTingWong. Functionality:&lt;br /&gt;
** _StartService()&lt;br /&gt;
** _StopService()&lt;br /&gt;
** _ServiceExists()&lt;br /&gt;
** _ServiceRunning()&lt;br /&gt;
** _CreateService()&lt;br /&gt;
** _DeleteService()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22165 _NTServices.au3] made by CatchFish. Functionality:&lt;br /&gt;
** _ServiceStart()&lt;br /&gt;
** _ServiceStop()&lt;br /&gt;
** _ServiceStatus()&lt;br /&gt;
** _ServicePause()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I display a progress bar while copying files or directories?==&lt;br /&gt;
There are a many different topics on how to do this.  For more, just search the forums for [http://www.autoitscript.com/forum/index.php?act=Search&amp;amp;CODE=show&amp;amp;searchid=22030d4d4effe5e32da23fdb69ed772f&amp;amp;search_in=posts&amp;amp;result_type=topics&amp;amp;highlite=%2BCopy%2B Progress Copy + Progress].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11313 Copy with progress dialog]... By ezztabi&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11888 Yet another copy with progress]... By SumTingWong&lt;br /&gt;
* [http://www.autoit.de/index.php?page=Thread&amp;amp;postID=58875 _MultiFileCopy]... By Oscar (German Forums)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19370&amp;amp;st=45&amp;amp;p=186198&amp;amp;#entry186198 _FileCopy]... By Jos&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q6_1.jpg|center|Copy progress dialog by ezztabi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make a hotkey that only works in my GUI?==&lt;br /&gt;
It used to be quite tedious setting hotkeys to only work in your GUI.  Now there is an easier way with the function GUISetAccelerators.&lt;br /&gt;
&lt;br /&gt;
(From Helpfile example)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; A simple custom messagebox that uses the MessageLoop mode&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Custom Msgbox&amp;quot;, 210, 80)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Please click a button!&amp;quot;, 10, 10)&lt;br /&gt;
$YesID = GUICtrlCreateButton(&amp;quot;Yes&amp;quot;, 10, 50, 50, 20)&lt;br /&gt;
$NoID = GUICtrlCreateButton(&amp;quot;No&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$ExitID = GUICtrlCreateButton(&amp;quot;Exit&amp;quot;, 150, 50, 50, 20)&lt;br /&gt;
&lt;br /&gt;
; Set accelerators for Ctrl+y and Ctrl+n&lt;br /&gt;
Dim $AccelKeys[2][2]=[[&amp;quot;^y&amp;quot;, $YesID], [&amp;quot;^n&amp;quot;, $NoID]]&lt;br /&gt;
GUISetAccelerators($AccelKeys)&lt;br /&gt;
&lt;br /&gt;
GUISetState(); display the GUI&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
	$msg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case $msg = $YesID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		Case $msg = $NoID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;No&amp;quot;)&lt;br /&gt;
		Case $msg = $ExitID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Exit&amp;quot;)&lt;br /&gt;
		Case $msg = $GUI_EVENT_CLOSE&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Close&amp;quot;)&lt;br /&gt;
	EndSelect&lt;br /&gt;
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I perform an action while a key is held down?==&lt;br /&gt;
You can use the _IsPressed() function to determine when a key is held down. The values that can be specified in this function are listed in the AutoIt Help File under User Defined Functions -&amp;gt; Misc Management -&amp;gt; _IsPressed. The following example will press the left mouse button while the k key is held down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
$pressed = 0&lt;br /&gt;
While 1&lt;br /&gt;
	If _IsPressed(&amp;quot;4B&amp;quot;) Then&lt;br /&gt;
		If Not $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;K Key being held down&amp;quot;)&lt;br /&gt;
			MouseDown(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 1&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		If $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;&amp;quot;)&lt;br /&gt;
			MouseUp(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 0&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(250)&lt;br /&gt;
WEnd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I run my script on a remote computer over the network?==&lt;br /&gt;
The answer to this question depends on how much experience you have in networking. If the target system is a Windows system to which you have administrator access then you may use one of the following programs:&lt;br /&gt;
&lt;br /&gt;
* PsExec from SysInternals&lt;br /&gt;
* BeyondExec from BeyondLogic&lt;br /&gt;
&lt;br /&gt;
With either of these programs it is possible to launch any process on a remote system and even copy your script to the target computer before starting it. Neither these programs nor any others will work with Windows XP Home Edition unless you create a custom &amp;quot;command listener&amp;quot; that you manually install on the target system.&lt;br /&gt;
&lt;br /&gt;
NOTE: Those of you with more advanced programming skills and a little imagination can figure out how to use the service control libraries and srvany.exe to do this same thing without either of the above mentioned programs.&lt;br /&gt;
&lt;br /&gt;
==How can I make a User Defined Function with optional parameters like the ones I see in the Help File?==&lt;br /&gt;
You can specify optional parameters by giving them a default value in the Func declaration. An example of how this is done:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Func testme($param1, $param2 = &amp;quot;nothing&amp;quot;, $param3 = 5)&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;&amp;quot;, &amp;quot;Parameter one is required. The value of Parameter 1 is &amp;quot; &amp;amp; $param1 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 2 is optional. The value of Parameter 2 is &amp;quot; &amp;amp; $param2 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 3 is optional. The value of Parameter 3 is &amp;quot; &amp;amp; $param3)&lt;br /&gt;
EndFunc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If testme() is called with only one parameter [I.E. testme(&amp;quot;test&amp;quot;)] then the output is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
However, if the function is called with more than one parameter like this testme(&amp;quot;test&amp;quot;, &amp;quot;something&amp;quot;), then the output is&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is something&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make my script start every time windows starts?==&lt;br /&gt;
You can use one of the following codes to allow your script to start with Windows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&amp;quot;, &amp;quot;MyProgramName&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;FileCreateShortcut(@ScriptFullPath, @StartupCommonDir &amp;amp; &amp;quot;\MyProgramName.lnk&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or place a Shortcut in the Startup folder, or the entire Executable.  For Win8+ systems, use the Win+R keys to open a Run box, then &amp;quot;Shell:Startup&amp;quot; to access the Startup folder. Due to Windows User Account Control (UAC) restrictions, your script may require [https://www.autoitscript.com/autoit3/docs/keywords/RequireAdmin.htm #RequireAdmin].&lt;br /&gt;
&lt;br /&gt;
==How can I have the script delete itself?==&lt;br /&gt;
The following function will delete the running script or .exe once it has finished execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: Make a copy of your script before calling this function!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _SelfDelete($iDelay = 0)&lt;br /&gt;
	Local $sCmdFile&lt;br /&gt;
	FileDelete(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;)&lt;br /&gt;
	$sCmdFile = &#039;ping -n &#039; &amp;amp; $iDelay &amp;amp; &#039; 127.0.0.1 &amp;gt; nul&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;:loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot;&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;if exist &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; goto loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del %0&#039;&lt;br /&gt;
	FileWrite(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, $sCmdFile)&lt;br /&gt;
	Run(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, @TempDir, @SW_HIDE)&lt;br /&gt;
EndFunc;==&amp;gt;_SelfDelete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I create a clickable website hyperlink in my gui?==&lt;br /&gt;
[[File:FAQ_Q13_1.jpg|center|Example GUI using Gary&#039;s UDF.]]&lt;br /&gt;
&lt;br /&gt;
Gary Frost has made great advances in this area and has provided a [http://www.autoitscript.com/forum/index.php?showtopic=23111&amp;amp;st=0 UDF here] (&#039;&#039;&#039;the UDF was removed from the post&#039;&#039;&#039;) to help with doing this.&lt;br /&gt;
&lt;br /&gt;
==How can I change the screen resolution / refresh rate / color depth?==&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=20121 ChangeResolution.au3] is a library function created to make changes to these settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I get the screen resolution in multiple monitor setups?==&lt;br /&gt;
The following code was worked out by Larry to determine the total screen resolution of multiple monitors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$aTSR = _GetTotalScreenResolution()&lt;br /&gt;
MsgBox($MB_OK, &amp;quot;Total Screen Resolution&amp;quot;, &amp;quot;Width = &amp;quot; &amp;amp; $aTSR[0] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Height = &amp;quot; &amp;amp; $aTSR[1])&lt;br /&gt;
&lt;br /&gt;
;Original code by Larry.&lt;br /&gt;
;Edited by BrettF&lt;br /&gt;
Func _GetTotalScreenResolution()&lt;br /&gt;
	Local $aRet[2]&lt;br /&gt;
	Global Const $SM_VIRTUALWIDTH = 78&lt;br /&gt;
	Global Const $SM_VIRTUALHEIGHT = 79&lt;br /&gt;
	$VirtualDesktopWidth = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALWIDTH)&lt;br /&gt;
	$aRet[0] = $VirtualDesktopWidth[0]&lt;br /&gt;
	$VirtualDesktopHeight = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALHEIGHT)&lt;br /&gt;
	$aRet[1] = $VirtualDesktopHeight[0]&lt;br /&gt;
	Return $aRet&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  How can I register a file type with my program [or] How can I make files with a certain extension open in my program?==&lt;br /&gt;
[[File:FAQ_Q16_1.jpg|center|Example of how a file type can be registered.]]&lt;br /&gt;
File registration can be a tricky business for those who have not done it before. The first thing to be done is to modify your script to allow it to accept files from the command line. Here is one example of how to do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;$cmdline[0] is the number of parameters passed&lt;br /&gt;
If $cmdline[0] &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
	$filename = $cmdline[1]&lt;br /&gt;
;Do something with the file here&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;The file name passed to the command line is &amp;quot;&#039; &amp;amp; $filename &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
Else&lt;br /&gt;
; We did not get any command line parameters.&lt;br /&gt;
; If this is a command line only program, you would want to&lt;br /&gt;
; alert the user that the command line parameters were incorrect.&lt;br /&gt;
; If this is a GUI program (like a notepad program), you would&lt;br /&gt;
; want to simply continue from here without opening a file.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;Command line parameters incorrect.&#039; &amp;amp; @CRLF &amp;amp; &#039;Command line usage: &amp;quot;&#039; &amp;amp; @ScriptName &amp;amp; &#039;&amp;quot; &amp;quot;file to process&amp;quot;&#039;)&lt;br /&gt;
 EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After your script is ready to accept files, you can begin to register the file type you need with your program. To prevent errors, this-is-me has created a UDF that will allow you to do this easily:&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to register and unregister a file extension using this UDF:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;quot;FileRegister.au3&amp;quot;&lt;br /&gt;
;================================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileRegister($ext, $cmd, $verb [, $def [, $icon = &amp;quot;&amp;quot; [, $desc = &amp;quot;&amp;quot; ]]])&lt;br /&gt;
;			   Registers a file type in Explorer&lt;br /&gt;
;&lt;br /&gt;
; Parameter(s): $ext -  File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;		$cmd -  Program path with arguments eg. &#039;&amp;quot;C:\test\testprog.exe&amp;quot; &amp;quot;%1&amp;quot;&#039;&lt;br /&gt;
;			 (%1 is 1st argument, %2 is 2nd, etc.)&lt;br /&gt;
;		$verb - Name of action to perform on file&lt;br /&gt;
;			 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;		$def -  Action is the default action for this filetype&lt;br /&gt;
;			 (1 for true 0 for false)&lt;br /&gt;
;			 If the file is not already associated, this will be the default.&lt;br /&gt;
;		$icon - Default icon for filetype including resource # if needed&lt;br /&gt;
;			 eg. &amp;quot;C:\test\testprog.exe,0&amp;quot; or &amp;quot;C:\test\filetype.ico&amp;quot;&lt;br /&gt;
;		$desc - File Description eg. &amp;quot;Zip File&amp;quot; or &amp;quot;ProgramName Document&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;================================================&lt;br /&gt;
&lt;br /&gt;
 FileRegister(&amp;quot;uxy&amp;quot;, &#039;&amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; &amp;quot;%1&amp;quot;&#039;, &amp;quot;Open in UXYFixer&amp;quot;, 1, @ScriptFullPath &amp;amp; &#039;,0&#039;, &amp;quot;UXYFixer Document&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;========================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileUnRegister($ext, $verb)&lt;br /&gt;
;			   UnRegisters a verb for a file type in Explorer&lt;br /&gt;
; Parameter(s):  $ext - File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;			   $verb - Name of file action to remove&lt;br /&gt;
;					 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;========================================&lt;br /&gt;
&lt;br /&gt;
 FileUnRegister(&amp;quot;uxy&amp;quot;, &amp;quot;Open in UXYFixer&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download here:&#039;&#039;&#039;&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=26378 FileRegister.au3]&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my combobox (GUICtrlCreateCombo) show a dropdown list when clicked?==&lt;br /&gt;
When using GUICtrlCreateCombo be sure to enter the desired height for your combobox list in the &amp;quot;height&amp;quot; parameter. Windows XP automatically selects an appropriate height for combo boxes, but other versions of Windows usually do not.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,20)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Would correctly be changed to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,200)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why isn&#039;t my thread getting any replies?==&lt;br /&gt;
&lt;br /&gt;
=== Asking the right question right ===&lt;br /&gt;
Did you give a good description of the problem? If your title or explanation of the issue is not descriptive, users are likely to bypass your issue instead of helping. Post titles such as &amp;quot;Help Me&amp;quot;, &amp;quot;I Have A Problem&amp;quot;, &amp;quot;Question&amp;quot;, &amp;quot;Help me fix my code&amp;quot;, &amp;quot;This code doesn&#039;t work&amp;quot; or similarly worded titles will not readily draw forum users to your post. Experienced users (which are your best hope of resolving the issue) will often skip your post altogether in cases like this. An example of a post title descriptive enough to attract users to assist you is &amp;quot;Problem with WinWaitClose&amp;quot; or &amp;quot;Loop never ends&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Example for reproduction ===&lt;br /&gt;
Did you post example code? If you have not posted an example of the code you are having an issue with, then you will not recieve support. When posting a non-working script, please do so in the smallest amount of stand-alone code possible. If the code you post cannot run by itself on another person&#039;s computer, they will not be able to recreate the issue.&lt;br /&gt;
&lt;br /&gt;
=== Information about Environment ===&lt;br /&gt;
Did you provide any information about your AutoIt Development Environment ? &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
; Version: 1.00. AutoIt: V3.3.8.1&lt;br /&gt;
; Retrieve the recommended information of the current system when posting a support question.&lt;br /&gt;
Local $sSystemInfo = &#039;I have a valid AutoIt support question and kindly provided the details of my system:&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;AutoIt Version: V&#039; &amp;amp; @AutoItVersion &amp;amp; &#039; [&#039; &amp;amp; (@AutoItX64 ?&#039;X64&#039;:&#039;X32&#039;) &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Windows Version: &#039; &amp;amp; @OSVersion &amp;amp; &#039; [&#039; &amp;amp; @OSArch &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Language: &#039; &amp;amp; _GetOSLanguage() &amp;amp; &#039; (&#039; &amp;amp; @OSLang &amp;amp; &#039;)&#039; &amp;amp; @CRLF &amp;amp; @CRLF&lt;br /&gt;
ClipPut($sSystemInfo)&lt;br /&gt;
MsgBox(4096, &#039;This info has been copied to the clipboard. Use Ctrl + V to retrieve it.&#039;, $sSystemInfo)&lt;br /&gt;
&lt;br /&gt;
Func _GetOSLanguage()&lt;br /&gt;
     Local $aString[20] = [19, &amp;quot;0409 0809 0C09 1009 1409 1809 1C09 2009 2409 2809 2C09 3009 3409&amp;quot;, &amp;quot;0404 0804 0C04 1004 0406&amp;quot;, &amp;quot;0406&amp;quot;, &amp;quot;0413 0813&amp;quot;, &amp;quot;0425&amp;quot;, _&lt;br /&gt;
               &amp;quot;040B&amp;quot;, &amp;quot;040C 080C 0C0C 100C 140C 180C&amp;quot;, &amp;quot;0407 0807 0C07 1007 1407&amp;quot;, &amp;quot;040E&amp;quot;, &amp;quot;0410 0810&amp;quot;, _&lt;br /&gt;
               &amp;quot;0411&amp;quot;, &amp;quot;0414 0814&amp;quot;, &amp;quot;0415&amp;quot;, &amp;quot;0416 0816&amp;quot;, &amp;quot;0418&amp;quot;, _&lt;br /&gt;
               &amp;quot;0419&amp;quot;, &amp;quot;081A 0C1A&amp;quot;, &amp;quot;040A 080A 0C0A 100A 140A 180A 1C0A 200A 240A 280A 2C0A 300A 340A 380A 3C0A 400A 440A 480A 4C0A 500A&amp;quot;, &amp;quot;041D 081D&amp;quot;]&lt;br /&gt;
     Local $aLanguage[20] = [19, &amp;quot;English&amp;quot;, &amp;quot;Chinese&amp;quot;, &amp;quot;Danish&amp;quot;, &amp;quot;Dutch&amp;quot;, &amp;quot;Estonian&amp;quot;, &amp;quot;Finnish&amp;quot;, &amp;quot;French&amp;quot;, &amp;quot;German&amp;quot;, &amp;quot;Hungarian&amp;quot;, &amp;quot;Italian&amp;quot;, _&lt;br /&gt;
               &amp;quot;Japanese&amp;quot;, &amp;quot;Norwegian&amp;quot;, &amp;quot;Polish&amp;quot;, &amp;quot;Portuguese&amp;quot;, &amp;quot;Romanian&amp;quot;, &amp;quot;Russian&amp;quot;, &amp;quot;Serbian&amp;quot;, &amp;quot;Spanish&amp;quot;, &amp;quot;Swedish&amp;quot;]&lt;br /&gt;
     For $i = 1 To $aString[0]&lt;br /&gt;
          If StringInStr($aString[$i], @OSLang) Then&lt;br /&gt;
               Return $aLanguage[$i]&lt;br /&gt;
          EndIf&lt;br /&gt;
     Next&lt;br /&gt;
     Return $aLanguage[1]&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetOSLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Speak English and speak it right ===&lt;br /&gt;
Did you use proper English? Here are guidelines for posting properly in the English language:&lt;br /&gt;
* Use proper case.  THIS IS CONSIDERED YELLING. If you post in ALL UPPERCASE or all lowercase then you will not be taken seriously.&lt;br /&gt;
* Use proper punctuation. Complete sentences need only one trailing punctuation mark. Twelve exclamation points after every sentence &amp;lt;b&amp;gt;will not&amp;lt;/b&amp;gt; get you an answer more quickly (just the opposite) Writing a sentence without simple punctuation such as commas reflects badly on your attention to detail, and is considered a good judge of the poster&#039;s coding style. If you cannot summon the intellect to write a sentence with correct punctuation, you will most likely miss simple coding mistakes such as unterminated quotes.&lt;br /&gt;
&lt;br /&gt;
=== Breaking forum rules, law, modesty, or common sense ===&lt;br /&gt;
Show common sense by following the forum rules, http://www.autoitscript.com/forum/topic/169097-forum-rules/, as well as generally accepted forum etiquette. Repeated failure to do so will result in sanctions by the Moderation team as it ruins the experience for everyone.&lt;br /&gt;
&lt;br /&gt;
==Why does the Ctrl key get stuck down after I run my script?==&lt;br /&gt;
&lt;br /&gt;
=== Keys virtually stuck ===&lt;br /&gt;
It could equally be the Shift or the Alt key.&lt;br /&gt;
&lt;br /&gt;
If you use Send in a script and you have a problem with keys being stuck down then Send is the most likely culprit. A similar problem can occur with BlockInput. The solution is generally quite simple. If there is a key like Shift or Alt held down at the start of the Send sequence, but that key is released by the time the Send sequence finishes then the key will get &#039;stuck&#039; down. As an example of a solution, you could replace the Send function in your script with the _SendEx function below.&lt;br /&gt;
&lt;br /&gt;
The _SendEx function waits for the Shift, Alt and Ctrl keys to be released or pops up a warning if the $warn parameter is not an empty string. Therefore it is not intended to be used when one of these modifier keys has been set to be down using any combination of {ALTDOWN}, {SHIFTDOWN} and {ALTDOWN}.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt; Misc.au3 &amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
;Send the string $ss after the Shift Alt and Ctrl keys are released. Optionally give a warning after 1 sec if any of those keys are still down.&lt;br /&gt;
;Requires misc.au3 to be included in the script for the _IsPressed function.&lt;br /&gt;
&lt;br /&gt;
Func _SendEx($ss, $warn = &amp;quot;&amp;quot;)&lt;br /&gt;
	Local $iT = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	While _IsPressed(&amp;quot;10&amp;quot;) Or _IsPressed(&amp;quot;11&amp;quot;) Or _IsPressed(&amp;quot;12&amp;quot;)&lt;br /&gt;
		If $warn &amp;lt;&amp;gt; &amp;quot;&amp;quot; And TimerDiff($iT) &amp;gt; 1000 Then&lt;br /&gt;
			MsgBox($MB_TOPMOST, &amp;quot;Warning&amp;quot;, $warn)&lt;br /&gt;
		EndIf&lt;br /&gt;
		Sleep(50)&lt;br /&gt;
	WEnd&lt;br /&gt;
	Send($ss)&lt;br /&gt;
EndFunc;==&amp;gt;_SendEx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General unstuck method ===&lt;br /&gt;
Shilbiz also discovered that the following can &#039;clear&#039; locked down keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt; ControlSend(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;text&amp;quot;, 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use Pixel functions?==&lt;br /&gt;
&lt;br /&gt;
=== Using a color change as an event ===&lt;br /&gt;
The following is an example of using the pixel to check if the colour has changed in a specific region.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $PixelCheck = 0, $NewCheck&lt;br /&gt;
$PixelCheck = PixelCheckSum(40, 50, 60, 70); Get the checksum for this area.&lt;br /&gt;
While 1; Keep going&lt;br /&gt;
	$NewCheck = PixelCheckSum(40, 50, 60, 70)&lt;br /&gt;
	If $PixelCheck &amp;lt;&amp;gt; $NewCheck Then&lt;br /&gt;
		; The old pixel checksum and the new one are different.&lt;br /&gt;
		$PixelCheck = $NewCheck; Update the $PixelCheck to the new value&lt;br /&gt;
		; Let us know it has changed.  Change this to what you want to happen when the colour in the region changes.&lt;br /&gt;
		Msgbox($MB_ICONWARNING,&amp;quot;PixelChecksum&amp;quot;,&amp;quot;Pixel region has changed !&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(50); Just to give the CPU a bit of a break.&lt;br /&gt;
Wend&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Searching for a specific pixel color ===&lt;br /&gt;
This is an example of searching for a specific pixel (red), both pure red (0xFF0000) and red in a few different shades.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
; Find a pure red pixel in the range 0,0-20,300&lt;br /&gt;
&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Find a pure red pixel or a red pixel within 10 shades variations of pure red&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my script work on a locked workstation?==&lt;br /&gt;
On a locked station any window will never be active (active is only dialog with text &amp;quot;Press Ctrl+Alt+Del&amp;quot;).  In Windows locked state applications run hidden (behind that visible dialog) and do not have focus and active status.  So generally don&#039;t use Send() MouseClick() WinActivate() WinWaitActive() WinActive() etc.  Instead use ControlSend() ControlSetText() ControlClick() WinWait() WinExists() WinMenuSelectItem() etc.  Doing so allows you to interact with an application regardless of whether it is active or not. It&#039;s possible to run such a script from scheduler on locked Windows stations.&lt;br /&gt;
&lt;br /&gt;
==Where can I learn AutoIt? Are there any tutorials?==&lt;br /&gt;
AutoIt is a constantly growing and evolving language with a diverse and engaged community of volunteers. This wiki, along with the official forum, will always be your best place for answers to questions as well as examples and tutorials. With this in mind, below are a few resources that can also help you as you become familiar with the language:&lt;br /&gt;
&lt;br /&gt;
AutoIt 1-2-3, an interactive classroom by Valuater:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=21048 http://www.autoitscript.com/forum/index.php?showtopic=21048]&lt;br /&gt;
&lt;br /&gt;
BrettF&#039;s updated AutoIt tutorial:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=84960 http://www.autoitscript.com/forum/index.php?showtopic=84960]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Learn To Program Using FREE Tools with AutoIt&amp;quot; PDF Book by Jfish&lt;br /&gt;
[https://www.autoitscript.com/forum/files/file/351-learn-to-program-using-free-tools-with-autoit/ Learn To Program Using FREE Tools with AutoIt]&lt;br /&gt;
&lt;br /&gt;
YouTube has a number of videos available:&lt;br /&gt;
[http://www.youtube.com/results?search_query=autoit+tutorial&amp;amp;search_type=&amp;amp;aq=0&amp;amp;oq=AutoIt YouTube AutoIt tutorials list]&lt;br /&gt;
&lt;br /&gt;
As always, when asking questions about a video or script you saw on an external source, please ensure you are adhering to the [[FAQ#Breaking_forum_rules.2C_law.2C_modesty.2C_or_common_Sense|forum rules]].&lt;br /&gt;
&lt;br /&gt;
==Why does my script no longer decompile?==&lt;br /&gt;
Decompilation is no longer supported, and is only available for the older versions of AutoIt (Version 3.2.5.1 and earlier compiled scripts).&lt;br /&gt;
&lt;br /&gt;
Please &#039;&#039;&#039;do not&#039;&#039;&#039; post on this topic; see the [[Decompiling FAQ]] for more information. Topics discussing decompilation of scripts will be locked immediately. Posting the source of a decompiled script with lead to immediate sanctions from the Moderation team, as it directly violates AutoIt EULA (End-User-License-Agreement).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt;You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.&amp;lt;/i&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I get a window handle when all I have is a PID?==&lt;br /&gt;
Refer to the following example showing converting and use when manipulating the window. The function is based on work by Smoke_N/Hubertus and Helge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Run process&lt;br /&gt;
$iPID = Run(&amp;quot;Notepad.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;Allow window to initialize...&lt;br /&gt;
Sleep (500)&lt;br /&gt;
&lt;br /&gt;
;Get HWND.&lt;br /&gt;
$hWnd = _GetHwndFromPID($iPID)&lt;br /&gt;
&lt;br /&gt;
;Maximize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MAXIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Minimize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MINIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Restore window&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_RESTORE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Move top left corner of screen, and resize to 800x600&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, 0, 0, 800, 600)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Calculate Center of screen.&lt;br /&gt;
$x = (@DesktopWidth / 2) - 400; Desktop width divided by 2, then minus half the width of the window&lt;br /&gt;
$y = (@DesktopHeight / 2) - 300; Desktop height divided by 2, then minus half the height of the window&lt;br /&gt;
&lt;br /&gt;
;Move to center of screen&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, $x, $y)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Close notepad&lt;br /&gt;
WinClose($hWnd)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Function for getting HWND from PID&lt;br /&gt;
Func _GetHwndFromPID($PID)&lt;br /&gt;
	$hWnd = 0&lt;br /&gt;
	$winlist = WinList()&lt;br /&gt;
	Do&lt;br /&gt;
		For $i = 1 To $winlist[0][0]&lt;br /&gt;
			If $winlist[$i][0] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$iPID2 = WinGetProcess($winlist[$i][1])&lt;br /&gt;
				If $iPID2 = $PID Then&lt;br /&gt;
					$hWnd = $winlist[$i][1]&lt;br /&gt;
					ExitLoop&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	Until $hWnd &amp;lt;&amp;gt; 0&lt;br /&gt;
	Return $hWnd&lt;br /&gt;
EndFunc;==&amp;gt;_GetHwndFromPID&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use single or double quotes in strings?==&lt;br /&gt;
It is a fairly simple concept once you get the basics down.  Basically there are a few different ways to go about mixing quotes in strings.&lt;br /&gt;
&lt;br /&gt;
A string in AutoIt can be encased in either single(&#039;) or double (&amp;quot;) quotes.  So if you want to add only one type of quote into your string, your first port of call is to use the other type of quote to encase the string.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &amp;quot;I am a &#039;quote&#039; inside the string&amp;quot;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&lt;br /&gt;
$var = &#039;I wish I could be a &amp;quot;quote&amp;quot; inside the string!&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have to have both types of quotes in the string, the easiest way is to escape the quote ending the string as so to speak.  To do this, use two quotes instead of one.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &#039;I am a single &#039;&#039;quote&#039;&#039; inside the string made using &amp;quot;single quote!&amp;quot;&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==When should I bump my threads?==&lt;br /&gt;
As a courtesy to other users you should only bump your post once in a 24 hour period.  Doing this allows all users the chance to get helped equally.  Also refer to [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;view=findpost&amp;amp;p=688050 Why isn&#039;t my thread getting any replies?], as this will help you get replies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I protect my code from decompilation?==&lt;br /&gt;
The fact of the matter is &#039;&#039;&#039;you can&#039;t fully protect your code&#039;&#039;&#039;.  AutoIt is an  interpreted language, so all scripts are interpreted, and that script has to get stored somewhere.  There is still hope though.  You can take certain measures to make the decompiled code less usable to the person that decompiled it.  The first step is to obfuscate your code.  This causes the code to become less readable.  Basically variables and functions are renamed, making it very hard to make head or tail of what is what.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Decompiling FAQ]] for more information.&lt;br /&gt;
&lt;br /&gt;
==How can I decompile my AutoIt EXEs?==&lt;br /&gt;
You cannot decompile your AutoIt compiled scripts unless it was compiled with AutoIt 3.2.5.1 or earlier.&lt;br /&gt;
&lt;br /&gt;
In order to be able to recover your script from the compiled executable, you can use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Original Author SmokeN&lt;br /&gt;
If $CMDLINE[0] Then&lt;br /&gt;
	If $CMDLINE[1] == &amp;quot;/SOURCE&amp;quot; AND $CMDLINE[2] == &amp;quot;MYPASSWORD&amp;quot; Then&lt;br /&gt;
		FileInstall(&amp;quot;ThisSCript.au3&amp;quot;, @ScriptDir &amp;amp; &amp;quot;\DecompiledScript.au3&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then if you run the compiled script with the following command line parameters your source will be extracted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;myscript.exe /SOURCE MYPASSWORD&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What is proper forum etiquette?  What rules are there for the forum?==&lt;br /&gt;
Proper forum etiquette will ensure you will stay a member of these forums.  So try to follow these rules.  Also see this [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;st=15&amp;amp;p=688050&amp;amp;#entry688050 FAQ post], as you should follow what is outlined there as well.&lt;br /&gt;
&lt;br /&gt;
* Use proper English.  MSN speak and the like makes it very hard to understand what you want.  Keep posts in proper case because UPPERCASE is considered yelling and lowercase makes you look stupid.  Don&#039;t use more punctuation marks than necessary. For example ?!!!? and ????? is completely unnecessary.&lt;br /&gt;
* Before posting help with a script, make sure you follow these steps:&lt;br /&gt;
*# Search for your issue.&lt;br /&gt;
*#* There are many thousands of posts on this forum, and chances are your question has been asked before.  Make sure to use a variety of terms to maximize your results.&lt;br /&gt;
*# Read the helpfile&lt;br /&gt;
*#* Most if not all things in the help file will have an example (native functions) or two.  Give them a go to try see how the functions work.  Most of the time it helps!&lt;br /&gt;
*# Give it a go&lt;br /&gt;
*#* Seriously, if you can&#039;t be bothered to give it a go, then why should we be bothered to help you?  If you feel you can&#039;t do it and you don&#039;t try then how will you ever know?  We always prefer that you give it a go because you can learn from your mistakes and hopefully understand it better.&lt;br /&gt;
*# Post your problem&lt;br /&gt;
*#* Make sure you post in the correct forum.&lt;br /&gt;
*#** &amp;lt;b&amp;gt;AutoIt Specific&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/2-autoit-general-help-and-support/ General Help and Support] (Most support questions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/10-autoit-gui-help-and-support/ GUI Support] (Support for the Graphical User Interface)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/14-autoitx-help-and-support/ AutoItX Support] (Support for the COM, DLL, PowerShell and .NET add-ons for AutoIt)&lt;br /&gt;
*#** &amp;lt;b&amp;gt;Non-AutoIt&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** Chat&lt;br /&gt;
*#*** Developer Chat&lt;br /&gt;
*#* Include a detailed description in the content of the post, and a detailed title&lt;br /&gt;
*#** Titles such as &#039;Help&#039; and &#039;What&#039;s wrong?&#039; are not acceptable.  To get the most help with your problem, be as descriptive as you can in the title, but keep in mind your title cannot be too long.&lt;br /&gt;
*#** Make sure you also include a descriptive question.  Just saying &#039;what is wrong with the following&#039; is also not acceptable, as we will have no idea what the problem is.  Describe what you think is wrong and what is not working.  It makes our job easier.&lt;br /&gt;
*#* Always include your code&lt;br /&gt;
*#** It shows us that you have tried and gives us a head start with something to play with.&lt;br /&gt;
* Usually asking for a script is not taken too well, within reason.  Keep in mind that this is a support forum, so please acknowledge that. We are here to help you with your scripts, not to spoon-feed code to you.  If you do need something written for you, maybe try  [http://www.rentacoder.com/ RentACoder], as they are more suited to requests.&lt;br /&gt;
* Don&#039;t PM other members asking for them to look at threads of to help you unless they request it.  It is actually quite rude and annoying to receive PMs of that nature.&lt;br /&gt;
* Lurk a little before you dive right in. Read a number of posts, or check out the group&#039;s archives. Get a feel for the tone of the forum so you can participate accordingly.&lt;br /&gt;
* Say online exactly what you would say in person. In other words, if you wouldn&#039;t say it to the person&#039;s face in front of your Grandmother, you shouldn&#039;t type it here.&lt;br /&gt;
* Remember your face doesn&#039;t show. Words alone can convey sentiment, but without benefit of inflection or facial expression, they can be misconstrued. Use descriptive wording, emoticons or .gifs to ensure your meaning is clear. By the same token, don&#039;t jump to conclusions about another person&#039;s intent in posting an unclear comment. When in doubt, ask for clarification.&lt;br /&gt;
* Be respectful. Internet etiquette is similar to standard etiquette in this area. Appreciate that your opinion is one of many. You can disagree with another person without being disrespectful or rude to other people.&lt;br /&gt;
* Ignore Trolls. If you engage in conversation with one, you&#039;ll raise your blood pressure and empower the troll. You can&#039;t win a flame war, and you can&#039;t sway a troll&#039;s opinion. Often, they don&#039;t even care about the subject.  They live for the conflict and nothing more. Trolls are common and not worthy of your time. Ignore their posts no matter how inflammatory and eventually they&#039;ll get bored and move on.&lt;br /&gt;
* When you have found an answer for your question:&lt;br /&gt;
*# Do not edit your post to be blank or to have worthless information.  People may be searching for the same issue you have, so be courteous to them by leaving your question there.&lt;br /&gt;
*# It is also optional to add the word [SOLVED] into the title, as well as selecting the post that best answered your question. It can make the lives of people searching easier.&lt;br /&gt;
* Finally follow the rules:&lt;br /&gt;
** [http://www.autoitscript.com/forum/topic/169097-forum-rules/ Forum rules]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=54168 Rules for the Chat forum]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=65889 Rules for asking for source code]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=37739 General policies and forum settings]&lt;br /&gt;
&lt;br /&gt;
Some general points taken from [http://www.ehow.com/how_2106033_use-proper-forum-etiquette.html here].&lt;br /&gt;
&lt;br /&gt;
==Are there forums available in my local language?==&lt;br /&gt;
Yes there are some available.  Some forum members here participate in multiple forums.&lt;br /&gt;
* [http://www.autoit.de/ German Forums]&lt;br /&gt;
* [http://www.autoit.fr/  French Forums]&lt;br /&gt;
* [http://www.autoit.es/ Spanish Forums]&lt;br /&gt;
* [http://autoit-script.ru/ Russian Forums]&lt;br /&gt;
* [http://forum.autoitbrasil.com/ Portuguese Forums]&lt;br /&gt;
&lt;br /&gt;
Please note that these are independent, community-run message boards and not just a translation of this board.&lt;br /&gt;
&lt;br /&gt;
==How can I control (click, edit etc) an external (html) application?==&lt;br /&gt;
You can use the control* functions of autoit see helpfile&lt;br /&gt;
of use specific udf libraries&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ IUIAutomation for multiple applications]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/154439-chrome-udf/ chrome chrome.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/149526-librariesieau3/ Internet explorer ie.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ firefox ff.au3] (End of life)&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy/ java]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?&amp;amp;q=Selenium Selenium]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/191990-webdriver-udf-w3c-compliant-version/ WebDriver UDF (IE, Chrome, FireFox)]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should use spy applications to identify objects like&lt;br /&gt;
* au3inf part of AutoIT&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ simplespy in the zip]&lt;br /&gt;
* jabsimplespy in examples section of the AutoIt forum&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/126716-control-viewer-autoit-window-info-tool/ control viewer]&lt;br /&gt;
* inspect as part of windows SDK&lt;br /&gt;
* VisualUIAVerifyNative.exe as part of windows SDK (8.1)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If above spy tools are not identifying your object you could try commercial tools (trials) like&lt;br /&gt;
* ranorex spy&lt;br /&gt;
* Testcomplete&lt;br /&gt;
* HP UFT&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And your last recognition can be bitmaps&lt;br /&gt;
* search for GDI&lt;br /&gt;
* search for findBMP&lt;br /&gt;
* search for imagesearch&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt support database connections, such as SQL?==&lt;br /&gt;
Yes! UDFs exist for several popular SQL solutions, including SQLite, Firebird, MySQL, MSSQL and ODBC connections for PostGreSQL and others.&lt;br /&gt;
&lt;br /&gt;
For an illustrative list, see this link:&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/wiki/User_Defined_Functions#Files.2C_Databases_and_web_connections Files, Databases and web connections]&lt;br /&gt;
&lt;br /&gt;
A DBF UDF also exists&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/145142-dbf-udf-dbase-database-read-and-write-with-dll/ DBF UDF dBase with DLL]&lt;br /&gt;
&lt;br /&gt;
==How can I include some files into my compiled Autoit&#039;s EXE?==&lt;br /&gt;
Use FileInstall() or ResourcesEx UDF from the forum Examples.  Additional resources can also be included at compile time, click the &amp;quot;Res Add Files&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
==How can I test if checkbox / radiobutton is checked?==&lt;br /&gt;
Use this small function: If IsChecked($checkbox1) Then ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Zedna&lt;br /&gt;
Func IsChecked($control)&lt;br /&gt;
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED&lt;br /&gt;
EndFunc   ;==&amp;gt;IsChecked&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use the {enter} key as a Tab?==&lt;br /&gt;
Use &lt;br /&gt;
[https://www.autoitscript.com/autoit3/docs/functions/GUISetAccelerators.htm Accelerator keys]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; by Melba23&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
&lt;br /&gt;
$cInput_1 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 10, 200, 20)&lt;br /&gt;
$cInput_2 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 50, 200, 20)&lt;br /&gt;
$cInput_3 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 90, 200, 20)&lt;br /&gt;
&lt;br /&gt;
$cButton_1 = GUICtrlCreateButton(&amp;quot;Button 1&amp;quot;, 250, 10, 80, 30)&lt;br /&gt;
$cButton_2 = GUICtrlCreateButton(&amp;quot;Button 2&amp;quot;, 250, 50, 80, 30)&lt;br /&gt;
$cButton_3 = GUICtrlCreateButton(&amp;quot;Button 3&amp;quot;, 250, 90, 80, 30)&lt;br /&gt;
&lt;br /&gt;
$cEnter = GUICtrlCreateDummy()&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Local $aAccelKeys[2][2] = [[&amp;quot;{ENTER}&amp;quot;, $cEnter], [&amp;quot;{TAB}&amp;quot;, $cEnter]] ; Make {TAB} an accelerator&lt;br /&gt;
GUISetAccelerators($aAccelKeys)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $cEnter&lt;br /&gt;
			Switch _WinAPI_GetFocus()&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_1)&lt;br /&gt;
					; Check the input content&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						; Correct so move to next input&lt;br /&gt;
						GUICtrlSetState($cInput_2, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
					; Not correct so stay in current input&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_2)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						GUICtrlSetState($cInput_3, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_3)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						ConsoleWrite(&amp;quot;End&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case Else&lt;br /&gt;
					GUISetAccelerators(0) ; Remove accelerator link&lt;br /&gt;
					ControlSend($hGUI, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;{TAB}&amp;quot;) ; Send {TAB} to the GUI&lt;br /&gt;
					GUISetAccelerators($aAccelKeys) ; Reset the accelerator&lt;br /&gt;
&lt;br /&gt;
			EndSwitch&lt;br /&gt;
	EndSwitch&lt;br /&gt;
&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func checkEntry()&lt;br /&gt;
&lt;br /&gt;
	; Random chance of correct answer or fail&lt;br /&gt;
	If Mod(@SEC, 2) = 0 Then&lt;br /&gt;
		MsgBox($MB_SYSTEMMODAL, &amp;quot;Test Fail&amp;quot;, &amp;quot;Press Enter to close this message box&amp;quot;)&lt;br /&gt;
		Return False&lt;br /&gt;
	EndIf&lt;br /&gt;
	Return True&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;checkEntry&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why are my number sort results wrong?==&lt;br /&gt;
AutoIt by default uses an alpha sort algorithm. This means that ABC is sorted correctly, but it sorts numbers as 1,10,2,22,3,31 where the user expects 1,2,3,10,22,31.&lt;br /&gt;
This can be remedied by using a custom sort function. An example of such a custom number sort by Valuater appears below.  Search the Forum for [https://www.autoitscript.com/forum/topic/95383-sorting-numbers/ Number Sort] and [https://www.autoitscript.com/forum/topic/83626-natural-order-string-comparison/ Natural Order String Comparison] &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Valuater&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$Array = StringSplit(&amp;quot;2,5,3,4,6,1,8,9,7&amp;quot;, &amp;quot;,&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
_ArraySortNum($Array)&lt;br /&gt;
&lt;br /&gt;
_ArrayDisplay($Array, &amp;quot;Sorted Array&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Func _ArraySortNum(ByRef $n_array, $i_descending = 0, $i_start = 1)&lt;br /&gt;
	Local $i_ub = UBound($n_array)&lt;br /&gt;
	For $i_count = $i_start To $i_ub - 2&lt;br /&gt;
		Local $i_se = $i_count&lt;br /&gt;
		If $i_descending Then&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;lt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;gt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
		Local $i_hld = $n_array[$i_count]&lt;br /&gt;
		$n_array[$i_count] = $n_array[$i_se]&lt;br /&gt;
		$n_array[$i_se] = $i_hld&lt;br /&gt;
	Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_ArraySortNum&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I include AutoIt functions in a C# / C++ / VB programme? AutoItX==&lt;br /&gt;
AutoIt is also supplied as 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;
[https://www.autoitscript.com/site/autoit/ Info on AutoItX] &lt;br /&gt;
&lt;br /&gt;
From AutoItX.chm:&lt;br /&gt;
AutoItX is a DLL version of AutoIt v3 that provides a subset of the features of AutoIt via an ActiveX/COM and DLL interface. This means that you can add AutoIt-like features to your favourite scripting and programming languages, e.g. VB, VBScript, Delphi, C, C++, Kixtart, and most other languages that support the use of DLLs.&lt;br /&gt;
&lt;br /&gt;
Here are some C++ source code samples from various projects by [https://www.autoitscript.com/forum/profile/1-jon/ Jon]. Most are free to use but check any license files that accompany the downloads for details.  All code was created in Microsoft Visual C (6 and 7) but most would probably compile under mingw32 as well.&lt;br /&gt;
[https://www.autoitscript.com/site/code/ Download C++ examples for AutoItX] &lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to regsvr it if you are using the c# library. The c# library uses the non-COM part of the DLL so it just needs to be in the same folder as the exe and add the assembly.dll to your project. From the documenation:&lt;br /&gt;
&lt;br /&gt;
Using the Assembly from VB/C# within in Visual Studio is very easy:&lt;br /&gt;
* Add a reference to AutoItX3.Assembly.dll to your project&lt;br /&gt;
* Add a using AutoIt; statement in the files you want to use AutoIt functions&lt;br /&gt;
* Distribute your final executable with the files AutoItX3.Assembly.dll, AutoItX3.dll, AutoItX3_x64.dll.&lt;br /&gt;
* Write code like this C# example:&lt;br /&gt;
    using AutoIt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Jon&lt;br /&gt;
   // Wow, this is C#!&lt;br /&gt;
    AutoItX.Run(&amp;quot;notepad.exe&amp;quot;);&lt;br /&gt;
    AutoItX.WinWaitActive(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.Send(&amp;quot;I&#039;m in notepad&amp;quot;);&lt;br /&gt;
    IntPtr winHandle = AutoItX.WinGetHandle(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.WinKill(winHandle);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the AutoItX Help File (included in the default AutoIt install):&lt;br /&gt;
AutoItX can be used as a standard DLL from any language capable of calling functions in external DLLs.&lt;br /&gt;
&lt;br /&gt;
The following files are provided to allow you to use the DLL in C++:&lt;br /&gt;
&lt;br /&gt;
* AutoItX3_DLL.h - C language header file showing the exported functions and parameters&lt;br /&gt;
* AutoItX3_DLL.lib - Microsoft format import library (x86)&lt;br /&gt;
* AutoItX3_x64_DLL.lib - Microsoft format import library (x64)&lt;br /&gt;
* AutoItX3.dll - The main AutoItX DLL (x86)&lt;br /&gt;
* AutoItX3_x64.dll - The main AutoItX DLL (x64)&lt;br /&gt;
&lt;br /&gt;
==How can I search an image in another image? ==&lt;br /&gt;
You can use the Pixel* functions of AutoIt. See the help file for more information and examples.&lt;br /&gt;
You can also use one of the UDFs below; most of which use GDI:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/158264-bmpsearch-search-for-bitmap-within-bitmap-assembly-version/ FASM example]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/140478-bitmap-processing-using-raw-code/ asm bitmap processing]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/66545-find-bmp-in-another-bmp-imagesearch/ find bitmap in bitmap]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?type=all&amp;amp;q=_GDIPlus_BitmapLockBits/ GDI bitmaps]&lt;br /&gt;
Other libraries can be found that make use of a specific external dll but those above are considered &amp;quot;native&amp;quot; as no external dlls are required.&lt;br /&gt;
&lt;br /&gt;
==Multithreading==&lt;br /&gt;
Multithreading basically is running multiple scripts/programs that have acces to the same variables, normally by sharing memory. &lt;br /&gt;
&lt;br /&gt;
The AutoIt language is not threadsafe and multithreading is firmly on the &amp;lt;b&amp;gt;NOT TO DO&amp;lt;/b&amp;gt; list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multitasking and Multi&amp;lt;i&amp;gt;processing&amp;lt;/i&amp;gt; are closely related, however, and multiple solutions have been explored:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25350-multithread/ Multithread technical discussion]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25494-threaded-dll-sample/ Multithread with external DLL]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/146794-multi-thread-autoit/ Multithread with external DLL 2]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/64390-how-to-multi-process-in-autoit/ Multi process]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/187334-using-net-libary-with-autoit-possible/ Using C# - Host .NET]&lt;br /&gt;
&lt;br /&gt;
==Test automation==&lt;br /&gt;
Many people are looking for freeware tools to do test automation and cannot afford the commercial tools like HP LeanFT, Ranorex, Squish etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
So how can AutoIt help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Out of the box install the base full zip package and start Scite.Exe as a simple IDE.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to do more these links will help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 31 for the basic stuff on which technologies are readable and which spying tools there are&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 38 for the bitmap stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/ Alternative project IDE]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/188158-net-common-language-runtime-clr-framework/ .NET stuff]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/84133-winhttp-functions/ WinHTTP]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/185401-restwhich-udf-to-use-webdriver-of-edge/ webdriver]&lt;br /&gt;
Android can be reached thru ADB and Webdriver&amp;lt;br /&amp;gt;&lt;br /&gt;
iOS is limited to normal webdriver stuff thru WinHTTP library. So most likely you have to install additional iOS webdriver solutions&amp;lt;br /&amp;gt;&lt;br /&gt;
And after reading FAQ just ask your questions in the support forum&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DPI Awareness==&lt;br /&gt;
The following few links are related to DPI Awareness :&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166479-writing-dpi-awareness-app-workaround/ Writing DPI Awareness App - workaround]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/182423-wrong-screen-resolution-displayed-by-autoit-macros/ Wrong Screen Resolution Displayed by Autoit Macros]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/192529-dpi-awareness-any-suggestion/ DPI Awareness - question]&lt;br /&gt;
&lt;br /&gt;
==AutoIt+SciTE Portable Developer Environment==&lt;br /&gt;
Recent discussion can be found here:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/119572-autoit3-portable/?do=findComment&amp;amp;comment=1391105 How to make AutoIt+SciTE portable ]&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt have an agreed set of good practices ?==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146866 Forum disscusion on good coding practices in AutoIt] &lt;br /&gt;
Wiki related resources:&lt;br /&gt;
https://www.autoitscript.com/wiki/Best_coding_practices&lt;br /&gt;
https://www.autoitscript.com/wiki/Variables_-_using_Global,_Local,_Static_and_ByRef&lt;br /&gt;
https://www.autoitscript.com/wiki/UDF-spec&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13857</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13857"/>
		<updated>2018-10-21T21:53:59Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Using more code to check @error value */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of frequently asked questions asked on the forums.&lt;br /&gt;
&lt;br /&gt;
Other FAQs include:&lt;br /&gt;
* The one found in the [http://www.autoitscript.com/autoit3/docs/faq.htm AutoIt HelpFile].  Much of it is about the transition from V2 to V3, but most is still relevant and should be a port of call, as well as this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I debug my script?==&lt;br /&gt;
&lt;br /&gt;
=== In SciTE ===&lt;br /&gt;
This one has a myriad of answers, but the most effective is to begin by using the [http://www.autoitscript.com/autoit3/scite/ SciTE4AutoIt3 Editor] to create or edit scripts. This program is useful in debugging for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* Syntax highlighting allows for immediate viewing of any mistakes from unended script tags or quotes. This allows the scripter to visibly see the difference between the following portions of code.&lt;br /&gt;
[[File:FAQ_Q1_2.jpg|center|Incorrect code]]&lt;br /&gt;
And the correct version: &lt;br /&gt;
[[File:FAQ_Q1_3.jpg|center||Correct Code]]&lt;br /&gt;
* Global syntax check built directly into the tools menu allows you to check an entire script for problems all at once.&lt;br /&gt;
* Built-in code tidying program that correctly indents untidy code and repairs messy scripts to allow them to be more readable. It also corrects problems with incorrectly capitalised function names and variables.&lt;br /&gt;
* Per-line trace insertion allows you to log every line of code executed to debug errors.&lt;br /&gt;
* Debug MsgBoxes or ConsoleWrites are able to be added anywhere in the script directly from SciTE. ConsoleWrite lines are less intrusive and prevent the added annoyance to the user of MsgBoxes.&lt;br /&gt;
&lt;br /&gt;
You can also use AutoIt3Wrapper directive:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#AutoIt3Wrapper_Run_Debug_Mode=Y&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FAQ_Q1_4.jpg|center|Picture of SciTE4AutoIt3]]&lt;br /&gt;
&lt;br /&gt;
=== Using more code to check @error value ===&lt;br /&gt;
Nearly all functions will return something.  Most of the time when a function fails, it returns 0 and sets @error.  You can use this information not only to create scripts that handle for different errors but to debug and find out exactly why you are having problems.  Check the help file for specific functions and their return values.&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;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	Local $aFileList = _FileListToArray(@ScriptDir, &#039;NO_EXISTING_FILE.TEST&#039;)&lt;br /&gt;
	If @error Then ; check if _FileListToArray() function return any error&lt;br /&gt;
		MsgBox($MB_ICONERROR, &#039;_FileListToArray&#039;, &#039;@error = &#039; &amp;amp; @error &amp;amp; @CRLF &amp;amp; &#039;@extended = &#039; &amp;amp; @extended) ; show error message&lt;br /&gt;
		Return ; return / exit from function to prevent unexpected further error&#039;s&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	For $iFile_idx = 1 To $aFileList[0]&lt;br /&gt;
		FileRead($aFileList[$iFile_idx])&lt;br /&gt;
		; any further code&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Via the Tray icon===&lt;br /&gt;
You can add this line at the top of your script (1 is on, 0 is off) to enable debugging from the tray icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;AutoItSetOption (&amp;quot;TrayIconDebug&amp;quot;, 1);0-off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then if you run the script (uncompiled as an AU3 file), you can mouse over the AutoIt icon in the system tray (down by the clock) to display debugging information.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_1.jpg|center|Example output for TrayIconDebug]]&lt;br /&gt;
&lt;br /&gt;
=== OutputDebugString native call ===&lt;br /&gt;
You can also debug a script on any computer by adding the following code to your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _MyDebug($sMessage, $iError = @error, $iExtended = @extended)&lt;br /&gt;
	If $iError Or $iExtended Then&lt;br /&gt;
		$sMessage &amp;amp;= &#039;[ @error = &#039; &amp;amp; $iError &amp;amp; &#039; @extended = &#039; &amp;amp; $iExtended &amp;amp; &#039; ]&#039;&lt;br /&gt;
	EndIf&lt;br /&gt;
	DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;OutputDebugString&amp;quot;, &amp;quot;str&amp;quot;, $sMessage)&lt;br /&gt;
	Return SetError($iError, $iExtended, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyDebug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then, when you need to add a debug line, call it as necessary. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;_MyDebug(&amp;quot;The value of Variable 1 at this time is &amp;quot; &amp;amp; $var1)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This debugging is completely transparent to the user, and is only viewable with a program such as DebugView from SysInternals. This method of debugging has the added advantage of being available to the developer in situations where is not acceptable or feasable to install SciTE on a client&#039;s unit.&lt;br /&gt;
&lt;br /&gt;
=== Graphical debugger ===&lt;br /&gt;
Stumpii created a [http://www.autoitscript.com/forum/index.php?showtopic=21834 Graphical AutoIt Debugger], similar to Dev-C++&#039;s debugging style.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_5.jpg|center|Stumpii&#039;s Graphical AutoIt Debugger]]&lt;br /&gt;
&lt;br /&gt;
=== Another debugger for AutoIt ===&lt;br /&gt;
Heron created a [http://www.autoitscript.com/forum/index.php?showtopic=103142 Another debugger for AutoIt].&lt;br /&gt;
&lt;br /&gt;
The latest version by asdf8 is here:&lt;br /&gt;
https://www.autoitscript.com/forum/topic/103142-another-debugger-for-autoit/?do=findComment&amp;amp;comment=1303208&lt;br /&gt;
&lt;br /&gt;
=== Other UDF to log/trace/script analyze ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
==How can I run something that is not an exe file [.txt, .msi, .pdf,.jpg etc.] [or] How can I open a webpage in the default browser?==&lt;br /&gt;
It was for this reason that the ShellExecute function was created. Here is one example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;edit&amp;quot;, @SW_MAXIMIZE)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also specify a web address this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;http://www.autoitscript.com/forum&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;open&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you normally are able to right-click the file and select print, then you can also print the file from AutoIt using this function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\boot.ini&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;print&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to open the file with the default program, you can do as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish your script to wait until the process is finished, you can use the ShellExecuteWait function with the same parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The default verb is the verb configured in the registry. If no verb is set as default in the registry then the &amp;quot;open&amp;quot; verb is used. If the &amp;quot;open&amp;quot; verb is not present then the first verb listed in the registry is used.&lt;br /&gt;
&lt;br /&gt;
==How can I prevent more than one copy of my script from running at once, or detect another copy of my script running?==&lt;br /&gt;
&lt;br /&gt;
=== _Singleton function ===&lt;br /&gt;
There are a few different ways to go about this. You can use a function called _Singleton to detect multiple instances of your script. An example of how to use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
_Singleton(&amp;quot;TheNameOfMyScript&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this instance, the script will bring up some messages explaining to the user of the occurring events. &lt;br /&gt;
This example will show you how the above function can be used in a real world application.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _Singleton(&amp;quot;MyScriptName&amp;quot;, 1) = 0 Then&lt;br /&gt;
    ; If successful, running our script a second time should cause us to fall through here&lt;br /&gt;
    MsgBox($MB_ICONERROR, &amp;quot;User Generated Error Message&amp;quot;, &amp;quot;Error: This script is already running!&amp;quot;)&lt;br /&gt;
Else&lt;br /&gt;
    ; We have detected that we are the only instance running, now we will run a second instance to display _Singleton&#039;s function!&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We are the first instance of this script, press OK to run another instance and trigger the error message!&amp;quot;)&lt;br /&gt;
    Switch @Compiled&lt;br /&gt;
        Case 1&lt;br /&gt;
            Run(FileGetShortName(@ScriptFullPath));when running an app, it&#039;s usually better to use its short name&lt;br /&gt;
        Case 0&lt;br /&gt;
            Run(FileGetShortName(@AutoItExe) &amp;amp; &#039; /AutoIt3ExecuteScript &#039; &amp;amp; FileGetShortName(@ScriptFullPath))&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We ran a second instance, you should have recieved an error message!&amp;quot;, 5)&lt;br /&gt;
EndIf&lt;br /&gt;
Exit&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_MutexExists function ===&lt;br /&gt;
Another method is to use _MutexExists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _MutexExists(&amp;quot;MydeswswScriptName&amp;quot;) Then&lt;br /&gt;
	; We know the script is already running. Let the user know.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;Script Name&amp;quot;, &amp;quot;This script is already running. Using multiple copies of this script at the same time is unsupported!&amp;quot;)&lt;br /&gt;
	Exit&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
;Function Author- Martin&lt;br /&gt;
Func _MutexExists($sOccurenceName)&lt;br /&gt;
	Local $ERROR_ALREADY_EXISTS = 183, $handle, $lastError&lt;br /&gt;
	$sOccurenceName = StringReplace($sOccurenceName, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;); to avoid error&lt;br /&gt;
	$handle = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;CreateMutex&amp;quot;, &amp;quot;int&amp;quot;, 0, &amp;quot;long&amp;quot;, 1, &amp;quot;str&amp;quot;, $sOccurenceName)&lt;br /&gt;
	$lastError = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetLastError&amp;quot;)&lt;br /&gt;
	Return $lastError[0] = $ERROR_ALREADY_EXISTS&lt;br /&gt;
EndFunc;==&amp;gt;_MutexExists&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I run my script as a service?==&lt;br /&gt;
This is also a question with multiple answers, and none of them are the only way to do it. The first question to ask yourself is whether or not you wish to install the service on other computers besides your own.&lt;br /&gt;
&lt;br /&gt;
=== On your own computer - One time only ===&lt;br /&gt;
The easiest way to do this is to use Pirmasoft RunAsSvc. This program makes services easy to install and easy to remove when necessary.&lt;br /&gt;
&lt;br /&gt;
=== On all computers that run your script===&lt;br /&gt;
To do this you can use SRVANY.EXE and [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3]. You can then use this code to install your script as a service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_CreateService(&amp;quot;&amp;quot;, $servicename, &amp;quot;My AutoIt Script&amp;quot;, &amp;quot;C:\Path_to_\srvany.exe&amp;quot;, &amp;quot;LocalSystem&amp;quot;, &amp;quot;&amp;quot;, 0x110)&lt;br /&gt;
RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\&amp;quot; &amp;amp; $servicename &amp;amp; &amp;quot;\Parameters&amp;quot;, &amp;quot;Application&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the following code to delete this service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_DeleteService(&amp;quot;&amp;quot;, $servicename)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one caveat to setting up AutoIt as a service. If the service is not installed using the above code, it must have the &amp;quot;allow service to interact with the desktop&amp;quot; setting or else automation functions such as Control* or Win* functions will not function. To assure the service does indeed have this setting, use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\[ServiceName]&amp;quot;, &amp;quot;Type&amp;quot;, &amp;quot;REG_DWORD&amp;quot;, 0x110)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I create/start/stop or otherwise control a service?==&lt;br /&gt;
There are two include libraries that are designed specifically to interact with services. These are the following:&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3] made by SumTingWong. Functionality:&lt;br /&gt;
** _StartService()&lt;br /&gt;
** _StopService()&lt;br /&gt;
** _ServiceExists()&lt;br /&gt;
** _ServiceRunning()&lt;br /&gt;
** _CreateService()&lt;br /&gt;
** _DeleteService()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22165 _NTServices.au3] made by CatchFish. Functionality:&lt;br /&gt;
** _ServiceStart()&lt;br /&gt;
** _ServiceStop()&lt;br /&gt;
** _ServiceStatus()&lt;br /&gt;
** _ServicePause()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I display a progress bar while copying files or directories?==&lt;br /&gt;
There are a many different topics on how to do this.  For more, just search the forums for [http://www.autoitscript.com/forum/index.php?act=Search&amp;amp;CODE=show&amp;amp;searchid=22030d4d4effe5e32da23fdb69ed772f&amp;amp;search_in=posts&amp;amp;result_type=topics&amp;amp;highlite=%2BCopy%2B Progress Copy + Progress].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11313 Copy with progress dialog]... By ezztabi&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11888 Yet another copy with progress]... By SumTingWong&lt;br /&gt;
* [http://www.autoit.de/index.php?page=Thread&amp;amp;postID=58875 _MultiFileCopy]... By Oscar (German Forums)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19370&amp;amp;st=45&amp;amp;p=186198&amp;amp;#entry186198 _FileCopy]... By Jos&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q6_1.jpg|center|Copy progress dialog by ezztabi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make a hotkey that only works in my GUI?==&lt;br /&gt;
It used to be quite tedious setting hotkeys to only work in your GUI.  Now there is an easier way with the function GUISetAccelerators.&lt;br /&gt;
&lt;br /&gt;
(From Helpfile example)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; A simple custom messagebox that uses the MessageLoop mode&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Custom Msgbox&amp;quot;, 210, 80)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Please click a button!&amp;quot;, 10, 10)&lt;br /&gt;
$YesID = GUICtrlCreateButton(&amp;quot;Yes&amp;quot;, 10, 50, 50, 20)&lt;br /&gt;
$NoID = GUICtrlCreateButton(&amp;quot;No&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$ExitID = GUICtrlCreateButton(&amp;quot;Exit&amp;quot;, 150, 50, 50, 20)&lt;br /&gt;
&lt;br /&gt;
; Set accelerators for Ctrl+y and Ctrl+n&lt;br /&gt;
Dim $AccelKeys[2][2]=[[&amp;quot;^y&amp;quot;, $YesID], [&amp;quot;^n&amp;quot;, $NoID]]&lt;br /&gt;
GUISetAccelerators($AccelKeys)&lt;br /&gt;
&lt;br /&gt;
GUISetState(); display the GUI&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
	$msg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case $msg = $YesID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		Case $msg = $NoID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;No&amp;quot;)&lt;br /&gt;
		Case $msg = $ExitID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Exit&amp;quot;)&lt;br /&gt;
		Case $msg = $GUI_EVENT_CLOSE&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Close&amp;quot;)&lt;br /&gt;
	EndSelect&lt;br /&gt;
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I perform an action while a key is held down?==&lt;br /&gt;
You can use the _IsPressed() function to determine when a key is held down. The values that can be specified in this function are listed in the AutoIt Help File under User Defined Functions -&amp;gt; Misc Management -&amp;gt; _IsPressed. The following example will press the left mouse button while the k key is held down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
$pressed = 0&lt;br /&gt;
While 1&lt;br /&gt;
	If _IsPressed(&amp;quot;4B&amp;quot;) Then&lt;br /&gt;
		If Not $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;K Key being held down&amp;quot;)&lt;br /&gt;
			MouseDown(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 1&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		If $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;&amp;quot;)&lt;br /&gt;
			MouseUp(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 0&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(250)&lt;br /&gt;
WEnd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I run my script on a remote computer over the network?==&lt;br /&gt;
The answer to this question depends on how much experience you have in networking. If the target system is a Windows system to which you have administrator access then you may use one of the following programs:&lt;br /&gt;
&lt;br /&gt;
* PsExec from SysInternals&lt;br /&gt;
* BeyondExec from BeyondLogic&lt;br /&gt;
&lt;br /&gt;
With either of these programs it is possible to launch any process on a remote system and even copy your script to the target computer before starting it. Neither these programs nor any others will work with Windows XP Home Edition unless you create a custom &amp;quot;command listener&amp;quot; that you manually install on the target system.&lt;br /&gt;
&lt;br /&gt;
NOTE: Those of you with more advanced programming skills and a little imagination can figure out how to use the service control libraries and srvany.exe to do this same thing without either of the above mentioned programs.&lt;br /&gt;
&lt;br /&gt;
==How can I make a User Defined Function with optional parameters like the ones I see in the Help File?==&lt;br /&gt;
You can specify optional parameters by giving them a default value in the Func declaration. An example of how this is done:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Func testme($param1, $param2 = &amp;quot;nothing&amp;quot;, $param3 = 5)&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;&amp;quot;, &amp;quot;Parameter one is required. The value of Parameter 1 is &amp;quot; &amp;amp; $param1 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 2 is optional. The value of Parameter 2 is &amp;quot; &amp;amp; $param2 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 3 is optional. The value of Parameter 3 is &amp;quot; &amp;amp; $param3)&lt;br /&gt;
EndFunc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If testme() is called with only one parameter [I.E. testme(&amp;quot;test&amp;quot;)] then the output is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
However, if the function is called with more than one parameter like this testme(&amp;quot;test&amp;quot;, &amp;quot;something&amp;quot;), then the output is&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is something&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make my script start every time windows starts?==&lt;br /&gt;
You can use one of the following codes to allow your script to start with Windows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&amp;quot;, &amp;quot;MyProgramName&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;FileCreateShortcut(@ScriptFullPath, @StartupCommonDir &amp;amp; &amp;quot;\MyProgramName.lnk&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or place a Shortcut in the Startup folder, or the entire Executable.  For Win8+ systems, use the Win+R keys to open a Run box, then &amp;quot;Shell:Startup&amp;quot; to access the Startup folder. Due to Windows User Account Control (UAC) restrictions, your script may require [https://www.autoitscript.com/autoit3/docs/keywords/RequireAdmin.htm #RequireAdmin].&lt;br /&gt;
&lt;br /&gt;
==How can I have the script delete itself?==&lt;br /&gt;
The following function will delete the running script or .exe once it has finished execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: Make a copy of your script before calling this function!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _SelfDelete($iDelay = 0)&lt;br /&gt;
	Local $sCmdFile&lt;br /&gt;
	FileDelete(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;)&lt;br /&gt;
	$sCmdFile = &#039;ping -n &#039; &amp;amp; $iDelay &amp;amp; &#039; 127.0.0.1 &amp;gt; nul&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;:loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot;&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;if exist &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; goto loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del %0&#039;&lt;br /&gt;
	FileWrite(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, $sCmdFile)&lt;br /&gt;
	Run(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, @TempDir, @SW_HIDE)&lt;br /&gt;
EndFunc;==&amp;gt;_SelfDelete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I create a clickable website hyperlink in my gui?==&lt;br /&gt;
[[File:FAQ_Q13_1.jpg|center|Example GUI using Gary&#039;s UDF.]]&lt;br /&gt;
&lt;br /&gt;
Gary Frost has made great advances in this area and has provided a [http://www.autoitscript.com/forum/index.php?showtopic=23111&amp;amp;st=0 UDF here] (&#039;&#039;&#039;the UDF was removed from the post&#039;&#039;&#039;) to help with doing this.&lt;br /&gt;
&lt;br /&gt;
==How can I change the screen resolution / refresh rate / color depth?==&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=20121 ChangeResolution.au3] is a library function created to make changes to these settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I get the screen resolution in multiple monitor setups?==&lt;br /&gt;
The following code was worked out by Larry to determine the total screen resolution of multiple monitors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$aTSR = _GetTotalScreenResolution()&lt;br /&gt;
MsgBox($MB_OK, &amp;quot;Total Screen Resolution&amp;quot;, &amp;quot;Width = &amp;quot; &amp;amp; $aTSR[0] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Height = &amp;quot; &amp;amp; $aTSR[1])&lt;br /&gt;
&lt;br /&gt;
;Original code by Larry.&lt;br /&gt;
;Edited by BrettF&lt;br /&gt;
Func _GetTotalScreenResolution()&lt;br /&gt;
	Local $aRet[2]&lt;br /&gt;
	Global Const $SM_VIRTUALWIDTH = 78&lt;br /&gt;
	Global Const $SM_VIRTUALHEIGHT = 79&lt;br /&gt;
	$VirtualDesktopWidth = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALWIDTH)&lt;br /&gt;
	$aRet[0] = $VirtualDesktopWidth[0]&lt;br /&gt;
	$VirtualDesktopHeight = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALHEIGHT)&lt;br /&gt;
	$aRet[1] = $VirtualDesktopHeight[0]&lt;br /&gt;
	Return $aRet&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  How can I register a file type with my program [or] How can I make files with a certain extension open in my program?==&lt;br /&gt;
[[File:FAQ_Q16_1.jpg|center|Example of how a file type can be registered.]]&lt;br /&gt;
File registration can be a tricky business for those who have not done it before. The first thing to be done is to modify your script to allow it to accept files from the command line. Here is one example of how to do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;$cmdline[0] is the number of parameters passed&lt;br /&gt;
If $cmdline[0] &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
	$filename = $cmdline[1]&lt;br /&gt;
;Do something with the file here&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;The file name passed to the command line is &amp;quot;&#039; &amp;amp; $filename &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
Else&lt;br /&gt;
; We did not get any command line parameters.&lt;br /&gt;
; If this is a command line only program, you would want to&lt;br /&gt;
; alert the user that the command line parameters were incorrect.&lt;br /&gt;
; If this is a GUI program (like a notepad program), you would&lt;br /&gt;
; want to simply continue from here without opening a file.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;Command line parameters incorrect.&#039; &amp;amp; @CRLF &amp;amp; &#039;Command line usage: &amp;quot;&#039; &amp;amp; @ScriptName &amp;amp; &#039;&amp;quot; &amp;quot;file to process&amp;quot;&#039;)&lt;br /&gt;
 EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After your script is ready to accept files, you can begin to register the file type you need with your program. To prevent errors, this-is-me has created a UDF that will allow you to do this easily:&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to register and unregister a file extension using this UDF:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;quot;FileRegister.au3&amp;quot;&lt;br /&gt;
;================================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileRegister($ext, $cmd, $verb [, $def [, $icon = &amp;quot;&amp;quot; [, $desc = &amp;quot;&amp;quot; ]]])&lt;br /&gt;
;			   Registers a file type in Explorer&lt;br /&gt;
;&lt;br /&gt;
; Parameter(s): $ext -  File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;		$cmd -  Program path with arguments eg. &#039;&amp;quot;C:\test\testprog.exe&amp;quot; &amp;quot;%1&amp;quot;&#039;&lt;br /&gt;
;			 (%1 is 1st argument, %2 is 2nd, etc.)&lt;br /&gt;
;		$verb - Name of action to perform on file&lt;br /&gt;
;			 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;		$def -  Action is the default action for this filetype&lt;br /&gt;
;			 (1 for true 0 for false)&lt;br /&gt;
;			 If the file is not already associated, this will be the default.&lt;br /&gt;
;		$icon - Default icon for filetype including resource # if needed&lt;br /&gt;
;			 eg. &amp;quot;C:\test\testprog.exe,0&amp;quot; or &amp;quot;C:\test\filetype.ico&amp;quot;&lt;br /&gt;
;		$desc - File Description eg. &amp;quot;Zip File&amp;quot; or &amp;quot;ProgramName Document&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;================================================&lt;br /&gt;
&lt;br /&gt;
 FileRegister(&amp;quot;uxy&amp;quot;, &#039;&amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; &amp;quot;%1&amp;quot;&#039;, &amp;quot;Open in UXYFixer&amp;quot;, 1, @ScriptFullPath &amp;amp; &#039;,0&#039;, &amp;quot;UXYFixer Document&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;========================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileUnRegister($ext, $verb)&lt;br /&gt;
;			   UnRegisters a verb for a file type in Explorer&lt;br /&gt;
; Parameter(s):  $ext - File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;			   $verb - Name of file action to remove&lt;br /&gt;
;					 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;========================================&lt;br /&gt;
&lt;br /&gt;
 FileUnRegister(&amp;quot;uxy&amp;quot;, &amp;quot;Open in UXYFixer&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download here:&#039;&#039;&#039;&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=26378 FileRegister.au3]&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my combobox (GUICtrlCreateCombo) show a dropdown list when clicked?==&lt;br /&gt;
When using GUICtrlCreateCombo be sure to enter the desired height for your combobox list in the &amp;quot;height&amp;quot; parameter. Windows XP automatically selects an appropriate height for combo boxes, but other versions of Windows usually do not.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,20)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Would correctly be changed to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,200)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why isn&#039;t my thread getting any replies?==&lt;br /&gt;
&lt;br /&gt;
=== Asking the right question right ===&lt;br /&gt;
Did you give a good description of the problem? If your title or explanation of the issue is not descriptive, users are likely to bypass your issue instead of helping. Post titles such as &amp;quot;Help Me&amp;quot;, &amp;quot;I Have A Problem&amp;quot;, &amp;quot;Question&amp;quot;, &amp;quot;Help me fix my code&amp;quot;, &amp;quot;This code doesn&#039;t work&amp;quot; or similarly worded titles will not readily draw forum users to your post. Experienced users (which are your best hope of resolving the issue) will often skip your post altogether in cases like this. An example of a post title descriptive enough to attract users to assist you is &amp;quot;Problem with WinWaitClose&amp;quot; or &amp;quot;Loop never ends&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Example for reproduction ===&lt;br /&gt;
Did you post example code? If you have not posted an example of the code you are having an issue with, then you will not recieve support. When posting a non-working script, please do so in the smallest amount of stand-alone code possible. If the code you post cannot run by itself on another person&#039;s computer, they will not be able to recreate the issue.&lt;br /&gt;
&lt;br /&gt;
=== Information about Environment ===&lt;br /&gt;
Did you provide any information about your AutoIt Development Environment ? &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
; Version: 1.00. AutoIt: V3.3.8.1&lt;br /&gt;
; Retrieve the recommended information of the current system when posting a support question.&lt;br /&gt;
Local $sSystemInfo = &#039;I have a valid AutoIt support question and kindly provided the details of my system:&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;AutoIt Version: V&#039; &amp;amp; @AutoItVersion &amp;amp; &#039; [&#039; &amp;amp; (@AutoItX64 ?&#039;X64&#039;:&#039;X32&#039;) &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Windows Version: &#039; &amp;amp; @OSVersion &amp;amp; &#039; [&#039; &amp;amp; @OSArch &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Language: &#039; &amp;amp; _GetOSLanguage() &amp;amp; &#039; (&#039; &amp;amp; @OSLang &amp;amp; &#039;)&#039; &amp;amp; @CRLF &amp;amp; @CRLF&lt;br /&gt;
ClipPut($sSystemInfo)&lt;br /&gt;
MsgBox(4096, &#039;This info has been copied to the clipboard. Use Ctrl + V to retrieve it.&#039;, $sSystemInfo)&lt;br /&gt;
&lt;br /&gt;
Func _GetOSLanguage()&lt;br /&gt;
     Local $aString[20] = [19, &amp;quot;0409 0809 0C09 1009 1409 1809 1C09 2009 2409 2809 2C09 3009 3409&amp;quot;, &amp;quot;0404 0804 0C04 1004 0406&amp;quot;, &amp;quot;0406&amp;quot;, &amp;quot;0413 0813&amp;quot;, &amp;quot;0425&amp;quot;, _&lt;br /&gt;
               &amp;quot;040B&amp;quot;, &amp;quot;040C 080C 0C0C 100C 140C 180C&amp;quot;, &amp;quot;0407 0807 0C07 1007 1407&amp;quot;, &amp;quot;040E&amp;quot;, &amp;quot;0410 0810&amp;quot;, _&lt;br /&gt;
               &amp;quot;0411&amp;quot;, &amp;quot;0414 0814&amp;quot;, &amp;quot;0415&amp;quot;, &amp;quot;0416 0816&amp;quot;, &amp;quot;0418&amp;quot;, _&lt;br /&gt;
               &amp;quot;0419&amp;quot;, &amp;quot;081A 0C1A&amp;quot;, &amp;quot;040A 080A 0C0A 100A 140A 180A 1C0A 200A 240A 280A 2C0A 300A 340A 380A 3C0A 400A 440A 480A 4C0A 500A&amp;quot;, &amp;quot;041D 081D&amp;quot;]&lt;br /&gt;
     Local $aLanguage[20] = [19, &amp;quot;English&amp;quot;, &amp;quot;Chinese&amp;quot;, &amp;quot;Danish&amp;quot;, &amp;quot;Dutch&amp;quot;, &amp;quot;Estonian&amp;quot;, &amp;quot;Finnish&amp;quot;, &amp;quot;French&amp;quot;, &amp;quot;German&amp;quot;, &amp;quot;Hungarian&amp;quot;, &amp;quot;Italian&amp;quot;, _&lt;br /&gt;
               &amp;quot;Japanese&amp;quot;, &amp;quot;Norwegian&amp;quot;, &amp;quot;Polish&amp;quot;, &amp;quot;Portuguese&amp;quot;, &amp;quot;Romanian&amp;quot;, &amp;quot;Russian&amp;quot;, &amp;quot;Serbian&amp;quot;, &amp;quot;Spanish&amp;quot;, &amp;quot;Swedish&amp;quot;]&lt;br /&gt;
     For $i = 1 To $aString[0]&lt;br /&gt;
          If StringInStr($aString[$i], @OSLang) Then&lt;br /&gt;
               Return $aLanguage[$i]&lt;br /&gt;
          EndIf&lt;br /&gt;
     Next&lt;br /&gt;
     Return $aLanguage[1]&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetOSLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Speak English and speak it right ===&lt;br /&gt;
Did you use proper English? Here are guidelines for posting properly in the English language:&lt;br /&gt;
* Use proper case.  THIS IS CONSIDERED YELLING. If you post in ALL UPPERCASE or all lowercase then you will not be taken seriously.&lt;br /&gt;
* Use proper punctuation. Complete sentences need only one trailing punctuation mark. Twelve exclamation points after every sentence &amp;lt;b&amp;gt;will not&amp;lt;/b&amp;gt; get you an answer more quickly (just the opposite) Writing a sentence without simple punctuation such as commas reflects badly on your attention to detail, and is considered a good judge of the poster&#039;s coding style. If you cannot summon the intellect to write a sentence with correct punctuation, you will most likely miss simple coding mistakes such as unterminated quotes.&lt;br /&gt;
&lt;br /&gt;
=== Breaking forum rules, law, modesty, or common sense ===&lt;br /&gt;
Show common sense by following the forum rules, http://www.autoitscript.com/forum/topic/169097-forum-rules/, as well as generally accepted forum etiquette. Repeated failure to do so will result in sanctions by the Moderation team as it ruins the experience for everyone.&lt;br /&gt;
&lt;br /&gt;
==Why does the Ctrl key get stuck down after I run my script?==&lt;br /&gt;
&lt;br /&gt;
=== Keys virtually stuck ===&lt;br /&gt;
It could equally be the Shift or the Alt key.&lt;br /&gt;
&lt;br /&gt;
If you use Send in a script and you have a problem with keys being stuck down then Send is the most likely culprit. A similar problem can occur with BlockInput. The solution is generally quite simple. If there is a key like Shift or Alt held down at the start of the Send sequence, but that key is released by the time the Send sequence finishes then the key will get &#039;stuck&#039; down. As an example of a solution, you could replace the Send function in your script with the _SendEx function below.&lt;br /&gt;
&lt;br /&gt;
The _SendEx function waits for the Shift, Alt and Ctrl keys to be released or pops up a warning if the $warn parameter is not an empty string. Therefore it is not intended to be used when one of these modifier keys has been set to be down using any combination of {ALTDOWN}, {SHIFTDOWN} and {ALTDOWN}.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt; Misc.au3 &amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
;Send the string $ss after the Shift Alt and Ctrl keys are released. Optionally give a warning after 1 sec if any of those keys are still down.&lt;br /&gt;
;Requires misc.au3 to be included in the script for the _IsPressed function.&lt;br /&gt;
&lt;br /&gt;
Func _SendEx($ss, $warn = &amp;quot;&amp;quot;)&lt;br /&gt;
	Local $iT = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	While _IsPressed(&amp;quot;10&amp;quot;) Or _IsPressed(&amp;quot;11&amp;quot;) Or _IsPressed(&amp;quot;12&amp;quot;)&lt;br /&gt;
		If $warn &amp;lt;&amp;gt; &amp;quot;&amp;quot; And TimerDiff($iT) &amp;gt; 1000 Then&lt;br /&gt;
			MsgBox($MB_TOPMOST, &amp;quot;Warning&amp;quot;, $warn)&lt;br /&gt;
		EndIf&lt;br /&gt;
		Sleep(50)&lt;br /&gt;
	WEnd&lt;br /&gt;
	Send($ss)&lt;br /&gt;
EndFunc;==&amp;gt;_SendEx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General unstuck method ===&lt;br /&gt;
Shilbiz also discovered that the following can &#039;clear&#039; locked down keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt; ControlSend(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;text&amp;quot;, 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use Pixel functions?==&lt;br /&gt;
&lt;br /&gt;
=== Using a color change as an event ===&lt;br /&gt;
The following is an example of using the pixel to check if the colour has changed in a specific region.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $PixelCheck = 0, $NewCheck&lt;br /&gt;
$PixelCheck = PixelCheckSum(40, 50, 60, 70); Get the checksum for this area.&lt;br /&gt;
While 1; Keep going&lt;br /&gt;
	$NewCheck = PixelCheckSum(40, 50, 60, 70)&lt;br /&gt;
	If $PixelCheck &amp;lt;&amp;gt; $NewCheck Then&lt;br /&gt;
		; The old pixel checksum and the new one are different.&lt;br /&gt;
		$PixelCheck = $NewCheck; Update the $PixelCheck to the new value&lt;br /&gt;
		; Let us know it has changed.  Change this to what you want to happen when the colour in the region changes.&lt;br /&gt;
		Msgbox($MB_ICONWARNING,&amp;quot;PixelChecksum&amp;quot;,&amp;quot;Pixel region has changed !&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(50); Just to give the CPU a bit of a break.&lt;br /&gt;
Wend&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Searching for a specific pixel color ===&lt;br /&gt;
This is an example of searching for a specific pixel (red), both pure red (0xFF0000) and red in a few different shades.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
; Find a pure red pixel in the range 0,0-20,300&lt;br /&gt;
&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Find a pure red pixel or a red pixel within 10 shades variations of pure red&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my script work on a locked workstation?==&lt;br /&gt;
On a locked station any window will never be active (active is only dialog with text &amp;quot;Press Ctrl+Alt+Del&amp;quot;).  In Windows locked state applications run hidden (behind that visible dialog) and do not have focus and active status.  So generally don&#039;t use Send() MouseClick() WinActivate() WinWaitActive() WinActive() etc.  Instead use ControlSend() ControlSetText() ControlClick() WinWait() WinExists() WinMenuSelectItem() etc.  Doing so allows you to interact with an application regardless of whether it is active or not. It&#039;s possible to run such a script from scheduler on locked Windows stations.&lt;br /&gt;
&lt;br /&gt;
==Where can I learn AutoIt? Are there any tutorials?==&lt;br /&gt;
AutoIt is a constantly growing and evolving language with a diverse and engaged community of volunteers. This wiki, along with the official forum, will always be your best place for answers to questions as well as examples and tutorials. With this in mind, below are a few resources that can also help you as you become familiar with the language:&lt;br /&gt;
&lt;br /&gt;
AutoIt 1-2-3, an interactive classroom by Valuater:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=21048 http://www.autoitscript.com/forum/index.php?showtopic=21048]&lt;br /&gt;
&lt;br /&gt;
BrettF&#039;s updated AutoIt tutorial:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=84960 http://www.autoitscript.com/forum/index.php?showtopic=84960]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Learn To Program Using FREE Tools with AutoIt&amp;quot; PDF Book by Jfish&lt;br /&gt;
[https://www.autoitscript.com/forum/files/file/351-learn-to-program-using-free-tools-with-autoit/ Learn To Program Using FREE Tools with AutoIt]&lt;br /&gt;
&lt;br /&gt;
YouTube has a number of videos available:&lt;br /&gt;
[http://www.youtube.com/results?search_query=autoit+tutorial&amp;amp;search_type=&amp;amp;aq=0&amp;amp;oq=AutoIt YouTube AutoIt tutorials list]&lt;br /&gt;
&lt;br /&gt;
As always, when asking questions about a video or script you saw on an external source, please ensure you are adhering to the [[FAQ#Breaking_forum_rules.2C_law.2C_modesty.2C_or_common_Sense|forum rules]].&lt;br /&gt;
&lt;br /&gt;
==Why does my script no longer decompile?==&lt;br /&gt;
Decompilation is no longer supported, and is only available for the older versions of AutoIt (Version 3.2.5.1 and earlier compiled scripts).&lt;br /&gt;
&lt;br /&gt;
Please &#039;&#039;&#039;do not&#039;&#039;&#039; post on this topic; see the [[Decompiling FAQ]] for more information. Topics discussing decompilation of scripts will be locked immediately. Posting the source of a decompiled script with lead to immediate sanctions from the Moderation team, as it directly violates AutoIt EULA (End-User-License-Agreement).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt;You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.&amp;lt;/i&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I get a window handle when all I have is a PID?==&lt;br /&gt;
Refer to the following example showing converting and use when manipulating the window. The function is based on work by Smoke_N/Hubertus and Helge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Run process&lt;br /&gt;
$iPID = Run(&amp;quot;Notepad.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;Allow window to initialize...&lt;br /&gt;
Sleep (500)&lt;br /&gt;
&lt;br /&gt;
;Get HWND.&lt;br /&gt;
$hWnd = _GetHwndFromPID($iPID)&lt;br /&gt;
&lt;br /&gt;
;Maximize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MAXIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Minimize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MINIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Restore window&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_RESTORE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Move top left corner of screen, and resize to 800x600&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, 0, 0, 800, 600)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Calculate Center of screen.&lt;br /&gt;
$x = (@DesktopWidth / 2) - 400; Desktop width divided by 2, then minus half the width of the window&lt;br /&gt;
$y = (@DesktopHeight / 2) - 300; Desktop height divided by 2, then minus half the height of the window&lt;br /&gt;
&lt;br /&gt;
;Move to center of screen&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, $x, $y)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Close notepad&lt;br /&gt;
WinClose($hWnd)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Function for getting HWND from PID&lt;br /&gt;
Func _GetHwndFromPID($PID)&lt;br /&gt;
	$hWnd = 0&lt;br /&gt;
	$winlist = WinList()&lt;br /&gt;
	Do&lt;br /&gt;
		For $i = 1 To $winlist[0][0]&lt;br /&gt;
			If $winlist[$i][0] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$iPID2 = WinGetProcess($winlist[$i][1])&lt;br /&gt;
				If $iPID2 = $PID Then&lt;br /&gt;
					$hWnd = $winlist[$i][1]&lt;br /&gt;
					ExitLoop&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	Until $hWnd &amp;lt;&amp;gt; 0&lt;br /&gt;
	Return $hWnd&lt;br /&gt;
EndFunc;==&amp;gt;_GetHwndFromPID&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use single or double quotes in strings?==&lt;br /&gt;
It is a fairly simple concept once you get the basics down.  Basically there are a few different ways to go about mixing quotes in strings.&lt;br /&gt;
&lt;br /&gt;
A string in AutoIt can be encased in either single(&#039;) or double (&amp;quot;) quotes.  So if you want to add only one type of quote into your string, your first port of call is to use the other type of quote to encase the string.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &amp;quot;I am a &#039;quote&#039; inside the string&amp;quot;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&lt;br /&gt;
$var = &#039;I wish I could be a &amp;quot;quote&amp;quot; inside the string!&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have to have both types of quotes in the string, the easiest way is to escape the quote ending the string as so to speak.  To do this, use two quotes instead of one.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &#039;I am a single &#039;&#039;quote&#039;&#039; inside the string made using &amp;quot;single quote!&amp;quot;&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==When should I bump my threads?==&lt;br /&gt;
As a courtesy to other users you should only bump your post once in a 24 hour period.  Doing this allows all users the chance to get helped equally.  Also refer to [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;view=findpost&amp;amp;p=688050 Why isn&#039;t my thread getting any replies?], as this will help you get replies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I protect my code from decompilation?==&lt;br /&gt;
The fact of the matter is &#039;&#039;&#039;you can&#039;t fully protect your code&#039;&#039;&#039;.  AutoIt is an  interpreted language, so all scripts are interpreted, and that script has to get stored somewhere.  There is still hope though.  You can take certain measures to make the decompiled code less usable to the person that decompiled it.  The first step is to obfuscate your code.  This causes the code to become less readable.  Basically variables and functions are renamed, making it very hard to make head or tail of what is what.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Decompiling FAQ]] for more information.&lt;br /&gt;
&lt;br /&gt;
==How can I decompile my AutoIt EXEs?==&lt;br /&gt;
You cannot decompile your AutoIt compiled scripts unless it was compiled with AutoIt 3.2.5.1 or earlier.&lt;br /&gt;
&lt;br /&gt;
In order to be able to recover your script from the compiled executable, you can use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Original Author SmokeN&lt;br /&gt;
If $CMDLINE[0] Then&lt;br /&gt;
	If $CMDLINE[1] == &amp;quot;/SOURCE&amp;quot; AND $CMDLINE[2] == &amp;quot;MYPASSWORD&amp;quot; Then&lt;br /&gt;
		FileInstall(&amp;quot;ThisSCript.au3&amp;quot;, @ScriptDir &amp;amp; &amp;quot;\DecompiledScript.au3&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then if you run the compiled script with the following command line parameters your source will be extracted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;myscript.exe /SOURCE MYPASSWORD&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What is proper forum etiquette?  What rules are there for the forum?==&lt;br /&gt;
Proper forum etiquette will ensure you will stay a member of these forums.  So try to follow these rules.  Also see this [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;st=15&amp;amp;p=688050&amp;amp;#entry688050 FAQ post], as you should follow what is outlined there as well.&lt;br /&gt;
&lt;br /&gt;
* Use proper English.  MSN speak and the like makes it very hard to understand what you want.  Keep posts in proper case because UPPERCASE is considered yelling and lowercase makes you look stupid.  Don&#039;t use more punctuation marks than necessary. For example ?!!!? and ????? is completely unnecessary.&lt;br /&gt;
* Before posting help with a script, make sure you follow these steps:&lt;br /&gt;
*# Search for your issue.&lt;br /&gt;
*#* There are many thousands of posts on this forum, and chances are your question has been asked before.  Make sure to use a variety of terms to maximize your results.&lt;br /&gt;
*# Read the helpfile&lt;br /&gt;
*#* Most if not all things in the help file will have an example (native functions) or two.  Give them a go to try see how the functions work.  Most of the time it helps!&lt;br /&gt;
*# Give it a go&lt;br /&gt;
*#* Seriously, if you can&#039;t be bothered to give it a go, then why should we be bothered to help you?  If you feel you can&#039;t do it and you don&#039;t try then how will you ever know?  We always prefer that you give it a go because you can learn from your mistakes and hopefully understand it better.&lt;br /&gt;
*# Post your problem&lt;br /&gt;
*#* Make sure you post in the correct forum.&lt;br /&gt;
*#** &amp;lt;b&amp;gt;AutoIt Specific&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/2-autoit-general-help-and-support/ General Help and Support] (Most support questions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/10-autoit-gui-help-and-support/ GUI Support] (Support for the Graphical User Interface)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/14-autoitx-help-and-support/ AutoItX Support] (Support for the COM, DLL, PowerShell and .NET add-ons for AutoIt)&lt;br /&gt;
*#** &amp;lt;b&amp;gt;Non-AutoIt&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** Chat&lt;br /&gt;
*#*** Developer Chat&lt;br /&gt;
*#* Include a detailed description in the content of the post, and a detailed title&lt;br /&gt;
*#** Titles such as &#039;Help&#039; and &#039;What&#039;s wrong?&#039; are not acceptable.  To get the most help with your problem, be as descriptive as you can in the title, but keep in mind your title cannot be too long.&lt;br /&gt;
*#** Make sure you also include a descriptive question.  Just saying &#039;what is wrong with the following&#039; is also not acceptable, as we will have no idea what the problem is.  Describe what you think is wrong and what is not working.  It makes our job easier.&lt;br /&gt;
*#* Always include your code&lt;br /&gt;
*#** It shows us that you have tried and gives us a head start with something to play with.&lt;br /&gt;
* Usually asking for a script is not taken too well, within reason.  Keep in mind that this is a support forum, so please acknowledge that. We are here to help you with your scripts, not to spoon-feed code to you.  If you do need something written for you, maybe try  [http://www.rentacoder.com/ RentACoder], as they are more suited to requests.&lt;br /&gt;
* Don&#039;t PM other members asking for them to look at threads of to help you unless they request it.  It is actually quite rude and annoying to receive PMs of that nature.&lt;br /&gt;
* Lurk a little before you dive right in. Read a number of posts, or check out the group&#039;s archives. Get a feel for the tone of the forum so you can participate accordingly.&lt;br /&gt;
* Say online exactly what you would say in person. In other words, if you wouldn&#039;t say it to the person&#039;s face in front of your Grandmother, you shouldn&#039;t type it here.&lt;br /&gt;
* Remember your face doesn&#039;t show. Words alone can convey sentiment, but without benefit of inflection or facial expression, they can be misconstrued. Use descriptive wording, emoticons or .gifs to ensure your meaning is clear. By the same token, don&#039;t jump to conclusions about another person&#039;s intent in posting an unclear comment. When in doubt, ask for clarification.&lt;br /&gt;
* Be respectful. Internet etiquette is similar to standard etiquette in this area. Appreciate that your opinion is one of many. You can disagree with another person without being disrespectful or rude to other people.&lt;br /&gt;
* Ignore Trolls. If you engage in conversation with one, you&#039;ll raise your blood pressure and empower the troll. You can&#039;t win a flame war, and you can&#039;t sway a troll&#039;s opinion. Often, they don&#039;t even care about the subject.  They live for the conflict and nothing more. Trolls are common and not worthy of your time. Ignore their posts no matter how inflammatory and eventually they&#039;ll get bored and move on.&lt;br /&gt;
* When you have found an answer for your question:&lt;br /&gt;
*# Do not edit your post to be blank or to have worthless information.  People may be searching for the same issue you have, so be courteous to them by leaving your question there.&lt;br /&gt;
*# It is also optional to add the word [SOLVED] into the title, as well as selecting the post that best answered your question. It can make the lives of people searching easier.&lt;br /&gt;
* Finally follow the rules:&lt;br /&gt;
** [http://www.autoitscript.com/forum/topic/169097-forum-rules/ Forum rules]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=54168 Rules for the Chat forum]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=65889 Rules for asking for source code]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=37739 General policies and forum settings]&lt;br /&gt;
&lt;br /&gt;
Some general points taken from [http://www.ehow.com/how_2106033_use-proper-forum-etiquette.html here].&lt;br /&gt;
&lt;br /&gt;
==Are there forums available in my local language?==&lt;br /&gt;
Yes there are some available.  Some forum members here participate in multiple forums.&lt;br /&gt;
* [http://www.autoit.de/ German Forums]&lt;br /&gt;
* [http://www.autoit.fr/  French Forums]&lt;br /&gt;
* [http://www.autoit.es/ Spanish Forums]&lt;br /&gt;
* [http://autoit-script.ru/ Russian Forums]&lt;br /&gt;
* [http://forum.autoitbrasil.com/ Portuguese Forums]&lt;br /&gt;
&lt;br /&gt;
Please note that these are independent, community-run message boards and not just a translation of this board.&lt;br /&gt;
&lt;br /&gt;
==How can I control (click, edit etc) an external (html) application?==&lt;br /&gt;
You can use the control* functions of autoit see helpfile&lt;br /&gt;
of use specific udf libraries&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ IUIAutomation for multiple applications]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/154439-chrome-udf/ chrome chrome.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/149526-librariesieau3/ Internet explorer ie.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ firefox ff.au3] (End of life)&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy/ java]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?&amp;amp;q=Selenium Selenium]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/191990-webdriver-udf-w3c-compliant-version/ WebDriver UDF (IE, Chrome, FireFox)]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should use spy applications to identify objects like&lt;br /&gt;
* au3inf part of AutoIT&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ simplespy in the zip]&lt;br /&gt;
* jabsimplespy in examples section of the AutoIt forum&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/126716-control-viewer-autoit-window-info-tool/ control viewer]&lt;br /&gt;
* inspect as part of windows SDK&lt;br /&gt;
* VisualUIAVerifyNative.exe as part of windows SDK (8.1)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If above spy tools are not identifying your object you could try commercial tools (trials) like&lt;br /&gt;
* ranorex spy&lt;br /&gt;
* Testcomplete&lt;br /&gt;
* HP UFT&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And your last recognition can be bitmaps&lt;br /&gt;
* search for GDI&lt;br /&gt;
* search for findBMP&lt;br /&gt;
* search for imagesearch&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt support database connections, such as SQL?==&lt;br /&gt;
Yes! UDFs exist for several popular SQL solutions, including SQLite, Firebird, MySQL, MSSQL and ODBC connections for PostGreSQL and others.&lt;br /&gt;
&lt;br /&gt;
For an illustrative list, see this link:&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/wiki/User_Defined_Functions#Files.2C_Databases_and_web_connections Files, Databases and web connections]&lt;br /&gt;
&lt;br /&gt;
A DBF UDF also exists&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/145142-dbf-udf-dbase-database-read-and-write-with-dll/ DBF UDF dBase with DLL]&lt;br /&gt;
&lt;br /&gt;
==How can I include some files into my compiled Autoit&#039;s EXE?==&lt;br /&gt;
Use FileInstall() or ResourcesEx UDF from the forum Examples.  Additional resources can also be included at compile time, click the &amp;quot;Res Add Files&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
==How can I test if checkbox / radiobutton is checked?==&lt;br /&gt;
Use this small function: If IsChecked($checkbox1) Then ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Zedna&lt;br /&gt;
Func IsChecked($control)&lt;br /&gt;
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED&lt;br /&gt;
EndFunc   ;==&amp;gt;IsChecked&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use the {enter} key as a Tab?==&lt;br /&gt;
Use &lt;br /&gt;
[https://www.autoitscript.com/autoit3/docs/functions/GUISetAccelerators.htm Accelerator keys]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; by Melba23&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
&lt;br /&gt;
$cInput_1 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 10, 200, 20)&lt;br /&gt;
$cInput_2 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 50, 200, 20)&lt;br /&gt;
$cInput_3 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 90, 200, 20)&lt;br /&gt;
&lt;br /&gt;
$cButton_1 = GUICtrlCreateButton(&amp;quot;Button 1&amp;quot;, 250, 10, 80, 30)&lt;br /&gt;
$cButton_2 = GUICtrlCreateButton(&amp;quot;Button 2&amp;quot;, 250, 50, 80, 30)&lt;br /&gt;
$cButton_3 = GUICtrlCreateButton(&amp;quot;Button 3&amp;quot;, 250, 90, 80, 30)&lt;br /&gt;
&lt;br /&gt;
$cEnter = GUICtrlCreateDummy()&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Local $aAccelKeys[2][2] = [[&amp;quot;{ENTER}&amp;quot;, $cEnter], [&amp;quot;{TAB}&amp;quot;, $cEnter]] ; Make {TAB} an accelerator&lt;br /&gt;
GUISetAccelerators($aAccelKeys)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $cEnter&lt;br /&gt;
			Switch _WinAPI_GetFocus()&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_1)&lt;br /&gt;
					; Check the input content&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						; Correct so move to next input&lt;br /&gt;
						GUICtrlSetState($cInput_2, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
					; Not correct so stay in current input&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_2)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						GUICtrlSetState($cInput_3, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_3)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						ConsoleWrite(&amp;quot;End&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case Else&lt;br /&gt;
					GUISetAccelerators(0) ; Remove accelerator link&lt;br /&gt;
					ControlSend($hGUI, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;{TAB}&amp;quot;) ; Send {TAB} to the GUI&lt;br /&gt;
					GUISetAccelerators($aAccelKeys) ; Reset the accelerator&lt;br /&gt;
&lt;br /&gt;
			EndSwitch&lt;br /&gt;
	EndSwitch&lt;br /&gt;
&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func checkEntry()&lt;br /&gt;
&lt;br /&gt;
	; Random chance of correct answer or fail&lt;br /&gt;
	If Mod(@SEC, 2) = 0 Then&lt;br /&gt;
		MsgBox($MB_SYSTEMMODAL, &amp;quot;Test Fail&amp;quot;, &amp;quot;Press Enter to close this message box&amp;quot;)&lt;br /&gt;
		Return False&lt;br /&gt;
	EndIf&lt;br /&gt;
	Return True&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;checkEntry&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why are my number sort results wrong?==&lt;br /&gt;
AutoIt by default uses an alpha sort algorithm. This means that ABC is sorted correctly, but it sorts numbers as 1,10,2,22,3,31 where the user expects 1,2,3,10,22,31.&lt;br /&gt;
This can be remedied by using a custom sort function. An example of such a custom number sort by Valuater appears below.  Search the Forum for [https://www.autoitscript.com/forum/topic/95383-sorting-numbers/ Number Sort] and [https://www.autoitscript.com/forum/topic/83626-natural-order-string-comparison/ Natural Order String Comparison] &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Valuater&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$Array = StringSplit(&amp;quot;2,5,3,4,6,1,8,9,7&amp;quot;, &amp;quot;,&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
_ArraySortNum($Array)&lt;br /&gt;
&lt;br /&gt;
_ArrayDisplay($Array, &amp;quot;Sorted Array&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Func _ArraySortNum(ByRef $n_array, $i_descending = 0, $i_start = 1)&lt;br /&gt;
	Local $i_ub = UBound($n_array)&lt;br /&gt;
	For $i_count = $i_start To $i_ub - 2&lt;br /&gt;
		Local $i_se = $i_count&lt;br /&gt;
		If $i_descending Then&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;lt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;gt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
		Local $i_hld = $n_array[$i_count]&lt;br /&gt;
		$n_array[$i_count] = $n_array[$i_se]&lt;br /&gt;
		$n_array[$i_se] = $i_hld&lt;br /&gt;
	Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_ArraySortNum&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I include AutoIt functions in a C# / C++ / VB programme? AutoItX==&lt;br /&gt;
AutoIt is also supplied as 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;
[https://www.autoitscript.com/site/autoit/ Info on AutoItX] &lt;br /&gt;
&lt;br /&gt;
From AutoItX.chm:&lt;br /&gt;
AutoItX is a DLL version of AutoIt v3 that provides a subset of the features of AutoIt via an ActiveX/COM and DLL interface. This means that you can add AutoIt-like features to your favourite scripting and programming languages, e.g. VB, VBScript, Delphi, C, C++, Kixtart, and most other languages that support the use of DLLs.&lt;br /&gt;
&lt;br /&gt;
Here are some C++ source code samples from various projects by [https://www.autoitscript.com/forum/profile/1-jon/ Jon]. Most are free to use but check any license files that accompany the downloads for details.  All code was created in Microsoft Visual C (6 and 7) but most would probably compile under mingw32 as well.&lt;br /&gt;
[https://www.autoitscript.com/site/code/ Download C++ examples for AutoItX] &lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to regsvr it if you are using the c# library. The c# library uses the non-COM part of the DLL so it just needs to be in the same folder as the exe and add the assembly.dll to your project. From the documenation:&lt;br /&gt;
&lt;br /&gt;
Using the Assembly from VB/C# within in Visual Studio is very easy:&lt;br /&gt;
* Add a reference to AutoItX3.Assembly.dll to your project&lt;br /&gt;
* Add a using AutoIt; statement in the files you want to use AutoIt functions&lt;br /&gt;
* Distribute your final executable with the files AutoItX3.Assembly.dll, AutoItX3.dll, AutoItX3_x64.dll.&lt;br /&gt;
* Write code like this C# example:&lt;br /&gt;
    using AutoIt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Jon&lt;br /&gt;
   // Wow, this is C#!&lt;br /&gt;
    AutoItX.Run(&amp;quot;notepad.exe&amp;quot;);&lt;br /&gt;
    AutoItX.WinWaitActive(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.Send(&amp;quot;I&#039;m in notepad&amp;quot;);&lt;br /&gt;
    IntPtr winHandle = AutoItX.WinGetHandle(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.WinKill(winHandle);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the AutoItX Help File (included in the default AutoIt install):&lt;br /&gt;
AutoItX can be used as a standard DLL from any language capable of calling functions in external DLLs.&lt;br /&gt;
&lt;br /&gt;
The following files are provided to allow you to use the DLL in C++:&lt;br /&gt;
&lt;br /&gt;
* AutoItX3_DLL.h - C language header file showing the exported functions and parameters&lt;br /&gt;
* AutoItX3_DLL.lib - Microsoft format import library (x86)&lt;br /&gt;
* AutoItX3_x64_DLL.lib - Microsoft format import library (x64)&lt;br /&gt;
* AutoItX3.dll - The main AutoItX DLL (x86)&lt;br /&gt;
* AutoItX3_x64.dll - The main AutoItX DLL (x64)&lt;br /&gt;
&lt;br /&gt;
==How can I search an image in another image? ==&lt;br /&gt;
You can use the Pixel* functions of AutoIt. See the help file for more information and examples.&lt;br /&gt;
You can also use one of the UDFs below; most of which use GDI:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/158264-bmpsearch-search-for-bitmap-within-bitmap-assembly-version/ FASM example]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/140478-bitmap-processing-using-raw-code/ asm bitmap processing]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/66545-find-bmp-in-another-bmp-imagesearch/ find bitmap in bitmap]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?type=all&amp;amp;q=_GDIPlus_BitmapLockBits/ GDI bitmaps]&lt;br /&gt;
Other libraries can be found that make use of a specific external dll but those above are considered &amp;quot;native&amp;quot; as no external dlls are required.&lt;br /&gt;
&lt;br /&gt;
==Multithreading==&lt;br /&gt;
Multithreading basically is running multiple scripts/programs that have acces to the same variables, normally by sharing memory. &lt;br /&gt;
&lt;br /&gt;
The AutoIt language is not threadsafe and multithreading is firmly on the &amp;lt;b&amp;gt;NOT TO DO&amp;lt;/b&amp;gt; list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multitasking and Multi&amp;lt;i&amp;gt;processing&amp;lt;/i&amp;gt; are closely related, however, and multiple solutions have been explored:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25350-multithread/ Multithread technical discussion]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25494-threaded-dll-sample/ Multithread with external DLL]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/146794-multi-thread-autoit/ Multithread with external DLL 2]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/64390-how-to-multi-process-in-autoit/ Multi process]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/187334-using-net-libary-with-autoit-possible/ Using C# - Host .NET]&lt;br /&gt;
&lt;br /&gt;
==Test automation==&lt;br /&gt;
Many people are looking for freeware tools to do test automation and cannot afford the commercial tools like HP LeanFT, Ranorex, Squish etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
So how can AutoIt help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Out of the box install the base full zip package and start Scite.Exe as a simple IDE.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to do more these links will help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 31 for the basic stuff on which technologies are readable and which spying tools there are&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 38 for the bitmap stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/ Alternative project IDE]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/188158-net-common-language-runtime-clr-framework/ .NET stuff]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/84133-winhttp-functions/ WinHTTP]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/185401-restwhich-udf-to-use-webdriver-of-edge/ webdriver]&lt;br /&gt;
Android can be reached thru ADB and Webdriver&amp;lt;br /&amp;gt;&lt;br /&gt;
iOS is limited to normal webdriver stuff thru WinHTTP library. So most likely you have to install additional iOS webdriver solutions&amp;lt;br /&amp;gt;&lt;br /&gt;
And after reading FAQ just ask your questions in the support forum&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DPI Awareness==&lt;br /&gt;
The following few links are related to DPI Awareness :&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166479-writing-dpi-awareness-app-workaround/ Writing DPI Awareness App - workaround]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/182423-wrong-screen-resolution-displayed-by-autoit-macros/ Wrong Screen Resolution Displayed by Autoit Macros]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/192529-dpi-awareness-any-suggestion/ DPI Awareness - question]&lt;br /&gt;
&lt;br /&gt;
==AutoIt+SciTE Portable Developer Environment==&lt;br /&gt;
Recent discussion can be found here:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/119572-autoit3-portable/?do=findComment&amp;amp;comment=1391105 How to make AutoIt+SciTE portable ]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13856</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13856"/>
		<updated>2018-10-21T21:52:19Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Using more code to check @error value */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of frequently asked questions asked on the forums.&lt;br /&gt;
&lt;br /&gt;
Other FAQs include:&lt;br /&gt;
* The one found in the [http://www.autoitscript.com/autoit3/docs/faq.htm AutoIt HelpFile].  Much of it is about the transition from V2 to V3, but most is still relevant and should be a port of call, as well as this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I debug my script?==&lt;br /&gt;
&lt;br /&gt;
=== In SciTE ===&lt;br /&gt;
This one has a myriad of answers, but the most effective is to begin by using the [http://www.autoitscript.com/autoit3/scite/ SciTE4AutoIt3 Editor] to create or edit scripts. This program is useful in debugging for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* Syntax highlighting allows for immediate viewing of any mistakes from unended script tags or quotes. This allows the scripter to visibly see the difference between the following portions of code.&lt;br /&gt;
[[File:FAQ_Q1_2.jpg|center|Incorrect code]]&lt;br /&gt;
And the correct version: &lt;br /&gt;
[[File:FAQ_Q1_3.jpg|center||Correct Code]]&lt;br /&gt;
* Global syntax check built directly into the tools menu allows you to check an entire script for problems all at once.&lt;br /&gt;
* Built-in code tidying program that correctly indents untidy code and repairs messy scripts to allow them to be more readable. It also corrects problems with incorrectly capitalised function names and variables.&lt;br /&gt;
* Per-line trace insertion allows you to log every line of code executed to debug errors.&lt;br /&gt;
* Debug MsgBoxes or ConsoleWrites are able to be added anywhere in the script directly from SciTE. ConsoleWrite lines are less intrusive and prevent the added annoyance to the user of MsgBoxes.&lt;br /&gt;
&lt;br /&gt;
You can also use AutoIt3Wrapper directive:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#AutoIt3Wrapper_Run_Debug_Mode=Y&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FAQ_Q1_4.jpg|center|Picture of SciTE4AutoIt3]]&lt;br /&gt;
&lt;br /&gt;
=== Using more code to check @error value ===&lt;br /&gt;
Nearly all functions will return something.  Most of the time when a function fails, it returns 0 and sets @error.  You can use this information not only to create scripts that handle for different errors but to debug and find out exactly why you are having problems.  Check the help file for specific functions and their return values.&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;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	Local $aFileList = _FileListToArray(@ScriptDir, &#039;NOT_EXISTEN_FILE.TEST&#039;)&lt;br /&gt;
	If @error Then ; check if _FileListToArray() function return any error&lt;br /&gt;
		MsgBox($MB_ICONERROR, &#039;_FileListToArray&#039;, &#039;@error = &#039; &amp;amp; @error &amp;amp; @CRLF &amp;amp; &#039;@extended = &#039; &amp;amp; @extended) ; show error message&lt;br /&gt;
		Return ; return / exit from function to prevent unexpected further error&#039;s&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	For $iFile_idx = 1 To $aFileList[0]&lt;br /&gt;
		FileRead($aFileList[$iFile_idx])&lt;br /&gt;
		; any further code&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Via the Tray icon===&lt;br /&gt;
You can add this line at the top of your script (1 is on, 0 is off) to enable debugging from the tray icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;AutoItSetOption (&amp;quot;TrayIconDebug&amp;quot;, 1);0-off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then if you run the script (uncompiled as an AU3 file), you can mouse over the AutoIt icon in the system tray (down by the clock) to display debugging information.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_1.jpg|center|Example output for TrayIconDebug]]&lt;br /&gt;
&lt;br /&gt;
=== OutputDebugString native call ===&lt;br /&gt;
You can also debug a script on any computer by adding the following code to your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _MyDebug($sMessage, $iError = @error, $iExtended = @extended)&lt;br /&gt;
	If $iError Or $iExtended Then&lt;br /&gt;
		$sMessage &amp;amp;= &#039;[ @error = &#039; &amp;amp; $iError &amp;amp; &#039; @extended = &#039; &amp;amp; $iExtended &amp;amp; &#039; ]&#039;&lt;br /&gt;
	EndIf&lt;br /&gt;
	DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;OutputDebugString&amp;quot;, &amp;quot;str&amp;quot;, $sMessage)&lt;br /&gt;
	Return SetError($iError, $iExtended, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyDebug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then, when you need to add a debug line, call it as necessary. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;_MyDebug(&amp;quot;The value of Variable 1 at this time is &amp;quot; &amp;amp; $var1)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This debugging is completely transparent to the user, and is only viewable with a program such as DebugView from SysInternals. This method of debugging has the added advantage of being available to the developer in situations where is not acceptable or feasable to install SciTE on a client&#039;s unit.&lt;br /&gt;
&lt;br /&gt;
=== Graphical debugger ===&lt;br /&gt;
Stumpii created a [http://www.autoitscript.com/forum/index.php?showtopic=21834 Graphical AutoIt Debugger], similar to Dev-C++&#039;s debugging style.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_5.jpg|center|Stumpii&#039;s Graphical AutoIt Debugger]]&lt;br /&gt;
&lt;br /&gt;
=== Another debugger for AutoIt ===&lt;br /&gt;
Heron created a [http://www.autoitscript.com/forum/index.php?showtopic=103142 Another debugger for AutoIt].&lt;br /&gt;
&lt;br /&gt;
The latest version by asdf8 is here:&lt;br /&gt;
https://www.autoitscript.com/forum/topic/103142-another-debugger-for-autoit/?do=findComment&amp;amp;comment=1303208&lt;br /&gt;
&lt;br /&gt;
=== Other UDF to log/trace/script analyze ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
==How can I run something that is not an exe file [.txt, .msi, .pdf,.jpg etc.] [or] How can I open a webpage in the default browser?==&lt;br /&gt;
It was for this reason that the ShellExecute function was created. Here is one example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;edit&amp;quot;, @SW_MAXIMIZE)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also specify a web address this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;http://www.autoitscript.com/forum&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;open&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you normally are able to right-click the file and select print, then you can also print the file from AutoIt using this function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\boot.ini&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;print&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to open the file with the default program, you can do as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish your script to wait until the process is finished, you can use the ShellExecuteWait function with the same parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The default verb is the verb configured in the registry. If no verb is set as default in the registry then the &amp;quot;open&amp;quot; verb is used. If the &amp;quot;open&amp;quot; verb is not present then the first verb listed in the registry is used.&lt;br /&gt;
&lt;br /&gt;
==How can I prevent more than one copy of my script from running at once, or detect another copy of my script running?==&lt;br /&gt;
&lt;br /&gt;
=== _Singleton function ===&lt;br /&gt;
There are a few different ways to go about this. You can use a function called _Singleton to detect multiple instances of your script. An example of how to use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
_Singleton(&amp;quot;TheNameOfMyScript&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this instance, the script will bring up some messages explaining to the user of the occurring events. &lt;br /&gt;
This example will show you how the above function can be used in a real world application.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _Singleton(&amp;quot;MyScriptName&amp;quot;, 1) = 0 Then&lt;br /&gt;
    ; If successful, running our script a second time should cause us to fall through here&lt;br /&gt;
    MsgBox($MB_ICONERROR, &amp;quot;User Generated Error Message&amp;quot;, &amp;quot;Error: This script is already running!&amp;quot;)&lt;br /&gt;
Else&lt;br /&gt;
    ; We have detected that we are the only instance running, now we will run a second instance to display _Singleton&#039;s function!&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We are the first instance of this script, press OK to run another instance and trigger the error message!&amp;quot;)&lt;br /&gt;
    Switch @Compiled&lt;br /&gt;
        Case 1&lt;br /&gt;
            Run(FileGetShortName(@ScriptFullPath));when running an app, it&#039;s usually better to use its short name&lt;br /&gt;
        Case 0&lt;br /&gt;
            Run(FileGetShortName(@AutoItExe) &amp;amp; &#039; /AutoIt3ExecuteScript &#039; &amp;amp; FileGetShortName(@ScriptFullPath))&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We ran a second instance, you should have recieved an error message!&amp;quot;, 5)&lt;br /&gt;
EndIf&lt;br /&gt;
Exit&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_MutexExists function ===&lt;br /&gt;
Another method is to use _MutexExists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _MutexExists(&amp;quot;MydeswswScriptName&amp;quot;) Then&lt;br /&gt;
	; We know the script is already running. Let the user know.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;Script Name&amp;quot;, &amp;quot;This script is already running. Using multiple copies of this script at the same time is unsupported!&amp;quot;)&lt;br /&gt;
	Exit&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
;Function Author- Martin&lt;br /&gt;
Func _MutexExists($sOccurenceName)&lt;br /&gt;
	Local $ERROR_ALREADY_EXISTS = 183, $handle, $lastError&lt;br /&gt;
	$sOccurenceName = StringReplace($sOccurenceName, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;); to avoid error&lt;br /&gt;
	$handle = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;CreateMutex&amp;quot;, &amp;quot;int&amp;quot;, 0, &amp;quot;long&amp;quot;, 1, &amp;quot;str&amp;quot;, $sOccurenceName)&lt;br /&gt;
	$lastError = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetLastError&amp;quot;)&lt;br /&gt;
	Return $lastError[0] = $ERROR_ALREADY_EXISTS&lt;br /&gt;
EndFunc;==&amp;gt;_MutexExists&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I run my script as a service?==&lt;br /&gt;
This is also a question with multiple answers, and none of them are the only way to do it. The first question to ask yourself is whether or not you wish to install the service on other computers besides your own.&lt;br /&gt;
&lt;br /&gt;
=== On your own computer - One time only ===&lt;br /&gt;
The easiest way to do this is to use Pirmasoft RunAsSvc. This program makes services easy to install and easy to remove when necessary.&lt;br /&gt;
&lt;br /&gt;
=== On all computers that run your script===&lt;br /&gt;
To do this you can use SRVANY.EXE and [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3]. You can then use this code to install your script as a service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_CreateService(&amp;quot;&amp;quot;, $servicename, &amp;quot;My AutoIt Script&amp;quot;, &amp;quot;C:\Path_to_\srvany.exe&amp;quot;, &amp;quot;LocalSystem&amp;quot;, &amp;quot;&amp;quot;, 0x110)&lt;br /&gt;
RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\&amp;quot; &amp;amp; $servicename &amp;amp; &amp;quot;\Parameters&amp;quot;, &amp;quot;Application&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the following code to delete this service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_DeleteService(&amp;quot;&amp;quot;, $servicename)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one caveat to setting up AutoIt as a service. If the service is not installed using the above code, it must have the &amp;quot;allow service to interact with the desktop&amp;quot; setting or else automation functions such as Control* or Win* functions will not function. To assure the service does indeed have this setting, use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\[ServiceName]&amp;quot;, &amp;quot;Type&amp;quot;, &amp;quot;REG_DWORD&amp;quot;, 0x110)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I create/start/stop or otherwise control a service?==&lt;br /&gt;
There are two include libraries that are designed specifically to interact with services. These are the following:&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3] made by SumTingWong. Functionality:&lt;br /&gt;
** _StartService()&lt;br /&gt;
** _StopService()&lt;br /&gt;
** _ServiceExists()&lt;br /&gt;
** _ServiceRunning()&lt;br /&gt;
** _CreateService()&lt;br /&gt;
** _DeleteService()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22165 _NTServices.au3] made by CatchFish. Functionality:&lt;br /&gt;
** _ServiceStart()&lt;br /&gt;
** _ServiceStop()&lt;br /&gt;
** _ServiceStatus()&lt;br /&gt;
** _ServicePause()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I display a progress bar while copying files or directories?==&lt;br /&gt;
There are a many different topics on how to do this.  For more, just search the forums for [http://www.autoitscript.com/forum/index.php?act=Search&amp;amp;CODE=show&amp;amp;searchid=22030d4d4effe5e32da23fdb69ed772f&amp;amp;search_in=posts&amp;amp;result_type=topics&amp;amp;highlite=%2BCopy%2B Progress Copy + Progress].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11313 Copy with progress dialog]... By ezztabi&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11888 Yet another copy with progress]... By SumTingWong&lt;br /&gt;
* [http://www.autoit.de/index.php?page=Thread&amp;amp;postID=58875 _MultiFileCopy]... By Oscar (German Forums)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19370&amp;amp;st=45&amp;amp;p=186198&amp;amp;#entry186198 _FileCopy]... By Jos&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q6_1.jpg|center|Copy progress dialog by ezztabi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make a hotkey that only works in my GUI?==&lt;br /&gt;
It used to be quite tedious setting hotkeys to only work in your GUI.  Now there is an easier way with the function GUISetAccelerators.&lt;br /&gt;
&lt;br /&gt;
(From Helpfile example)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; A simple custom messagebox that uses the MessageLoop mode&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Custom Msgbox&amp;quot;, 210, 80)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Please click a button!&amp;quot;, 10, 10)&lt;br /&gt;
$YesID = GUICtrlCreateButton(&amp;quot;Yes&amp;quot;, 10, 50, 50, 20)&lt;br /&gt;
$NoID = GUICtrlCreateButton(&amp;quot;No&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$ExitID = GUICtrlCreateButton(&amp;quot;Exit&amp;quot;, 150, 50, 50, 20)&lt;br /&gt;
&lt;br /&gt;
; Set accelerators for Ctrl+y and Ctrl+n&lt;br /&gt;
Dim $AccelKeys[2][2]=[[&amp;quot;^y&amp;quot;, $YesID], [&amp;quot;^n&amp;quot;, $NoID]]&lt;br /&gt;
GUISetAccelerators($AccelKeys)&lt;br /&gt;
&lt;br /&gt;
GUISetState(); display the GUI&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
	$msg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case $msg = $YesID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		Case $msg = $NoID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;No&amp;quot;)&lt;br /&gt;
		Case $msg = $ExitID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Exit&amp;quot;)&lt;br /&gt;
		Case $msg = $GUI_EVENT_CLOSE&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Close&amp;quot;)&lt;br /&gt;
	EndSelect&lt;br /&gt;
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I perform an action while a key is held down?==&lt;br /&gt;
You can use the _IsPressed() function to determine when a key is held down. The values that can be specified in this function are listed in the AutoIt Help File under User Defined Functions -&amp;gt; Misc Management -&amp;gt; _IsPressed. The following example will press the left mouse button while the k key is held down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
$pressed = 0&lt;br /&gt;
While 1&lt;br /&gt;
	If _IsPressed(&amp;quot;4B&amp;quot;) Then&lt;br /&gt;
		If Not $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;K Key being held down&amp;quot;)&lt;br /&gt;
			MouseDown(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 1&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		If $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;&amp;quot;)&lt;br /&gt;
			MouseUp(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 0&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(250)&lt;br /&gt;
WEnd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I run my script on a remote computer over the network?==&lt;br /&gt;
The answer to this question depends on how much experience you have in networking. If the target system is a Windows system to which you have administrator access then you may use one of the following programs:&lt;br /&gt;
&lt;br /&gt;
* PsExec from SysInternals&lt;br /&gt;
* BeyondExec from BeyondLogic&lt;br /&gt;
&lt;br /&gt;
With either of these programs it is possible to launch any process on a remote system and even copy your script to the target computer before starting it. Neither these programs nor any others will work with Windows XP Home Edition unless you create a custom &amp;quot;command listener&amp;quot; that you manually install on the target system.&lt;br /&gt;
&lt;br /&gt;
NOTE: Those of you with more advanced programming skills and a little imagination can figure out how to use the service control libraries and srvany.exe to do this same thing without either of the above mentioned programs.&lt;br /&gt;
&lt;br /&gt;
==How can I make a User Defined Function with optional parameters like the ones I see in the Help File?==&lt;br /&gt;
You can specify optional parameters by giving them a default value in the Func declaration. An example of how this is done:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Func testme($param1, $param2 = &amp;quot;nothing&amp;quot;, $param3 = 5)&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;&amp;quot;, &amp;quot;Parameter one is required. The value of Parameter 1 is &amp;quot; &amp;amp; $param1 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 2 is optional. The value of Parameter 2 is &amp;quot; &amp;amp; $param2 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 3 is optional. The value of Parameter 3 is &amp;quot; &amp;amp; $param3)&lt;br /&gt;
EndFunc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If testme() is called with only one parameter [I.E. testme(&amp;quot;test&amp;quot;)] then the output is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
However, if the function is called with more than one parameter like this testme(&amp;quot;test&amp;quot;, &amp;quot;something&amp;quot;), then the output is&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is something&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make my script start every time windows starts?==&lt;br /&gt;
You can use one of the following codes to allow your script to start with Windows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&amp;quot;, &amp;quot;MyProgramName&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;FileCreateShortcut(@ScriptFullPath, @StartupCommonDir &amp;amp; &amp;quot;\MyProgramName.lnk&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or place a Shortcut in the Startup folder, or the entire Executable.  For Win8+ systems, use the Win+R keys to open a Run box, then &amp;quot;Shell:Startup&amp;quot; to access the Startup folder. Due to Windows User Account Control (UAC) restrictions, your script may require [https://www.autoitscript.com/autoit3/docs/keywords/RequireAdmin.htm #RequireAdmin].&lt;br /&gt;
&lt;br /&gt;
==How can I have the script delete itself?==&lt;br /&gt;
The following function will delete the running script or .exe once it has finished execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: Make a copy of your script before calling this function!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _SelfDelete($iDelay = 0)&lt;br /&gt;
	Local $sCmdFile&lt;br /&gt;
	FileDelete(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;)&lt;br /&gt;
	$sCmdFile = &#039;ping -n &#039; &amp;amp; $iDelay &amp;amp; &#039; 127.0.0.1 &amp;gt; nul&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;:loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot;&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;if exist &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; goto loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del %0&#039;&lt;br /&gt;
	FileWrite(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, $sCmdFile)&lt;br /&gt;
	Run(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, @TempDir, @SW_HIDE)&lt;br /&gt;
EndFunc;==&amp;gt;_SelfDelete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I create a clickable website hyperlink in my gui?==&lt;br /&gt;
[[File:FAQ_Q13_1.jpg|center|Example GUI using Gary&#039;s UDF.]]&lt;br /&gt;
&lt;br /&gt;
Gary Frost has made great advances in this area and has provided a [http://www.autoitscript.com/forum/index.php?showtopic=23111&amp;amp;st=0 UDF here] (&#039;&#039;&#039;the UDF was removed from the post&#039;&#039;&#039;) to help with doing this.&lt;br /&gt;
&lt;br /&gt;
==How can I change the screen resolution / refresh rate / color depth?==&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=20121 ChangeResolution.au3] is a library function created to make changes to these settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I get the screen resolution in multiple monitor setups?==&lt;br /&gt;
The following code was worked out by Larry to determine the total screen resolution of multiple monitors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$aTSR = _GetTotalScreenResolution()&lt;br /&gt;
MsgBox($MB_OK, &amp;quot;Total Screen Resolution&amp;quot;, &amp;quot;Width = &amp;quot; &amp;amp; $aTSR[0] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Height = &amp;quot; &amp;amp; $aTSR[1])&lt;br /&gt;
&lt;br /&gt;
;Original code by Larry.&lt;br /&gt;
;Edited by BrettF&lt;br /&gt;
Func _GetTotalScreenResolution()&lt;br /&gt;
	Local $aRet[2]&lt;br /&gt;
	Global Const $SM_VIRTUALWIDTH = 78&lt;br /&gt;
	Global Const $SM_VIRTUALHEIGHT = 79&lt;br /&gt;
	$VirtualDesktopWidth = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALWIDTH)&lt;br /&gt;
	$aRet[0] = $VirtualDesktopWidth[0]&lt;br /&gt;
	$VirtualDesktopHeight = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALHEIGHT)&lt;br /&gt;
	$aRet[1] = $VirtualDesktopHeight[0]&lt;br /&gt;
	Return $aRet&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  How can I register a file type with my program [or] How can I make files with a certain extension open in my program?==&lt;br /&gt;
[[File:FAQ_Q16_1.jpg|center|Example of how a file type can be registered.]]&lt;br /&gt;
File registration can be a tricky business for those who have not done it before. The first thing to be done is to modify your script to allow it to accept files from the command line. Here is one example of how to do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;$cmdline[0] is the number of parameters passed&lt;br /&gt;
If $cmdline[0] &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
	$filename = $cmdline[1]&lt;br /&gt;
;Do something with the file here&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;The file name passed to the command line is &amp;quot;&#039; &amp;amp; $filename &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
Else&lt;br /&gt;
; We did not get any command line parameters.&lt;br /&gt;
; If this is a command line only program, you would want to&lt;br /&gt;
; alert the user that the command line parameters were incorrect.&lt;br /&gt;
; If this is a GUI program (like a notepad program), you would&lt;br /&gt;
; want to simply continue from here without opening a file.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;Command line parameters incorrect.&#039; &amp;amp; @CRLF &amp;amp; &#039;Command line usage: &amp;quot;&#039; &amp;amp; @ScriptName &amp;amp; &#039;&amp;quot; &amp;quot;file to process&amp;quot;&#039;)&lt;br /&gt;
 EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After your script is ready to accept files, you can begin to register the file type you need with your program. To prevent errors, this-is-me has created a UDF that will allow you to do this easily:&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to register and unregister a file extension using this UDF:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;quot;FileRegister.au3&amp;quot;&lt;br /&gt;
;================================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileRegister($ext, $cmd, $verb [, $def [, $icon = &amp;quot;&amp;quot; [, $desc = &amp;quot;&amp;quot; ]]])&lt;br /&gt;
;			   Registers a file type in Explorer&lt;br /&gt;
;&lt;br /&gt;
; Parameter(s): $ext -  File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;		$cmd -  Program path with arguments eg. &#039;&amp;quot;C:\test\testprog.exe&amp;quot; &amp;quot;%1&amp;quot;&#039;&lt;br /&gt;
;			 (%1 is 1st argument, %2 is 2nd, etc.)&lt;br /&gt;
;		$verb - Name of action to perform on file&lt;br /&gt;
;			 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;		$def -  Action is the default action for this filetype&lt;br /&gt;
;			 (1 for true 0 for false)&lt;br /&gt;
;			 If the file is not already associated, this will be the default.&lt;br /&gt;
;		$icon - Default icon for filetype including resource # if needed&lt;br /&gt;
;			 eg. &amp;quot;C:\test\testprog.exe,0&amp;quot; or &amp;quot;C:\test\filetype.ico&amp;quot;&lt;br /&gt;
;		$desc - File Description eg. &amp;quot;Zip File&amp;quot; or &amp;quot;ProgramName Document&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;================================================&lt;br /&gt;
&lt;br /&gt;
 FileRegister(&amp;quot;uxy&amp;quot;, &#039;&amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; &amp;quot;%1&amp;quot;&#039;, &amp;quot;Open in UXYFixer&amp;quot;, 1, @ScriptFullPath &amp;amp; &#039;,0&#039;, &amp;quot;UXYFixer Document&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;========================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileUnRegister($ext, $verb)&lt;br /&gt;
;			   UnRegisters a verb for a file type in Explorer&lt;br /&gt;
; Parameter(s):  $ext - File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;			   $verb - Name of file action to remove&lt;br /&gt;
;					 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;========================================&lt;br /&gt;
&lt;br /&gt;
 FileUnRegister(&amp;quot;uxy&amp;quot;, &amp;quot;Open in UXYFixer&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download here:&#039;&#039;&#039;&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=26378 FileRegister.au3]&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my combobox (GUICtrlCreateCombo) show a dropdown list when clicked?==&lt;br /&gt;
When using GUICtrlCreateCombo be sure to enter the desired height for your combobox list in the &amp;quot;height&amp;quot; parameter. Windows XP automatically selects an appropriate height for combo boxes, but other versions of Windows usually do not.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,20)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Would correctly be changed to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,200)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why isn&#039;t my thread getting any replies?==&lt;br /&gt;
&lt;br /&gt;
=== Asking the right question right ===&lt;br /&gt;
Did you give a good description of the problem? If your title or explanation of the issue is not descriptive, users are likely to bypass your issue instead of helping. Post titles such as &amp;quot;Help Me&amp;quot;, &amp;quot;I Have A Problem&amp;quot;, &amp;quot;Question&amp;quot;, &amp;quot;Help me fix my code&amp;quot;, &amp;quot;This code doesn&#039;t work&amp;quot; or similarly worded titles will not readily draw forum users to your post. Experienced users (which are your best hope of resolving the issue) will often skip your post altogether in cases like this. An example of a post title descriptive enough to attract users to assist you is &amp;quot;Problem with WinWaitClose&amp;quot; or &amp;quot;Loop never ends&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Example for reproduction ===&lt;br /&gt;
Did you post example code? If you have not posted an example of the code you are having an issue with, then you will not recieve support. When posting a non-working script, please do so in the smallest amount of stand-alone code possible. If the code you post cannot run by itself on another person&#039;s computer, they will not be able to recreate the issue.&lt;br /&gt;
&lt;br /&gt;
=== Information about Environment ===&lt;br /&gt;
Did you provide any information about your AutoIt Development Environment ? &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
; Version: 1.00. AutoIt: V3.3.8.1&lt;br /&gt;
; Retrieve the recommended information of the current system when posting a support question.&lt;br /&gt;
Local $sSystemInfo = &#039;I have a valid AutoIt support question and kindly provided the details of my system:&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;AutoIt Version: V&#039; &amp;amp; @AutoItVersion &amp;amp; &#039; [&#039; &amp;amp; (@AutoItX64 ?&#039;X64&#039;:&#039;X32&#039;) &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Windows Version: &#039; &amp;amp; @OSVersion &amp;amp; &#039; [&#039; &amp;amp; @OSArch &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Language: &#039; &amp;amp; _GetOSLanguage() &amp;amp; &#039; (&#039; &amp;amp; @OSLang &amp;amp; &#039;)&#039; &amp;amp; @CRLF &amp;amp; @CRLF&lt;br /&gt;
ClipPut($sSystemInfo)&lt;br /&gt;
MsgBox(4096, &#039;This info has been copied to the clipboard. Use Ctrl + V to retrieve it.&#039;, $sSystemInfo)&lt;br /&gt;
&lt;br /&gt;
Func _GetOSLanguage()&lt;br /&gt;
     Local $aString[20] = [19, &amp;quot;0409 0809 0C09 1009 1409 1809 1C09 2009 2409 2809 2C09 3009 3409&amp;quot;, &amp;quot;0404 0804 0C04 1004 0406&amp;quot;, &amp;quot;0406&amp;quot;, &amp;quot;0413 0813&amp;quot;, &amp;quot;0425&amp;quot;, _&lt;br /&gt;
               &amp;quot;040B&amp;quot;, &amp;quot;040C 080C 0C0C 100C 140C 180C&amp;quot;, &amp;quot;0407 0807 0C07 1007 1407&amp;quot;, &amp;quot;040E&amp;quot;, &amp;quot;0410 0810&amp;quot;, _&lt;br /&gt;
               &amp;quot;0411&amp;quot;, &amp;quot;0414 0814&amp;quot;, &amp;quot;0415&amp;quot;, &amp;quot;0416 0816&amp;quot;, &amp;quot;0418&amp;quot;, _&lt;br /&gt;
               &amp;quot;0419&amp;quot;, &amp;quot;081A 0C1A&amp;quot;, &amp;quot;040A 080A 0C0A 100A 140A 180A 1C0A 200A 240A 280A 2C0A 300A 340A 380A 3C0A 400A 440A 480A 4C0A 500A&amp;quot;, &amp;quot;041D 081D&amp;quot;]&lt;br /&gt;
     Local $aLanguage[20] = [19, &amp;quot;English&amp;quot;, &amp;quot;Chinese&amp;quot;, &amp;quot;Danish&amp;quot;, &amp;quot;Dutch&amp;quot;, &amp;quot;Estonian&amp;quot;, &amp;quot;Finnish&amp;quot;, &amp;quot;French&amp;quot;, &amp;quot;German&amp;quot;, &amp;quot;Hungarian&amp;quot;, &amp;quot;Italian&amp;quot;, _&lt;br /&gt;
               &amp;quot;Japanese&amp;quot;, &amp;quot;Norwegian&amp;quot;, &amp;quot;Polish&amp;quot;, &amp;quot;Portuguese&amp;quot;, &amp;quot;Romanian&amp;quot;, &amp;quot;Russian&amp;quot;, &amp;quot;Serbian&amp;quot;, &amp;quot;Spanish&amp;quot;, &amp;quot;Swedish&amp;quot;]&lt;br /&gt;
     For $i = 1 To $aString[0]&lt;br /&gt;
          If StringInStr($aString[$i], @OSLang) Then&lt;br /&gt;
               Return $aLanguage[$i]&lt;br /&gt;
          EndIf&lt;br /&gt;
     Next&lt;br /&gt;
     Return $aLanguage[1]&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetOSLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Speak English and speak it right ===&lt;br /&gt;
Did you use proper English? Here are guidelines for posting properly in the English language:&lt;br /&gt;
* Use proper case.  THIS IS CONSIDERED YELLING. If you post in ALL UPPERCASE or all lowercase then you will not be taken seriously.&lt;br /&gt;
* Use proper punctuation. Complete sentences need only one trailing punctuation mark. Twelve exclamation points after every sentence &amp;lt;b&amp;gt;will not&amp;lt;/b&amp;gt; get you an answer more quickly (just the opposite) Writing a sentence without simple punctuation such as commas reflects badly on your attention to detail, and is considered a good judge of the poster&#039;s coding style. If you cannot summon the intellect to write a sentence with correct punctuation, you will most likely miss simple coding mistakes such as unterminated quotes.&lt;br /&gt;
&lt;br /&gt;
=== Breaking forum rules, law, modesty, or common sense ===&lt;br /&gt;
Show common sense by following the forum rules, http://www.autoitscript.com/forum/topic/169097-forum-rules/, as well as generally accepted forum etiquette. Repeated failure to do so will result in sanctions by the Moderation team as it ruins the experience for everyone.&lt;br /&gt;
&lt;br /&gt;
==Why does the Ctrl key get stuck down after I run my script?==&lt;br /&gt;
&lt;br /&gt;
=== Keys virtually stuck ===&lt;br /&gt;
It could equally be the Shift or the Alt key.&lt;br /&gt;
&lt;br /&gt;
If you use Send in a script and you have a problem with keys being stuck down then Send is the most likely culprit. A similar problem can occur with BlockInput. The solution is generally quite simple. If there is a key like Shift or Alt held down at the start of the Send sequence, but that key is released by the time the Send sequence finishes then the key will get &#039;stuck&#039; down. As an example of a solution, you could replace the Send function in your script with the _SendEx function below.&lt;br /&gt;
&lt;br /&gt;
The _SendEx function waits for the Shift, Alt and Ctrl keys to be released or pops up a warning if the $warn parameter is not an empty string. Therefore it is not intended to be used when one of these modifier keys has been set to be down using any combination of {ALTDOWN}, {SHIFTDOWN} and {ALTDOWN}.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt; Misc.au3 &amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
;Send the string $ss after the Shift Alt and Ctrl keys are released. Optionally give a warning after 1 sec if any of those keys are still down.&lt;br /&gt;
;Requires misc.au3 to be included in the script for the _IsPressed function.&lt;br /&gt;
&lt;br /&gt;
Func _SendEx($ss, $warn = &amp;quot;&amp;quot;)&lt;br /&gt;
	Local $iT = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	While _IsPressed(&amp;quot;10&amp;quot;) Or _IsPressed(&amp;quot;11&amp;quot;) Or _IsPressed(&amp;quot;12&amp;quot;)&lt;br /&gt;
		If $warn &amp;lt;&amp;gt; &amp;quot;&amp;quot; And TimerDiff($iT) &amp;gt; 1000 Then&lt;br /&gt;
			MsgBox($MB_TOPMOST, &amp;quot;Warning&amp;quot;, $warn)&lt;br /&gt;
		EndIf&lt;br /&gt;
		Sleep(50)&lt;br /&gt;
	WEnd&lt;br /&gt;
	Send($ss)&lt;br /&gt;
EndFunc;==&amp;gt;_SendEx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General unstuck method ===&lt;br /&gt;
Shilbiz also discovered that the following can &#039;clear&#039; locked down keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt; ControlSend(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;text&amp;quot;, 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use Pixel functions?==&lt;br /&gt;
&lt;br /&gt;
=== Using a color change as an event ===&lt;br /&gt;
The following is an example of using the pixel to check if the colour has changed in a specific region.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $PixelCheck = 0, $NewCheck&lt;br /&gt;
$PixelCheck = PixelCheckSum(40, 50, 60, 70); Get the checksum for this area.&lt;br /&gt;
While 1; Keep going&lt;br /&gt;
	$NewCheck = PixelCheckSum(40, 50, 60, 70)&lt;br /&gt;
	If $PixelCheck &amp;lt;&amp;gt; $NewCheck Then&lt;br /&gt;
		; The old pixel checksum and the new one are different.&lt;br /&gt;
		$PixelCheck = $NewCheck; Update the $PixelCheck to the new value&lt;br /&gt;
		; Let us know it has changed.  Change this to what you want to happen when the colour in the region changes.&lt;br /&gt;
		Msgbox($MB_ICONWARNING,&amp;quot;PixelChecksum&amp;quot;,&amp;quot;Pixel region has changed !&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(50); Just to give the CPU a bit of a break.&lt;br /&gt;
Wend&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Searching for a specific pixel color ===&lt;br /&gt;
This is an example of searching for a specific pixel (red), both pure red (0xFF0000) and red in a few different shades.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
; Find a pure red pixel in the range 0,0-20,300&lt;br /&gt;
&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Find a pure red pixel or a red pixel within 10 shades variations of pure red&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my script work on a locked workstation?==&lt;br /&gt;
On a locked station any window will never be active (active is only dialog with text &amp;quot;Press Ctrl+Alt+Del&amp;quot;).  In Windows locked state applications run hidden (behind that visible dialog) and do not have focus and active status.  So generally don&#039;t use Send() MouseClick() WinActivate() WinWaitActive() WinActive() etc.  Instead use ControlSend() ControlSetText() ControlClick() WinWait() WinExists() WinMenuSelectItem() etc.  Doing so allows you to interact with an application regardless of whether it is active or not. It&#039;s possible to run such a script from scheduler on locked Windows stations.&lt;br /&gt;
&lt;br /&gt;
==Where can I learn AutoIt? Are there any tutorials?==&lt;br /&gt;
AutoIt is a constantly growing and evolving language with a diverse and engaged community of volunteers. This wiki, along with the official forum, will always be your best place for answers to questions as well as examples and tutorials. With this in mind, below are a few resources that can also help you as you become familiar with the language:&lt;br /&gt;
&lt;br /&gt;
AutoIt 1-2-3, an interactive classroom by Valuater:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=21048 http://www.autoitscript.com/forum/index.php?showtopic=21048]&lt;br /&gt;
&lt;br /&gt;
BrettF&#039;s updated AutoIt tutorial:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=84960 http://www.autoitscript.com/forum/index.php?showtopic=84960]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Learn To Program Using FREE Tools with AutoIt&amp;quot; PDF Book by Jfish&lt;br /&gt;
[https://www.autoitscript.com/forum/files/file/351-learn-to-program-using-free-tools-with-autoit/ Learn To Program Using FREE Tools with AutoIt]&lt;br /&gt;
&lt;br /&gt;
YouTube has a number of videos available:&lt;br /&gt;
[http://www.youtube.com/results?search_query=autoit+tutorial&amp;amp;search_type=&amp;amp;aq=0&amp;amp;oq=AutoIt YouTube AutoIt tutorials list]&lt;br /&gt;
&lt;br /&gt;
As always, when asking questions about a video or script you saw on an external source, please ensure you are adhering to the [[FAQ#Breaking_forum_rules.2C_law.2C_modesty.2C_or_common_Sense|forum rules]].&lt;br /&gt;
&lt;br /&gt;
==Why does my script no longer decompile?==&lt;br /&gt;
Decompilation is no longer supported, and is only available for the older versions of AutoIt (Version 3.2.5.1 and earlier compiled scripts).&lt;br /&gt;
&lt;br /&gt;
Please &#039;&#039;&#039;do not&#039;&#039;&#039; post on this topic; see the [[Decompiling FAQ]] for more information. Topics discussing decompilation of scripts will be locked immediately. Posting the source of a decompiled script with lead to immediate sanctions from the Moderation team, as it directly violates AutoIt EULA (End-User-License-Agreement).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt;You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.&amp;lt;/i&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I get a window handle when all I have is a PID?==&lt;br /&gt;
Refer to the following example showing converting and use when manipulating the window. The function is based on work by Smoke_N/Hubertus and Helge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Run process&lt;br /&gt;
$iPID = Run(&amp;quot;Notepad.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;Allow window to initialize...&lt;br /&gt;
Sleep (500)&lt;br /&gt;
&lt;br /&gt;
;Get HWND.&lt;br /&gt;
$hWnd = _GetHwndFromPID($iPID)&lt;br /&gt;
&lt;br /&gt;
;Maximize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MAXIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Minimize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MINIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Restore window&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_RESTORE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Move top left corner of screen, and resize to 800x600&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, 0, 0, 800, 600)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Calculate Center of screen.&lt;br /&gt;
$x = (@DesktopWidth / 2) - 400; Desktop width divided by 2, then minus half the width of the window&lt;br /&gt;
$y = (@DesktopHeight / 2) - 300; Desktop height divided by 2, then minus half the height of the window&lt;br /&gt;
&lt;br /&gt;
;Move to center of screen&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, $x, $y)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Close notepad&lt;br /&gt;
WinClose($hWnd)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Function for getting HWND from PID&lt;br /&gt;
Func _GetHwndFromPID($PID)&lt;br /&gt;
	$hWnd = 0&lt;br /&gt;
	$winlist = WinList()&lt;br /&gt;
	Do&lt;br /&gt;
		For $i = 1 To $winlist[0][0]&lt;br /&gt;
			If $winlist[$i][0] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$iPID2 = WinGetProcess($winlist[$i][1])&lt;br /&gt;
				If $iPID2 = $PID Then&lt;br /&gt;
					$hWnd = $winlist[$i][1]&lt;br /&gt;
					ExitLoop&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	Until $hWnd &amp;lt;&amp;gt; 0&lt;br /&gt;
	Return $hWnd&lt;br /&gt;
EndFunc;==&amp;gt;_GetHwndFromPID&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use single or double quotes in strings?==&lt;br /&gt;
It is a fairly simple concept once you get the basics down.  Basically there are a few different ways to go about mixing quotes in strings.&lt;br /&gt;
&lt;br /&gt;
A string in AutoIt can be encased in either single(&#039;) or double (&amp;quot;) quotes.  So if you want to add only one type of quote into your string, your first port of call is to use the other type of quote to encase the string.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &amp;quot;I am a &#039;quote&#039; inside the string&amp;quot;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&lt;br /&gt;
$var = &#039;I wish I could be a &amp;quot;quote&amp;quot; inside the string!&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have to have both types of quotes in the string, the easiest way is to escape the quote ending the string as so to speak.  To do this, use two quotes instead of one.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &#039;I am a single &#039;&#039;quote&#039;&#039; inside the string made using &amp;quot;single quote!&amp;quot;&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==When should I bump my threads?==&lt;br /&gt;
As a courtesy to other users you should only bump your post once in a 24 hour period.  Doing this allows all users the chance to get helped equally.  Also refer to [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;view=findpost&amp;amp;p=688050 Why isn&#039;t my thread getting any replies?], as this will help you get replies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I protect my code from decompilation?==&lt;br /&gt;
The fact of the matter is &#039;&#039;&#039;you can&#039;t fully protect your code&#039;&#039;&#039;.  AutoIt is an  interpreted language, so all scripts are interpreted, and that script has to get stored somewhere.  There is still hope though.  You can take certain measures to make the decompiled code less usable to the person that decompiled it.  The first step is to obfuscate your code.  This causes the code to become less readable.  Basically variables and functions are renamed, making it very hard to make head or tail of what is what.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Decompiling FAQ]] for more information.&lt;br /&gt;
&lt;br /&gt;
==How can I decompile my AutoIt EXEs?==&lt;br /&gt;
You cannot decompile your AutoIt compiled scripts unless it was compiled with AutoIt 3.2.5.1 or earlier.&lt;br /&gt;
&lt;br /&gt;
In order to be able to recover your script from the compiled executable, you can use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Original Author SmokeN&lt;br /&gt;
If $CMDLINE[0] Then&lt;br /&gt;
	If $CMDLINE[1] == &amp;quot;/SOURCE&amp;quot; AND $CMDLINE[2] == &amp;quot;MYPASSWORD&amp;quot; Then&lt;br /&gt;
		FileInstall(&amp;quot;ThisSCript.au3&amp;quot;, @ScriptDir &amp;amp; &amp;quot;\DecompiledScript.au3&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then if you run the compiled script with the following command line parameters your source will be extracted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;myscript.exe /SOURCE MYPASSWORD&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What is proper forum etiquette?  What rules are there for the forum?==&lt;br /&gt;
Proper forum etiquette will ensure you will stay a member of these forums.  So try to follow these rules.  Also see this [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;st=15&amp;amp;p=688050&amp;amp;#entry688050 FAQ post], as you should follow what is outlined there as well.&lt;br /&gt;
&lt;br /&gt;
* Use proper English.  MSN speak and the like makes it very hard to understand what you want.  Keep posts in proper case because UPPERCASE is considered yelling and lowercase makes you look stupid.  Don&#039;t use more punctuation marks than necessary. For example ?!!!? and ????? is completely unnecessary.&lt;br /&gt;
* Before posting help with a script, make sure you follow these steps:&lt;br /&gt;
*# Search for your issue.&lt;br /&gt;
*#* There are many thousands of posts on this forum, and chances are your question has been asked before.  Make sure to use a variety of terms to maximize your results.&lt;br /&gt;
*# Read the helpfile&lt;br /&gt;
*#* Most if not all things in the help file will have an example (native functions) or two.  Give them a go to try see how the functions work.  Most of the time it helps!&lt;br /&gt;
*# Give it a go&lt;br /&gt;
*#* Seriously, if you can&#039;t be bothered to give it a go, then why should we be bothered to help you?  If you feel you can&#039;t do it and you don&#039;t try then how will you ever know?  We always prefer that you give it a go because you can learn from your mistakes and hopefully understand it better.&lt;br /&gt;
*# Post your problem&lt;br /&gt;
*#* Make sure you post in the correct forum.&lt;br /&gt;
*#** &amp;lt;b&amp;gt;AutoIt Specific&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/2-autoit-general-help-and-support/ General Help and Support] (Most support questions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/10-autoit-gui-help-and-support/ GUI Support] (Support for the Graphical User Interface)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/14-autoitx-help-and-support/ AutoItX Support] (Support for the COM, DLL, PowerShell and .NET add-ons for AutoIt)&lt;br /&gt;
*#** &amp;lt;b&amp;gt;Non-AutoIt&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** Chat&lt;br /&gt;
*#*** Developer Chat&lt;br /&gt;
*#* Include a detailed description in the content of the post, and a detailed title&lt;br /&gt;
*#** Titles such as &#039;Help&#039; and &#039;What&#039;s wrong?&#039; are not acceptable.  To get the most help with your problem, be as descriptive as you can in the title, but keep in mind your title cannot be too long.&lt;br /&gt;
*#** Make sure you also include a descriptive question.  Just saying &#039;what is wrong with the following&#039; is also not acceptable, as we will have no idea what the problem is.  Describe what you think is wrong and what is not working.  It makes our job easier.&lt;br /&gt;
*#* Always include your code&lt;br /&gt;
*#** It shows us that you have tried and gives us a head start with something to play with.&lt;br /&gt;
* Usually asking for a script is not taken too well, within reason.  Keep in mind that this is a support forum, so please acknowledge that. We are here to help you with your scripts, not to spoon-feed code to you.  If you do need something written for you, maybe try  [http://www.rentacoder.com/ RentACoder], as they are more suited to requests.&lt;br /&gt;
* Don&#039;t PM other members asking for them to look at threads of to help you unless they request it.  It is actually quite rude and annoying to receive PMs of that nature.&lt;br /&gt;
* Lurk a little before you dive right in. Read a number of posts, or check out the group&#039;s archives. Get a feel for the tone of the forum so you can participate accordingly.&lt;br /&gt;
* Say online exactly what you would say in person. In other words, if you wouldn&#039;t say it to the person&#039;s face in front of your Grandmother, you shouldn&#039;t type it here.&lt;br /&gt;
* Remember your face doesn&#039;t show. Words alone can convey sentiment, but without benefit of inflection or facial expression, they can be misconstrued. Use descriptive wording, emoticons or .gifs to ensure your meaning is clear. By the same token, don&#039;t jump to conclusions about another person&#039;s intent in posting an unclear comment. When in doubt, ask for clarification.&lt;br /&gt;
* Be respectful. Internet etiquette is similar to standard etiquette in this area. Appreciate that your opinion is one of many. You can disagree with another person without being disrespectful or rude to other people.&lt;br /&gt;
* Ignore Trolls. If you engage in conversation with one, you&#039;ll raise your blood pressure and empower the troll. You can&#039;t win a flame war, and you can&#039;t sway a troll&#039;s opinion. Often, they don&#039;t even care about the subject.  They live for the conflict and nothing more. Trolls are common and not worthy of your time. Ignore their posts no matter how inflammatory and eventually they&#039;ll get bored and move on.&lt;br /&gt;
* When you have found an answer for your question:&lt;br /&gt;
*# Do not edit your post to be blank or to have worthless information.  People may be searching for the same issue you have, so be courteous to them by leaving your question there.&lt;br /&gt;
*# It is also optional to add the word [SOLVED] into the title, as well as selecting the post that best answered your question. It can make the lives of people searching easier.&lt;br /&gt;
* Finally follow the rules:&lt;br /&gt;
** [http://www.autoitscript.com/forum/topic/169097-forum-rules/ Forum rules]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=54168 Rules for the Chat forum]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=65889 Rules for asking for source code]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=37739 General policies and forum settings]&lt;br /&gt;
&lt;br /&gt;
Some general points taken from [http://www.ehow.com/how_2106033_use-proper-forum-etiquette.html here].&lt;br /&gt;
&lt;br /&gt;
==Are there forums available in my local language?==&lt;br /&gt;
Yes there are some available.  Some forum members here participate in multiple forums.&lt;br /&gt;
* [http://www.autoit.de/ German Forums]&lt;br /&gt;
* [http://www.autoit.fr/  French Forums]&lt;br /&gt;
* [http://www.autoit.es/ Spanish Forums]&lt;br /&gt;
* [http://autoit-script.ru/ Russian Forums]&lt;br /&gt;
* [http://forum.autoitbrasil.com/ Portuguese Forums]&lt;br /&gt;
&lt;br /&gt;
Please note that these are independent, community-run message boards and not just a translation of this board.&lt;br /&gt;
&lt;br /&gt;
==How can I control (click, edit etc) an external (html) application?==&lt;br /&gt;
You can use the control* functions of autoit see helpfile&lt;br /&gt;
of use specific udf libraries&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ IUIAutomation for multiple applications]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/154439-chrome-udf/ chrome chrome.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/149526-librariesieau3/ Internet explorer ie.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ firefox ff.au3] (End of life)&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy/ java]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?&amp;amp;q=Selenium Selenium]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/191990-webdriver-udf-w3c-compliant-version/ WebDriver UDF (IE, Chrome, FireFox)]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should use spy applications to identify objects like&lt;br /&gt;
* au3inf part of AutoIT&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ simplespy in the zip]&lt;br /&gt;
* jabsimplespy in examples section of the AutoIt forum&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/126716-control-viewer-autoit-window-info-tool/ control viewer]&lt;br /&gt;
* inspect as part of windows SDK&lt;br /&gt;
* VisualUIAVerifyNative.exe as part of windows SDK (8.1)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If above spy tools are not identifying your object you could try commercial tools (trials) like&lt;br /&gt;
* ranorex spy&lt;br /&gt;
* Testcomplete&lt;br /&gt;
* HP UFT&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And your last recognition can be bitmaps&lt;br /&gt;
* search for GDI&lt;br /&gt;
* search for findBMP&lt;br /&gt;
* search for imagesearch&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt support database connections, such as SQL?==&lt;br /&gt;
Yes! UDFs exist for several popular SQL solutions, including SQLite, Firebird, MySQL, MSSQL and ODBC connections for PostGreSQL and others.&lt;br /&gt;
&lt;br /&gt;
For an illustrative list, see this link:&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/wiki/User_Defined_Functions#Files.2C_Databases_and_web_connections Files, Databases and web connections]&lt;br /&gt;
&lt;br /&gt;
A DBF UDF also exists&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/145142-dbf-udf-dbase-database-read-and-write-with-dll/ DBF UDF dBase with DLL]&lt;br /&gt;
&lt;br /&gt;
==How can I include some files into my compiled Autoit&#039;s EXE?==&lt;br /&gt;
Use FileInstall() or ResourcesEx UDF from the forum Examples.  Additional resources can also be included at compile time, click the &amp;quot;Res Add Files&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
==How can I test if checkbox / radiobutton is checked?==&lt;br /&gt;
Use this small function: If IsChecked($checkbox1) Then ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Zedna&lt;br /&gt;
Func IsChecked($control)&lt;br /&gt;
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED&lt;br /&gt;
EndFunc   ;==&amp;gt;IsChecked&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use the {enter} key as a Tab?==&lt;br /&gt;
Use &lt;br /&gt;
[https://www.autoitscript.com/autoit3/docs/functions/GUISetAccelerators.htm Accelerator keys]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; by Melba23&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
&lt;br /&gt;
$cInput_1 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 10, 200, 20)&lt;br /&gt;
$cInput_2 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 50, 200, 20)&lt;br /&gt;
$cInput_3 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 90, 200, 20)&lt;br /&gt;
&lt;br /&gt;
$cButton_1 = GUICtrlCreateButton(&amp;quot;Button 1&amp;quot;, 250, 10, 80, 30)&lt;br /&gt;
$cButton_2 = GUICtrlCreateButton(&amp;quot;Button 2&amp;quot;, 250, 50, 80, 30)&lt;br /&gt;
$cButton_3 = GUICtrlCreateButton(&amp;quot;Button 3&amp;quot;, 250, 90, 80, 30)&lt;br /&gt;
&lt;br /&gt;
$cEnter = GUICtrlCreateDummy()&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Local $aAccelKeys[2][2] = [[&amp;quot;{ENTER}&amp;quot;, $cEnter], [&amp;quot;{TAB}&amp;quot;, $cEnter]] ; Make {TAB} an accelerator&lt;br /&gt;
GUISetAccelerators($aAccelKeys)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $cEnter&lt;br /&gt;
			Switch _WinAPI_GetFocus()&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_1)&lt;br /&gt;
					; Check the input content&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						; Correct so move to next input&lt;br /&gt;
						GUICtrlSetState($cInput_2, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
					; Not correct so stay in current input&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_2)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						GUICtrlSetState($cInput_3, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_3)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						ConsoleWrite(&amp;quot;End&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case Else&lt;br /&gt;
					GUISetAccelerators(0) ; Remove accelerator link&lt;br /&gt;
					ControlSend($hGUI, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;{TAB}&amp;quot;) ; Send {TAB} to the GUI&lt;br /&gt;
					GUISetAccelerators($aAccelKeys) ; Reset the accelerator&lt;br /&gt;
&lt;br /&gt;
			EndSwitch&lt;br /&gt;
	EndSwitch&lt;br /&gt;
&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func checkEntry()&lt;br /&gt;
&lt;br /&gt;
	; Random chance of correct answer or fail&lt;br /&gt;
	If Mod(@SEC, 2) = 0 Then&lt;br /&gt;
		MsgBox($MB_SYSTEMMODAL, &amp;quot;Test Fail&amp;quot;, &amp;quot;Press Enter to close this message box&amp;quot;)&lt;br /&gt;
		Return False&lt;br /&gt;
	EndIf&lt;br /&gt;
	Return True&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;checkEntry&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why are my number sort results wrong?==&lt;br /&gt;
AutoIt by default uses an alpha sort algorithm. This means that ABC is sorted correctly, but it sorts numbers as 1,10,2,22,3,31 where the user expects 1,2,3,10,22,31.&lt;br /&gt;
This can be remedied by using a custom sort function. An example of such a custom number sort by Valuater appears below.  Search the Forum for [https://www.autoitscript.com/forum/topic/95383-sorting-numbers/ Number Sort] and [https://www.autoitscript.com/forum/topic/83626-natural-order-string-comparison/ Natural Order String Comparison] &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Valuater&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$Array = StringSplit(&amp;quot;2,5,3,4,6,1,8,9,7&amp;quot;, &amp;quot;,&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
_ArraySortNum($Array)&lt;br /&gt;
&lt;br /&gt;
_ArrayDisplay($Array, &amp;quot;Sorted Array&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Func _ArraySortNum(ByRef $n_array, $i_descending = 0, $i_start = 1)&lt;br /&gt;
	Local $i_ub = UBound($n_array)&lt;br /&gt;
	For $i_count = $i_start To $i_ub - 2&lt;br /&gt;
		Local $i_se = $i_count&lt;br /&gt;
		If $i_descending Then&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;lt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;gt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
		Local $i_hld = $n_array[$i_count]&lt;br /&gt;
		$n_array[$i_count] = $n_array[$i_se]&lt;br /&gt;
		$n_array[$i_se] = $i_hld&lt;br /&gt;
	Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_ArraySortNum&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I include AutoIt functions in a C# / C++ / VB programme? AutoItX==&lt;br /&gt;
AutoIt is also supplied as 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;
[https://www.autoitscript.com/site/autoit/ Info on AutoItX] &lt;br /&gt;
&lt;br /&gt;
From AutoItX.chm:&lt;br /&gt;
AutoItX is a DLL version of AutoIt v3 that provides a subset of the features of AutoIt via an ActiveX/COM and DLL interface. This means that you can add AutoIt-like features to your favourite scripting and programming languages, e.g. VB, VBScript, Delphi, C, C++, Kixtart, and most other languages that support the use of DLLs.&lt;br /&gt;
&lt;br /&gt;
Here are some C++ source code samples from various projects by [https://www.autoitscript.com/forum/profile/1-jon/ Jon]. Most are free to use but check any license files that accompany the downloads for details.  All code was created in Microsoft Visual C (6 and 7) but most would probably compile under mingw32 as well.&lt;br /&gt;
[https://www.autoitscript.com/site/code/ Download C++ examples for AutoItX] &lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to regsvr it if you are using the c# library. The c# library uses the non-COM part of the DLL so it just needs to be in the same folder as the exe and add the assembly.dll to your project. From the documenation:&lt;br /&gt;
&lt;br /&gt;
Using the Assembly from VB/C# within in Visual Studio is very easy:&lt;br /&gt;
* Add a reference to AutoItX3.Assembly.dll to your project&lt;br /&gt;
* Add a using AutoIt; statement in the files you want to use AutoIt functions&lt;br /&gt;
* Distribute your final executable with the files AutoItX3.Assembly.dll, AutoItX3.dll, AutoItX3_x64.dll.&lt;br /&gt;
* Write code like this C# example:&lt;br /&gt;
    using AutoIt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Jon&lt;br /&gt;
   // Wow, this is C#!&lt;br /&gt;
    AutoItX.Run(&amp;quot;notepad.exe&amp;quot;);&lt;br /&gt;
    AutoItX.WinWaitActive(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.Send(&amp;quot;I&#039;m in notepad&amp;quot;);&lt;br /&gt;
    IntPtr winHandle = AutoItX.WinGetHandle(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.WinKill(winHandle);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the AutoItX Help File (included in the default AutoIt install):&lt;br /&gt;
AutoItX can be used as a standard DLL from any language capable of calling functions in external DLLs.&lt;br /&gt;
&lt;br /&gt;
The following files are provided to allow you to use the DLL in C++:&lt;br /&gt;
&lt;br /&gt;
* AutoItX3_DLL.h - C language header file showing the exported functions and parameters&lt;br /&gt;
* AutoItX3_DLL.lib - Microsoft format import library (x86)&lt;br /&gt;
* AutoItX3_x64_DLL.lib - Microsoft format import library (x64)&lt;br /&gt;
* AutoItX3.dll - The main AutoItX DLL (x86)&lt;br /&gt;
* AutoItX3_x64.dll - The main AutoItX DLL (x64)&lt;br /&gt;
&lt;br /&gt;
==How can I search an image in another image? ==&lt;br /&gt;
You can use the Pixel* functions of AutoIt. See the help file for more information and examples.&lt;br /&gt;
You can also use one of the UDFs below; most of which use GDI:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/158264-bmpsearch-search-for-bitmap-within-bitmap-assembly-version/ FASM example]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/140478-bitmap-processing-using-raw-code/ asm bitmap processing]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/66545-find-bmp-in-another-bmp-imagesearch/ find bitmap in bitmap]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?type=all&amp;amp;q=_GDIPlus_BitmapLockBits/ GDI bitmaps]&lt;br /&gt;
Other libraries can be found that make use of a specific external dll but those above are considered &amp;quot;native&amp;quot; as no external dlls are required.&lt;br /&gt;
&lt;br /&gt;
==Multithreading==&lt;br /&gt;
Multithreading basically is running multiple scripts/programs that have acces to the same variables, normally by sharing memory. &lt;br /&gt;
&lt;br /&gt;
The AutoIt language is not threadsafe and multithreading is firmly on the &amp;lt;b&amp;gt;NOT TO DO&amp;lt;/b&amp;gt; list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multitasking and Multi&amp;lt;i&amp;gt;processing&amp;lt;/i&amp;gt; are closely related, however, and multiple solutions have been explored:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25350-multithread/ Multithread technical discussion]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25494-threaded-dll-sample/ Multithread with external DLL]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/146794-multi-thread-autoit/ Multithread with external DLL 2]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/64390-how-to-multi-process-in-autoit/ Multi process]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/187334-using-net-libary-with-autoit-possible/ Using C# - Host .NET]&lt;br /&gt;
&lt;br /&gt;
==Test automation==&lt;br /&gt;
Many people are looking for freeware tools to do test automation and cannot afford the commercial tools like HP LeanFT, Ranorex, Squish etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
So how can AutoIt help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Out of the box install the base full zip package and start Scite.Exe as a simple IDE.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to do more these links will help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 31 for the basic stuff on which technologies are readable and which spying tools there are&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 38 for the bitmap stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/ Alternative project IDE]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/188158-net-common-language-runtime-clr-framework/ .NET stuff]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/84133-winhttp-functions/ WinHTTP]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/185401-restwhich-udf-to-use-webdriver-of-edge/ webdriver]&lt;br /&gt;
Android can be reached thru ADB and Webdriver&amp;lt;br /&amp;gt;&lt;br /&gt;
iOS is limited to normal webdriver stuff thru WinHTTP library. So most likely you have to install additional iOS webdriver solutions&amp;lt;br /&amp;gt;&lt;br /&gt;
And after reading FAQ just ask your questions in the support forum&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DPI Awareness==&lt;br /&gt;
The following few links are related to DPI Awareness :&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166479-writing-dpi-awareness-app-workaround/ Writing DPI Awareness App - workaround]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/182423-wrong-screen-resolution-displayed-by-autoit-macros/ Wrong Screen Resolution Displayed by Autoit Macros]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/192529-dpi-awareness-any-suggestion/ DPI Awareness - question]&lt;br /&gt;
&lt;br /&gt;
==AutoIt+SciTE Portable Developer Environment==&lt;br /&gt;
Recent discussion can be found here:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/119572-autoit3-portable/?do=findComment&amp;amp;comment=1391105 How to make AutoIt+SciTE portable ]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13855</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13855"/>
		<updated>2018-10-21T21:32:46Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Using more code to check @error value */ added example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of frequently asked questions asked on the forums.&lt;br /&gt;
&lt;br /&gt;
Other FAQs include:&lt;br /&gt;
* The one found in the [http://www.autoitscript.com/autoit3/docs/faq.htm AutoIt HelpFile].  Much of it is about the transition from V2 to V3, but most is still relevant and should be a port of call, as well as this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I debug my script?==&lt;br /&gt;
&lt;br /&gt;
=== In SciTE ===&lt;br /&gt;
This one has a myriad of answers, but the most effective is to begin by using the [http://www.autoitscript.com/autoit3/scite/ SciTE4AutoIt3 Editor] to create or edit scripts. This program is useful in debugging for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* Syntax highlighting allows for immediate viewing of any mistakes from unended script tags or quotes. This allows the scripter to visibly see the difference between the following portions of code.&lt;br /&gt;
[[File:FAQ_Q1_2.jpg|center|Incorrect code]]&lt;br /&gt;
And the correct version: &lt;br /&gt;
[[File:FAQ_Q1_3.jpg|center||Correct Code]]&lt;br /&gt;
* Global syntax check built directly into the tools menu allows you to check an entire script for problems all at once.&lt;br /&gt;
* Built-in code tidying program that correctly indents untidy code and repairs messy scripts to allow them to be more readable. It also corrects problems with incorrectly capitalised function names and variables.&lt;br /&gt;
* Per-line trace insertion allows you to log every line of code executed to debug errors.&lt;br /&gt;
* Debug MsgBoxes or ConsoleWrites are able to be added anywhere in the script directly from SciTE. ConsoleWrite lines are less intrusive and prevent the added annoyance to the user of MsgBoxes.&lt;br /&gt;
&lt;br /&gt;
You can also use AutoIt3Wrapper directive:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#AutoIt3Wrapper_Run_Debug_Mode=Y&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FAQ_Q1_4.jpg|center|Picture of SciTE4AutoIt3]]&lt;br /&gt;
&lt;br /&gt;
=== Using more code to check @error value ===&lt;br /&gt;
Nearly all functions will return something.  Most of the time when a function fails, it returns 0 and sets @error.  You can use this information not only to create scripts that handle for different errors but to debug and find out exactly why you are having problems.  Check the help file for specific functions and their return values.&lt;br /&gt;
&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;
	Local $aFileList = _FileListToArray(@ScriptDir, &#039;NOT_EXISTEN_FILE.TEST&#039;)&lt;br /&gt;
	If @error Then ; check if _FileListToArray() function return any error&lt;br /&gt;
		MsgBox($MB_ICONERROR, &#039;_FileListToArray&#039;, &#039;@error = &#039; &amp;amp; @error &amp;amp; @CRLF &amp;amp; &#039;@extended = &#039; &amp;amp; @extended) ; show error message&lt;br /&gt;
		Return ; return / exit from function to prevent unexpected further error&#039;s&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	For $iFile_idx = 1 To $aFileList[0]&lt;br /&gt;
		FileRead($aFileList[$iFile_idx])&lt;br /&gt;
		; any further code&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Via the Tray icon===&lt;br /&gt;
You can add this line at the top of your script (1 is on, 0 is off) to enable debugging from the tray icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;AutoItSetOption (&amp;quot;TrayIconDebug&amp;quot;, 1);0-off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then if you run the script (uncompiled as an AU3 file), you can mouse over the AutoIt icon in the system tray (down by the clock) to display debugging information.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_1.jpg|center|Example output for TrayIconDebug]]&lt;br /&gt;
&lt;br /&gt;
=== OutputDebugString native call ===&lt;br /&gt;
You can also debug a script on any computer by adding the following code to your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _MyDebug($sMessage, $iError = @error, $iExtended = @extended)&lt;br /&gt;
	If $iError Or $iExtended Then&lt;br /&gt;
		$sMessage &amp;amp;= &#039;[ @error = &#039; &amp;amp; $iError &amp;amp; &#039; @extended = &#039; &amp;amp; $iExtended &amp;amp; &#039; ]&#039;&lt;br /&gt;
	EndIf&lt;br /&gt;
	DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;OutputDebugString&amp;quot;, &amp;quot;str&amp;quot;, $sMessage)&lt;br /&gt;
	Return SetError($iError, $iExtended, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyDebug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then, when you need to add a debug line, call it as necessary. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;_MyDebug(&amp;quot;The value of Variable 1 at this time is &amp;quot; &amp;amp; $var1)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This debugging is completely transparent to the user, and is only viewable with a program such as DebugView from SysInternals. This method of debugging has the added advantage of being available to the developer in situations where is not acceptable or feasable to install SciTE on a client&#039;s unit.&lt;br /&gt;
&lt;br /&gt;
=== Graphical debugger ===&lt;br /&gt;
Stumpii created a [http://www.autoitscript.com/forum/index.php?showtopic=21834 Graphical AutoIt Debugger], similar to Dev-C++&#039;s debugging style.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_5.jpg|center|Stumpii&#039;s Graphical AutoIt Debugger]]&lt;br /&gt;
&lt;br /&gt;
=== Another debugger for AutoIt ===&lt;br /&gt;
Heron created a [http://www.autoitscript.com/forum/index.php?showtopic=103142 Another debugger for AutoIt].&lt;br /&gt;
&lt;br /&gt;
The latest version by asdf8 is here:&lt;br /&gt;
https://www.autoitscript.com/forum/topic/103142-another-debugger-for-autoit/?do=findComment&amp;amp;comment=1303208&lt;br /&gt;
&lt;br /&gt;
=== Other UDF to log/trace/script analyze ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
==How can I run something that is not an exe file [.txt, .msi, .pdf,.jpg etc.] [or] How can I open a webpage in the default browser?==&lt;br /&gt;
It was for this reason that the ShellExecute function was created. Here is one example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;edit&amp;quot;, @SW_MAXIMIZE)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also specify a web address this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;http://www.autoitscript.com/forum&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;open&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you normally are able to right-click the file and select print, then you can also print the file from AutoIt using this function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\boot.ini&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;print&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to open the file with the default program, you can do as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish your script to wait until the process is finished, you can use the ShellExecuteWait function with the same parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The default verb is the verb configured in the registry. If no verb is set as default in the registry then the &amp;quot;open&amp;quot; verb is used. If the &amp;quot;open&amp;quot; verb is not present then the first verb listed in the registry is used.&lt;br /&gt;
&lt;br /&gt;
==How can I prevent more than one copy of my script from running at once, or detect another copy of my script running?==&lt;br /&gt;
&lt;br /&gt;
=== _Singleton function ===&lt;br /&gt;
There are a few different ways to go about this. You can use a function called _Singleton to detect multiple instances of your script. An example of how to use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
_Singleton(&amp;quot;TheNameOfMyScript&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this instance, the script will bring up some messages explaining to the user of the occurring events. &lt;br /&gt;
This example will show you how the above function can be used in a real world application.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _Singleton(&amp;quot;MyScriptName&amp;quot;, 1) = 0 Then&lt;br /&gt;
    ; If successful, running our script a second time should cause us to fall through here&lt;br /&gt;
    MsgBox($MB_ICONERROR, &amp;quot;User Generated Error Message&amp;quot;, &amp;quot;Error: This script is already running!&amp;quot;)&lt;br /&gt;
Else&lt;br /&gt;
    ; We have detected that we are the only instance running, now we will run a second instance to display _Singleton&#039;s function!&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We are the first instance of this script, press OK to run another instance and trigger the error message!&amp;quot;)&lt;br /&gt;
    Switch @Compiled&lt;br /&gt;
        Case 1&lt;br /&gt;
            Run(FileGetShortName(@ScriptFullPath));when running an app, it&#039;s usually better to use its short name&lt;br /&gt;
        Case 0&lt;br /&gt;
            Run(FileGetShortName(@AutoItExe) &amp;amp; &#039; /AutoIt3ExecuteScript &#039; &amp;amp; FileGetShortName(@ScriptFullPath))&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We ran a second instance, you should have recieved an error message!&amp;quot;, 5)&lt;br /&gt;
EndIf&lt;br /&gt;
Exit&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_MutexExists function ===&lt;br /&gt;
Another method is to use _MutexExists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _MutexExists(&amp;quot;MydeswswScriptName&amp;quot;) Then&lt;br /&gt;
	; We know the script is already running. Let the user know.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;Script Name&amp;quot;, &amp;quot;This script is already running. Using multiple copies of this script at the same time is unsupported!&amp;quot;)&lt;br /&gt;
	Exit&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
;Function Author- Martin&lt;br /&gt;
Func _MutexExists($sOccurenceName)&lt;br /&gt;
	Local $ERROR_ALREADY_EXISTS = 183, $handle, $lastError&lt;br /&gt;
	$sOccurenceName = StringReplace($sOccurenceName, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;); to avoid error&lt;br /&gt;
	$handle = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;CreateMutex&amp;quot;, &amp;quot;int&amp;quot;, 0, &amp;quot;long&amp;quot;, 1, &amp;quot;str&amp;quot;, $sOccurenceName)&lt;br /&gt;
	$lastError = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetLastError&amp;quot;)&lt;br /&gt;
	Return $lastError[0] = $ERROR_ALREADY_EXISTS&lt;br /&gt;
EndFunc;==&amp;gt;_MutexExists&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I run my script as a service?==&lt;br /&gt;
This is also a question with multiple answers, and none of them are the only way to do it. The first question to ask yourself is whether or not you wish to install the service on other computers besides your own.&lt;br /&gt;
&lt;br /&gt;
=== On your own computer - One time only ===&lt;br /&gt;
The easiest way to do this is to use Pirmasoft RunAsSvc. This program makes services easy to install and easy to remove when necessary.&lt;br /&gt;
&lt;br /&gt;
=== On all computers that run your script===&lt;br /&gt;
To do this you can use SRVANY.EXE and [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3]. You can then use this code to install your script as a service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_CreateService(&amp;quot;&amp;quot;, $servicename, &amp;quot;My AutoIt Script&amp;quot;, &amp;quot;C:\Path_to_\srvany.exe&amp;quot;, &amp;quot;LocalSystem&amp;quot;, &amp;quot;&amp;quot;, 0x110)&lt;br /&gt;
RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\&amp;quot; &amp;amp; $servicename &amp;amp; &amp;quot;\Parameters&amp;quot;, &amp;quot;Application&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the following code to delete this service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_DeleteService(&amp;quot;&amp;quot;, $servicename)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one caveat to setting up AutoIt as a service. If the service is not installed using the above code, it must have the &amp;quot;allow service to interact with the desktop&amp;quot; setting or else automation functions such as Control* or Win* functions will not function. To assure the service does indeed have this setting, use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\[ServiceName]&amp;quot;, &amp;quot;Type&amp;quot;, &amp;quot;REG_DWORD&amp;quot;, 0x110)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I create/start/stop or otherwise control a service?==&lt;br /&gt;
There are two include libraries that are designed specifically to interact with services. These are the following:&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3] made by SumTingWong. Functionality:&lt;br /&gt;
** _StartService()&lt;br /&gt;
** _StopService()&lt;br /&gt;
** _ServiceExists()&lt;br /&gt;
** _ServiceRunning()&lt;br /&gt;
** _CreateService()&lt;br /&gt;
** _DeleteService()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22165 _NTServices.au3] made by CatchFish. Functionality:&lt;br /&gt;
** _ServiceStart()&lt;br /&gt;
** _ServiceStop()&lt;br /&gt;
** _ServiceStatus()&lt;br /&gt;
** _ServicePause()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I display a progress bar while copying files or directories?==&lt;br /&gt;
There are a many different topics on how to do this.  For more, just search the forums for [http://www.autoitscript.com/forum/index.php?act=Search&amp;amp;CODE=show&amp;amp;searchid=22030d4d4effe5e32da23fdb69ed772f&amp;amp;search_in=posts&amp;amp;result_type=topics&amp;amp;highlite=%2BCopy%2B Progress Copy + Progress].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11313 Copy with progress dialog]... By ezztabi&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11888 Yet another copy with progress]... By SumTingWong&lt;br /&gt;
* [http://www.autoit.de/index.php?page=Thread&amp;amp;postID=58875 _MultiFileCopy]... By Oscar (German Forums)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19370&amp;amp;st=45&amp;amp;p=186198&amp;amp;#entry186198 _FileCopy]... By Jos&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q6_1.jpg|center|Copy progress dialog by ezztabi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make a hotkey that only works in my GUI?==&lt;br /&gt;
It used to be quite tedious setting hotkeys to only work in your GUI.  Now there is an easier way with the function GUISetAccelerators.&lt;br /&gt;
&lt;br /&gt;
(From Helpfile example)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; A simple custom messagebox that uses the MessageLoop mode&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Custom Msgbox&amp;quot;, 210, 80)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Please click a button!&amp;quot;, 10, 10)&lt;br /&gt;
$YesID = GUICtrlCreateButton(&amp;quot;Yes&amp;quot;, 10, 50, 50, 20)&lt;br /&gt;
$NoID = GUICtrlCreateButton(&amp;quot;No&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$ExitID = GUICtrlCreateButton(&amp;quot;Exit&amp;quot;, 150, 50, 50, 20)&lt;br /&gt;
&lt;br /&gt;
; Set accelerators for Ctrl+y and Ctrl+n&lt;br /&gt;
Dim $AccelKeys[2][2]=[[&amp;quot;^y&amp;quot;, $YesID], [&amp;quot;^n&amp;quot;, $NoID]]&lt;br /&gt;
GUISetAccelerators($AccelKeys)&lt;br /&gt;
&lt;br /&gt;
GUISetState(); display the GUI&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
	$msg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case $msg = $YesID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		Case $msg = $NoID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;No&amp;quot;)&lt;br /&gt;
		Case $msg = $ExitID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Exit&amp;quot;)&lt;br /&gt;
		Case $msg = $GUI_EVENT_CLOSE&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Close&amp;quot;)&lt;br /&gt;
	EndSelect&lt;br /&gt;
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I perform an action while a key is held down?==&lt;br /&gt;
You can use the _IsPressed() function to determine when a key is held down. The values that can be specified in this function are listed in the AutoIt Help File under User Defined Functions -&amp;gt; Misc Management -&amp;gt; _IsPressed. The following example will press the left mouse button while the k key is held down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
$pressed = 0&lt;br /&gt;
While 1&lt;br /&gt;
	If _IsPressed(&amp;quot;4B&amp;quot;) Then&lt;br /&gt;
		If Not $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;K Key being held down&amp;quot;)&lt;br /&gt;
			MouseDown(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 1&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		If $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;&amp;quot;)&lt;br /&gt;
			MouseUp(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 0&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(250)&lt;br /&gt;
WEnd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I run my script on a remote computer over the network?==&lt;br /&gt;
The answer to this question depends on how much experience you have in networking. If the target system is a Windows system to which you have administrator access then you may use one of the following programs:&lt;br /&gt;
&lt;br /&gt;
* PsExec from SysInternals&lt;br /&gt;
* BeyondExec from BeyondLogic&lt;br /&gt;
&lt;br /&gt;
With either of these programs it is possible to launch any process on a remote system and even copy your script to the target computer before starting it. Neither these programs nor any others will work with Windows XP Home Edition unless you create a custom &amp;quot;command listener&amp;quot; that you manually install on the target system.&lt;br /&gt;
&lt;br /&gt;
NOTE: Those of you with more advanced programming skills and a little imagination can figure out how to use the service control libraries and srvany.exe to do this same thing without either of the above mentioned programs.&lt;br /&gt;
&lt;br /&gt;
==How can I make a User Defined Function with optional parameters like the ones I see in the Help File?==&lt;br /&gt;
You can specify optional parameters by giving them a default value in the Func declaration. An example of how this is done:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Func testme($param1, $param2 = &amp;quot;nothing&amp;quot;, $param3 = 5)&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;&amp;quot;, &amp;quot;Parameter one is required. The value of Parameter 1 is &amp;quot; &amp;amp; $param1 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 2 is optional. The value of Parameter 2 is &amp;quot; &amp;amp; $param2 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 3 is optional. The value of Parameter 3 is &amp;quot; &amp;amp; $param3)&lt;br /&gt;
EndFunc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If testme() is called with only one parameter [I.E. testme(&amp;quot;test&amp;quot;)] then the output is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
However, if the function is called with more than one parameter like this testme(&amp;quot;test&amp;quot;, &amp;quot;something&amp;quot;), then the output is&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is something&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make my script start every time windows starts?==&lt;br /&gt;
You can use one of the following codes to allow your script to start with Windows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&amp;quot;, &amp;quot;MyProgramName&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;FileCreateShortcut(@ScriptFullPath, @StartupCommonDir &amp;amp; &amp;quot;\MyProgramName.lnk&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or place a Shortcut in the Startup folder, or the entire Executable.  For Win8+ systems, use the Win+R keys to open a Run box, then &amp;quot;Shell:Startup&amp;quot; to access the Startup folder. Due to Windows User Account Control (UAC) restrictions, your script may require [https://www.autoitscript.com/autoit3/docs/keywords/RequireAdmin.htm #RequireAdmin].&lt;br /&gt;
&lt;br /&gt;
==How can I have the script delete itself?==&lt;br /&gt;
The following function will delete the running script or .exe once it has finished execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: Make a copy of your script before calling this function!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _SelfDelete($iDelay = 0)&lt;br /&gt;
	Local $sCmdFile&lt;br /&gt;
	FileDelete(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;)&lt;br /&gt;
	$sCmdFile = &#039;ping -n &#039; &amp;amp; $iDelay &amp;amp; &#039; 127.0.0.1 &amp;gt; nul&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;:loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot;&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;if exist &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; goto loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del %0&#039;&lt;br /&gt;
	FileWrite(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, $sCmdFile)&lt;br /&gt;
	Run(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, @TempDir, @SW_HIDE)&lt;br /&gt;
EndFunc;==&amp;gt;_SelfDelete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I create a clickable website hyperlink in my gui?==&lt;br /&gt;
[[File:FAQ_Q13_1.jpg|center|Example GUI using Gary&#039;s UDF.]]&lt;br /&gt;
&lt;br /&gt;
Gary Frost has made great advances in this area and has provided a [http://www.autoitscript.com/forum/index.php?showtopic=23111&amp;amp;st=0 UDF here] (&#039;&#039;&#039;the UDF was removed from the post&#039;&#039;&#039;) to help with doing this.&lt;br /&gt;
&lt;br /&gt;
==How can I change the screen resolution / refresh rate / color depth?==&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=20121 ChangeResolution.au3] is a library function created to make changes to these settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I get the screen resolution in multiple monitor setups?==&lt;br /&gt;
The following code was worked out by Larry to determine the total screen resolution of multiple monitors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$aTSR = _GetTotalScreenResolution()&lt;br /&gt;
MsgBox($MB_OK, &amp;quot;Total Screen Resolution&amp;quot;, &amp;quot;Width = &amp;quot; &amp;amp; $aTSR[0] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Height = &amp;quot; &amp;amp; $aTSR[1])&lt;br /&gt;
&lt;br /&gt;
;Original code by Larry.&lt;br /&gt;
;Edited by BrettF&lt;br /&gt;
Func _GetTotalScreenResolution()&lt;br /&gt;
	Local $aRet[2]&lt;br /&gt;
	Global Const $SM_VIRTUALWIDTH = 78&lt;br /&gt;
	Global Const $SM_VIRTUALHEIGHT = 79&lt;br /&gt;
	$VirtualDesktopWidth = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALWIDTH)&lt;br /&gt;
	$aRet[0] = $VirtualDesktopWidth[0]&lt;br /&gt;
	$VirtualDesktopHeight = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALHEIGHT)&lt;br /&gt;
	$aRet[1] = $VirtualDesktopHeight[0]&lt;br /&gt;
	Return $aRet&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  How can I register a file type with my program [or] How can I make files with a certain extension open in my program?==&lt;br /&gt;
[[File:FAQ_Q16_1.jpg|center|Example of how a file type can be registered.]]&lt;br /&gt;
File registration can be a tricky business for those who have not done it before. The first thing to be done is to modify your script to allow it to accept files from the command line. Here is one example of how to do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;$cmdline[0] is the number of parameters passed&lt;br /&gt;
If $cmdline[0] &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
	$filename = $cmdline[1]&lt;br /&gt;
;Do something with the file here&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;The file name passed to the command line is &amp;quot;&#039; &amp;amp; $filename &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
Else&lt;br /&gt;
; We did not get any command line parameters.&lt;br /&gt;
; If this is a command line only program, you would want to&lt;br /&gt;
; alert the user that the command line parameters were incorrect.&lt;br /&gt;
; If this is a GUI program (like a notepad program), you would&lt;br /&gt;
; want to simply continue from here without opening a file.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;Command line parameters incorrect.&#039; &amp;amp; @CRLF &amp;amp; &#039;Command line usage: &amp;quot;&#039; &amp;amp; @ScriptName &amp;amp; &#039;&amp;quot; &amp;quot;file to process&amp;quot;&#039;)&lt;br /&gt;
 EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After your script is ready to accept files, you can begin to register the file type you need with your program. To prevent errors, this-is-me has created a UDF that will allow you to do this easily:&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to register and unregister a file extension using this UDF:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;quot;FileRegister.au3&amp;quot;&lt;br /&gt;
;================================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileRegister($ext, $cmd, $verb [, $def [, $icon = &amp;quot;&amp;quot; [, $desc = &amp;quot;&amp;quot; ]]])&lt;br /&gt;
;			   Registers a file type in Explorer&lt;br /&gt;
;&lt;br /&gt;
; Parameter(s): $ext -  File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;		$cmd -  Program path with arguments eg. &#039;&amp;quot;C:\test\testprog.exe&amp;quot; &amp;quot;%1&amp;quot;&#039;&lt;br /&gt;
;			 (%1 is 1st argument, %2 is 2nd, etc.)&lt;br /&gt;
;		$verb - Name of action to perform on file&lt;br /&gt;
;			 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;		$def -  Action is the default action for this filetype&lt;br /&gt;
;			 (1 for true 0 for false)&lt;br /&gt;
;			 If the file is not already associated, this will be the default.&lt;br /&gt;
;		$icon - Default icon for filetype including resource # if needed&lt;br /&gt;
;			 eg. &amp;quot;C:\test\testprog.exe,0&amp;quot; or &amp;quot;C:\test\filetype.ico&amp;quot;&lt;br /&gt;
;		$desc - File Description eg. &amp;quot;Zip File&amp;quot; or &amp;quot;ProgramName Document&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;================================================&lt;br /&gt;
&lt;br /&gt;
 FileRegister(&amp;quot;uxy&amp;quot;, &#039;&amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; &amp;quot;%1&amp;quot;&#039;, &amp;quot;Open in UXYFixer&amp;quot;, 1, @ScriptFullPath &amp;amp; &#039;,0&#039;, &amp;quot;UXYFixer Document&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;========================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileUnRegister($ext, $verb)&lt;br /&gt;
;			   UnRegisters a verb for a file type in Explorer&lt;br /&gt;
; Parameter(s):  $ext - File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;			   $verb - Name of file action to remove&lt;br /&gt;
;					 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;========================================&lt;br /&gt;
&lt;br /&gt;
 FileUnRegister(&amp;quot;uxy&amp;quot;, &amp;quot;Open in UXYFixer&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download here:&#039;&#039;&#039;&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=26378 FileRegister.au3]&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my combobox (GUICtrlCreateCombo) show a dropdown list when clicked?==&lt;br /&gt;
When using GUICtrlCreateCombo be sure to enter the desired height for your combobox list in the &amp;quot;height&amp;quot; parameter. Windows XP automatically selects an appropriate height for combo boxes, but other versions of Windows usually do not.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,20)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Would correctly be changed to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,200)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why isn&#039;t my thread getting any replies?==&lt;br /&gt;
&lt;br /&gt;
=== Asking the right question right ===&lt;br /&gt;
Did you give a good description of the problem? If your title or explanation of the issue is not descriptive, users are likely to bypass your issue instead of helping. Post titles such as &amp;quot;Help Me&amp;quot;, &amp;quot;I Have A Problem&amp;quot;, &amp;quot;Question&amp;quot;, &amp;quot;Help me fix my code&amp;quot;, &amp;quot;This code doesn&#039;t work&amp;quot; or similarly worded titles will not readily draw forum users to your post. Experienced users (which are your best hope of resolving the issue) will often skip your post altogether in cases like this. An example of a post title descriptive enough to attract users to assist you is &amp;quot;Problem with WinWaitClose&amp;quot; or &amp;quot;Loop never ends&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Example for reproduction ===&lt;br /&gt;
Did you post example code? If you have not posted an example of the code you are having an issue with, then you will not recieve support. When posting a non-working script, please do so in the smallest amount of stand-alone code possible. If the code you post cannot run by itself on another person&#039;s computer, they will not be able to recreate the issue.&lt;br /&gt;
&lt;br /&gt;
=== Information about Environment ===&lt;br /&gt;
Did you provide any information about your AutoIt Development Environment ? &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
; Version: 1.00. AutoIt: V3.3.8.1&lt;br /&gt;
; Retrieve the recommended information of the current system when posting a support question.&lt;br /&gt;
Local $sSystemInfo = &#039;I have a valid AutoIt support question and kindly provided the details of my system:&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;AutoIt Version: V&#039; &amp;amp; @AutoItVersion &amp;amp; &#039; [&#039; &amp;amp; (@AutoItX64 ?&#039;X64&#039;:&#039;X32&#039;) &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Windows Version: &#039; &amp;amp; @OSVersion &amp;amp; &#039; [&#039; &amp;amp; @OSArch &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Language: &#039; &amp;amp; _GetOSLanguage() &amp;amp; &#039; (&#039; &amp;amp; @OSLang &amp;amp; &#039;)&#039; &amp;amp; @CRLF &amp;amp; @CRLF&lt;br /&gt;
ClipPut($sSystemInfo)&lt;br /&gt;
MsgBox(4096, &#039;This info has been copied to the clipboard. Use Ctrl + V to retrieve it.&#039;, $sSystemInfo)&lt;br /&gt;
&lt;br /&gt;
Func _GetOSLanguage()&lt;br /&gt;
     Local $aString[20] = [19, &amp;quot;0409 0809 0C09 1009 1409 1809 1C09 2009 2409 2809 2C09 3009 3409&amp;quot;, &amp;quot;0404 0804 0C04 1004 0406&amp;quot;, &amp;quot;0406&amp;quot;, &amp;quot;0413 0813&amp;quot;, &amp;quot;0425&amp;quot;, _&lt;br /&gt;
               &amp;quot;040B&amp;quot;, &amp;quot;040C 080C 0C0C 100C 140C 180C&amp;quot;, &amp;quot;0407 0807 0C07 1007 1407&amp;quot;, &amp;quot;040E&amp;quot;, &amp;quot;0410 0810&amp;quot;, _&lt;br /&gt;
               &amp;quot;0411&amp;quot;, &amp;quot;0414 0814&amp;quot;, &amp;quot;0415&amp;quot;, &amp;quot;0416 0816&amp;quot;, &amp;quot;0418&amp;quot;, _&lt;br /&gt;
               &amp;quot;0419&amp;quot;, &amp;quot;081A 0C1A&amp;quot;, &amp;quot;040A 080A 0C0A 100A 140A 180A 1C0A 200A 240A 280A 2C0A 300A 340A 380A 3C0A 400A 440A 480A 4C0A 500A&amp;quot;, &amp;quot;041D 081D&amp;quot;]&lt;br /&gt;
     Local $aLanguage[20] = [19, &amp;quot;English&amp;quot;, &amp;quot;Chinese&amp;quot;, &amp;quot;Danish&amp;quot;, &amp;quot;Dutch&amp;quot;, &amp;quot;Estonian&amp;quot;, &amp;quot;Finnish&amp;quot;, &amp;quot;French&amp;quot;, &amp;quot;German&amp;quot;, &amp;quot;Hungarian&amp;quot;, &amp;quot;Italian&amp;quot;, _&lt;br /&gt;
               &amp;quot;Japanese&amp;quot;, &amp;quot;Norwegian&amp;quot;, &amp;quot;Polish&amp;quot;, &amp;quot;Portuguese&amp;quot;, &amp;quot;Romanian&amp;quot;, &amp;quot;Russian&amp;quot;, &amp;quot;Serbian&amp;quot;, &amp;quot;Spanish&amp;quot;, &amp;quot;Swedish&amp;quot;]&lt;br /&gt;
     For $i = 1 To $aString[0]&lt;br /&gt;
          If StringInStr($aString[$i], @OSLang) Then&lt;br /&gt;
               Return $aLanguage[$i]&lt;br /&gt;
          EndIf&lt;br /&gt;
     Next&lt;br /&gt;
     Return $aLanguage[1]&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetOSLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Speak English and speak it right ===&lt;br /&gt;
Did you use proper English? Here are guidelines for posting properly in the English language:&lt;br /&gt;
* Use proper case.  THIS IS CONSIDERED YELLING. If you post in ALL UPPERCASE or all lowercase then you will not be taken seriously.&lt;br /&gt;
* Use proper punctuation. Complete sentences need only one trailing punctuation mark. Twelve exclamation points after every sentence &amp;lt;b&amp;gt;will not&amp;lt;/b&amp;gt; get you an answer more quickly (just the opposite) Writing a sentence without simple punctuation such as commas reflects badly on your attention to detail, and is considered a good judge of the poster&#039;s coding style. If you cannot summon the intellect to write a sentence with correct punctuation, you will most likely miss simple coding mistakes such as unterminated quotes.&lt;br /&gt;
&lt;br /&gt;
=== Breaking forum rules, law, modesty, or common sense ===&lt;br /&gt;
Show common sense by following the forum rules, http://www.autoitscript.com/forum/topic/169097-forum-rules/, as well as generally accepted forum etiquette. Repeated failure to do so will result in sanctions by the Moderation team as it ruins the experience for everyone.&lt;br /&gt;
&lt;br /&gt;
==Why does the Ctrl key get stuck down after I run my script?==&lt;br /&gt;
&lt;br /&gt;
=== Keys virtually stuck ===&lt;br /&gt;
It could equally be the Shift or the Alt key.&lt;br /&gt;
&lt;br /&gt;
If you use Send in a script and you have a problem with keys being stuck down then Send is the most likely culprit. A similar problem can occur with BlockInput. The solution is generally quite simple. If there is a key like Shift or Alt held down at the start of the Send sequence, but that key is released by the time the Send sequence finishes then the key will get &#039;stuck&#039; down. As an example of a solution, you could replace the Send function in your script with the _SendEx function below.&lt;br /&gt;
&lt;br /&gt;
The _SendEx function waits for the Shift, Alt and Ctrl keys to be released or pops up a warning if the $warn parameter is not an empty string. Therefore it is not intended to be used when one of these modifier keys has been set to be down using any combination of {ALTDOWN}, {SHIFTDOWN} and {ALTDOWN}.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt; Misc.au3 &amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
;Send the string $ss after the Shift Alt and Ctrl keys are released. Optionally give a warning after 1 sec if any of those keys are still down.&lt;br /&gt;
;Requires misc.au3 to be included in the script for the _IsPressed function.&lt;br /&gt;
&lt;br /&gt;
Func _SendEx($ss, $warn = &amp;quot;&amp;quot;)&lt;br /&gt;
	Local $iT = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	While _IsPressed(&amp;quot;10&amp;quot;) Or _IsPressed(&amp;quot;11&amp;quot;) Or _IsPressed(&amp;quot;12&amp;quot;)&lt;br /&gt;
		If $warn &amp;lt;&amp;gt; &amp;quot;&amp;quot; And TimerDiff($iT) &amp;gt; 1000 Then&lt;br /&gt;
			MsgBox($MB_TOPMOST, &amp;quot;Warning&amp;quot;, $warn)&lt;br /&gt;
		EndIf&lt;br /&gt;
		Sleep(50)&lt;br /&gt;
	WEnd&lt;br /&gt;
	Send($ss)&lt;br /&gt;
EndFunc;==&amp;gt;_SendEx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General unstuck method ===&lt;br /&gt;
Shilbiz also discovered that the following can &#039;clear&#039; locked down keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt; ControlSend(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;text&amp;quot;, 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use Pixel functions?==&lt;br /&gt;
&lt;br /&gt;
=== Using a color change as an event ===&lt;br /&gt;
The following is an example of using the pixel to check if the colour has changed in a specific region.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $PixelCheck = 0, $NewCheck&lt;br /&gt;
$PixelCheck = PixelCheckSum(40, 50, 60, 70); Get the checksum for this area.&lt;br /&gt;
While 1; Keep going&lt;br /&gt;
	$NewCheck = PixelCheckSum(40, 50, 60, 70)&lt;br /&gt;
	If $PixelCheck &amp;lt;&amp;gt; $NewCheck Then&lt;br /&gt;
		; The old pixel checksum and the new one are different.&lt;br /&gt;
		$PixelCheck = $NewCheck; Update the $PixelCheck to the new value&lt;br /&gt;
		; Let us know it has changed.  Change this to what you want to happen when the colour in the region changes.&lt;br /&gt;
		Msgbox($MB_ICONWARNING,&amp;quot;PixelChecksum&amp;quot;,&amp;quot;Pixel region has changed !&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(50); Just to give the CPU a bit of a break.&lt;br /&gt;
Wend&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Searching for a specific pixel color ===&lt;br /&gt;
This is an example of searching for a specific pixel (red), both pure red (0xFF0000) and red in a few different shades.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
; Find a pure red pixel in the range 0,0-20,300&lt;br /&gt;
&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Find a pure red pixel or a red pixel within 10 shades variations of pure red&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my script work on a locked workstation?==&lt;br /&gt;
On a locked station any window will never be active (active is only dialog with text &amp;quot;Press Ctrl+Alt+Del&amp;quot;).  In Windows locked state applications run hidden (behind that visible dialog) and do not have focus and active status.  So generally don&#039;t use Send() MouseClick() WinActivate() WinWaitActive() WinActive() etc.  Instead use ControlSend() ControlSetText() ControlClick() WinWait() WinExists() WinMenuSelectItem() etc.  Doing so allows you to interact with an application regardless of whether it is active or not. It&#039;s possible to run such a script from scheduler on locked Windows stations.&lt;br /&gt;
&lt;br /&gt;
==Where can I learn AutoIt? Are there any tutorials?==&lt;br /&gt;
AutoIt is a constantly growing and evolving language with a diverse and engaged community of volunteers. This wiki, along with the official forum, will always be your best place for answers to questions as well as examples and tutorials. With this in mind, below are a few resources that can also help you as you become familiar with the language:&lt;br /&gt;
&lt;br /&gt;
AutoIt 1-2-3, an interactive classroom by Valuater:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=21048 http://www.autoitscript.com/forum/index.php?showtopic=21048]&lt;br /&gt;
&lt;br /&gt;
BrettF&#039;s updated AutoIt tutorial:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=84960 http://www.autoitscript.com/forum/index.php?showtopic=84960]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Learn To Program Using FREE Tools with AutoIt&amp;quot; PDF Book by Jfish&lt;br /&gt;
[https://www.autoitscript.com/forum/files/file/351-learn-to-program-using-free-tools-with-autoit/ Learn To Program Using FREE Tools with AutoIt]&lt;br /&gt;
&lt;br /&gt;
YouTube has a number of videos available:&lt;br /&gt;
[http://www.youtube.com/results?search_query=autoit+tutorial&amp;amp;search_type=&amp;amp;aq=0&amp;amp;oq=AutoIt YouTube AutoIt tutorials list]&lt;br /&gt;
&lt;br /&gt;
As always, when asking questions about a video or script you saw on an external source, please ensure you are adhering to the [[FAQ#Breaking_forum_rules.2C_law.2C_modesty.2C_or_common_Sense|forum rules]].&lt;br /&gt;
&lt;br /&gt;
==Why does my script no longer decompile?==&lt;br /&gt;
Decompilation is no longer supported, and is only available for the older versions of AutoIt (Version 3.2.5.1 and earlier compiled scripts).&lt;br /&gt;
&lt;br /&gt;
Please &#039;&#039;&#039;do not&#039;&#039;&#039; post on this topic; see the [[Decompiling FAQ]] for more information. Topics discussing decompilation of scripts will be locked immediately. Posting the source of a decompiled script with lead to immediate sanctions from the Moderation team, as it directly violates AutoIt EULA (End-User-License-Agreement).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt;You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.&amp;lt;/i&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I get a window handle when all I have is a PID?==&lt;br /&gt;
Refer to the following example showing converting and use when manipulating the window. The function is based on work by Smoke_N/Hubertus and Helge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Run process&lt;br /&gt;
$iPID = Run(&amp;quot;Notepad.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;Allow window to initialize...&lt;br /&gt;
Sleep (500)&lt;br /&gt;
&lt;br /&gt;
;Get HWND.&lt;br /&gt;
$hWnd = _GetHwndFromPID($iPID)&lt;br /&gt;
&lt;br /&gt;
;Maximize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MAXIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Minimize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MINIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Restore window&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_RESTORE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Move top left corner of screen, and resize to 800x600&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, 0, 0, 800, 600)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Calculate Center of screen.&lt;br /&gt;
$x = (@DesktopWidth / 2) - 400; Desktop width divided by 2, then minus half the width of the window&lt;br /&gt;
$y = (@DesktopHeight / 2) - 300; Desktop height divided by 2, then minus half the height of the window&lt;br /&gt;
&lt;br /&gt;
;Move to center of screen&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, $x, $y)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Close notepad&lt;br /&gt;
WinClose($hWnd)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Function for getting HWND from PID&lt;br /&gt;
Func _GetHwndFromPID($PID)&lt;br /&gt;
	$hWnd = 0&lt;br /&gt;
	$winlist = WinList()&lt;br /&gt;
	Do&lt;br /&gt;
		For $i = 1 To $winlist[0][0]&lt;br /&gt;
			If $winlist[$i][0] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$iPID2 = WinGetProcess($winlist[$i][1])&lt;br /&gt;
				If $iPID2 = $PID Then&lt;br /&gt;
					$hWnd = $winlist[$i][1]&lt;br /&gt;
					ExitLoop&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	Until $hWnd &amp;lt;&amp;gt; 0&lt;br /&gt;
	Return $hWnd&lt;br /&gt;
EndFunc;==&amp;gt;_GetHwndFromPID&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use single or double quotes in strings?==&lt;br /&gt;
It is a fairly simple concept once you get the basics down.  Basically there are a few different ways to go about mixing quotes in strings.&lt;br /&gt;
&lt;br /&gt;
A string in AutoIt can be encased in either single(&#039;) or double (&amp;quot;) quotes.  So if you want to add only one type of quote into your string, your first port of call is to use the other type of quote to encase the string.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &amp;quot;I am a &#039;quote&#039; inside the string&amp;quot;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&lt;br /&gt;
$var = &#039;I wish I could be a &amp;quot;quote&amp;quot; inside the string!&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have to have both types of quotes in the string, the easiest way is to escape the quote ending the string as so to speak.  To do this, use two quotes instead of one.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &#039;I am a single &#039;&#039;quote&#039;&#039; inside the string made using &amp;quot;single quote!&amp;quot;&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==When should I bump my threads?==&lt;br /&gt;
As a courtesy to other users you should only bump your post once in a 24 hour period.  Doing this allows all users the chance to get helped equally.  Also refer to [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;view=findpost&amp;amp;p=688050 Why isn&#039;t my thread getting any replies?], as this will help you get replies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I protect my code from decompilation?==&lt;br /&gt;
The fact of the matter is &#039;&#039;&#039;you can&#039;t fully protect your code&#039;&#039;&#039;.  AutoIt is an  interpreted language, so all scripts are interpreted, and that script has to get stored somewhere.  There is still hope though.  You can take certain measures to make the decompiled code less usable to the person that decompiled it.  The first step is to obfuscate your code.  This causes the code to become less readable.  Basically variables and functions are renamed, making it very hard to make head or tail of what is what.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Decompiling FAQ]] for more information.&lt;br /&gt;
&lt;br /&gt;
==How can I decompile my AutoIt EXEs?==&lt;br /&gt;
You cannot decompile your AutoIt compiled scripts unless it was compiled with AutoIt 3.2.5.1 or earlier.&lt;br /&gt;
&lt;br /&gt;
In order to be able to recover your script from the compiled executable, you can use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Original Author SmokeN&lt;br /&gt;
If $CMDLINE[0] Then&lt;br /&gt;
	If $CMDLINE[1] == &amp;quot;/SOURCE&amp;quot; AND $CMDLINE[2] == &amp;quot;MYPASSWORD&amp;quot; Then&lt;br /&gt;
		FileInstall(&amp;quot;ThisSCript.au3&amp;quot;, @ScriptDir &amp;amp; &amp;quot;\DecompiledScript.au3&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then if you run the compiled script with the following command line parameters your source will be extracted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;myscript.exe /SOURCE MYPASSWORD&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What is proper forum etiquette?  What rules are there for the forum?==&lt;br /&gt;
Proper forum etiquette will ensure you will stay a member of these forums.  So try to follow these rules.  Also see this [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;st=15&amp;amp;p=688050&amp;amp;#entry688050 FAQ post], as you should follow what is outlined there as well.&lt;br /&gt;
&lt;br /&gt;
* Use proper English.  MSN speak and the like makes it very hard to understand what you want.  Keep posts in proper case because UPPERCASE is considered yelling and lowercase makes you look stupid.  Don&#039;t use more punctuation marks than necessary. For example ?!!!? and ????? is completely unnecessary.&lt;br /&gt;
* Before posting help with a script, make sure you follow these steps:&lt;br /&gt;
*# Search for your issue.&lt;br /&gt;
*#* There are many thousands of posts on this forum, and chances are your question has been asked before.  Make sure to use a variety of terms to maximize your results.&lt;br /&gt;
*# Read the helpfile&lt;br /&gt;
*#* Most if not all things in the help file will have an example (native functions) or two.  Give them a go to try see how the functions work.  Most of the time it helps!&lt;br /&gt;
*# Give it a go&lt;br /&gt;
*#* Seriously, if you can&#039;t be bothered to give it a go, then why should we be bothered to help you?  If you feel you can&#039;t do it and you don&#039;t try then how will you ever know?  We always prefer that you give it a go because you can learn from your mistakes and hopefully understand it better.&lt;br /&gt;
*# Post your problem&lt;br /&gt;
*#* Make sure you post in the correct forum.&lt;br /&gt;
*#** &amp;lt;b&amp;gt;AutoIt Specific&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/2-autoit-general-help-and-support/ General Help and Support] (Most support questions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/10-autoit-gui-help-and-support/ GUI Support] (Support for the Graphical User Interface)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/14-autoitx-help-and-support/ AutoItX Support] (Support for the COM, DLL, PowerShell and .NET add-ons for AutoIt)&lt;br /&gt;
*#** &amp;lt;b&amp;gt;Non-AutoIt&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** Chat&lt;br /&gt;
*#*** Developer Chat&lt;br /&gt;
*#* Include a detailed description in the content of the post, and a detailed title&lt;br /&gt;
*#** Titles such as &#039;Help&#039; and &#039;What&#039;s wrong?&#039; are not acceptable.  To get the most help with your problem, be as descriptive as you can in the title, but keep in mind your title cannot be too long.&lt;br /&gt;
*#** Make sure you also include a descriptive question.  Just saying &#039;what is wrong with the following&#039; is also not acceptable, as we will have no idea what the problem is.  Describe what you think is wrong and what is not working.  It makes our job easier.&lt;br /&gt;
*#* Always include your code&lt;br /&gt;
*#** It shows us that you have tried and gives us a head start with something to play with.&lt;br /&gt;
* Usually asking for a script is not taken too well, within reason.  Keep in mind that this is a support forum, so please acknowledge that. We are here to help you with your scripts, not to spoon-feed code to you.  If you do need something written for you, maybe try  [http://www.rentacoder.com/ RentACoder], as they are more suited to requests.&lt;br /&gt;
* Don&#039;t PM other members asking for them to look at threads of to help you unless they request it.  It is actually quite rude and annoying to receive PMs of that nature.&lt;br /&gt;
* Lurk a little before you dive right in. Read a number of posts, or check out the group&#039;s archives. Get a feel for the tone of the forum so you can participate accordingly.&lt;br /&gt;
* Say online exactly what you would say in person. In other words, if you wouldn&#039;t say it to the person&#039;s face in front of your Grandmother, you shouldn&#039;t type it here.&lt;br /&gt;
* Remember your face doesn&#039;t show. Words alone can convey sentiment, but without benefit of inflection or facial expression, they can be misconstrued. Use descriptive wording, emoticons or .gifs to ensure your meaning is clear. By the same token, don&#039;t jump to conclusions about another person&#039;s intent in posting an unclear comment. When in doubt, ask for clarification.&lt;br /&gt;
* Be respectful. Internet etiquette is similar to standard etiquette in this area. Appreciate that your opinion is one of many. You can disagree with another person without being disrespectful or rude to other people.&lt;br /&gt;
* Ignore Trolls. If you engage in conversation with one, you&#039;ll raise your blood pressure and empower the troll. You can&#039;t win a flame war, and you can&#039;t sway a troll&#039;s opinion. Often, they don&#039;t even care about the subject.  They live for the conflict and nothing more. Trolls are common and not worthy of your time. Ignore their posts no matter how inflammatory and eventually they&#039;ll get bored and move on.&lt;br /&gt;
* When you have found an answer for your question:&lt;br /&gt;
*# Do not edit your post to be blank or to have worthless information.  People may be searching for the same issue you have, so be courteous to them by leaving your question there.&lt;br /&gt;
*# It is also optional to add the word [SOLVED] into the title, as well as selecting the post that best answered your question. It can make the lives of people searching easier.&lt;br /&gt;
* Finally follow the rules:&lt;br /&gt;
** [http://www.autoitscript.com/forum/topic/169097-forum-rules/ Forum rules]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=54168 Rules for the Chat forum]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=65889 Rules for asking for source code]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=37739 General policies and forum settings]&lt;br /&gt;
&lt;br /&gt;
Some general points taken from [http://www.ehow.com/how_2106033_use-proper-forum-etiquette.html here].&lt;br /&gt;
&lt;br /&gt;
==Are there forums available in my local language?==&lt;br /&gt;
Yes there are some available.  Some forum members here participate in multiple forums.&lt;br /&gt;
* [http://www.autoit.de/ German Forums]&lt;br /&gt;
* [http://www.autoit.fr/  French Forums]&lt;br /&gt;
* [http://www.autoit.es/ Spanish Forums]&lt;br /&gt;
* [http://autoit-script.ru/ Russian Forums]&lt;br /&gt;
* [http://forum.autoitbrasil.com/ Portuguese Forums]&lt;br /&gt;
&lt;br /&gt;
Please note that these are independent, community-run message boards and not just a translation of this board.&lt;br /&gt;
&lt;br /&gt;
==How can I control (click, edit etc) an external (html) application?==&lt;br /&gt;
You can use the control* functions of autoit see helpfile&lt;br /&gt;
of use specific udf libraries&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ IUIAutomation for multiple applications]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/154439-chrome-udf/ chrome chrome.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/149526-librariesieau3/ Internet explorer ie.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ firefox ff.au3] (End of life)&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy/ java]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?&amp;amp;q=Selenium Selenium]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/191990-webdriver-udf-w3c-compliant-version/ WebDriver UDF (IE, Chrome, FireFox)]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should use spy applications to identify objects like&lt;br /&gt;
* au3inf part of AutoIT&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ simplespy in the zip]&lt;br /&gt;
* jabsimplespy in examples section of the AutoIt forum&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/126716-control-viewer-autoit-window-info-tool/ control viewer]&lt;br /&gt;
* inspect as part of windows SDK&lt;br /&gt;
* VisualUIAVerifyNative.exe as part of windows SDK (8.1)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If above spy tools are not identifying your object you could try commercial tools (trials) like&lt;br /&gt;
* ranorex spy&lt;br /&gt;
* Testcomplete&lt;br /&gt;
* HP UFT&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And your last recognition can be bitmaps&lt;br /&gt;
* search for GDI&lt;br /&gt;
* search for findBMP&lt;br /&gt;
* search for imagesearch&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt support database connections, such as SQL?==&lt;br /&gt;
Yes! UDFs exist for several popular SQL solutions, including SQLite, Firebird, MySQL, MSSQL and ODBC connections for PostGreSQL and others.&lt;br /&gt;
&lt;br /&gt;
For an illustrative list, see this link:&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/wiki/User_Defined_Functions#Files.2C_Databases_and_web_connections Files, Databases and web connections]&lt;br /&gt;
&lt;br /&gt;
A DBF UDF also exists&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/145142-dbf-udf-dbase-database-read-and-write-with-dll/ DBF UDF dBase with DLL]&lt;br /&gt;
&lt;br /&gt;
==How can I include some files into my compiled Autoit&#039;s EXE?==&lt;br /&gt;
Use FileInstall() or ResourcesEx UDF from the forum Examples.  Additional resources can also be included at compile time, click the &amp;quot;Res Add Files&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
==How can I test if checkbox / radiobutton is checked?==&lt;br /&gt;
Use this small function: If IsChecked($checkbox1) Then ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Zedna&lt;br /&gt;
Func IsChecked($control)&lt;br /&gt;
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED&lt;br /&gt;
EndFunc   ;==&amp;gt;IsChecked&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use the {enter} key as a Tab?==&lt;br /&gt;
Use &lt;br /&gt;
[https://www.autoitscript.com/autoit3/docs/functions/GUISetAccelerators.htm Accelerator keys]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; by Melba23&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
&lt;br /&gt;
$cInput_1 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 10, 200, 20)&lt;br /&gt;
$cInput_2 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 50, 200, 20)&lt;br /&gt;
$cInput_3 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 90, 200, 20)&lt;br /&gt;
&lt;br /&gt;
$cButton_1 = GUICtrlCreateButton(&amp;quot;Button 1&amp;quot;, 250, 10, 80, 30)&lt;br /&gt;
$cButton_2 = GUICtrlCreateButton(&amp;quot;Button 2&amp;quot;, 250, 50, 80, 30)&lt;br /&gt;
$cButton_3 = GUICtrlCreateButton(&amp;quot;Button 3&amp;quot;, 250, 90, 80, 30)&lt;br /&gt;
&lt;br /&gt;
$cEnter = GUICtrlCreateDummy()&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Local $aAccelKeys[2][2] = [[&amp;quot;{ENTER}&amp;quot;, $cEnter], [&amp;quot;{TAB}&amp;quot;, $cEnter]] ; Make {TAB} an accelerator&lt;br /&gt;
GUISetAccelerators($aAccelKeys)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $cEnter&lt;br /&gt;
			Switch _WinAPI_GetFocus()&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_1)&lt;br /&gt;
					; Check the input content&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						; Correct so move to next input&lt;br /&gt;
						GUICtrlSetState($cInput_2, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
					; Not correct so stay in current input&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_2)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						GUICtrlSetState($cInput_3, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_3)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						ConsoleWrite(&amp;quot;End&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case Else&lt;br /&gt;
					GUISetAccelerators(0) ; Remove accelerator link&lt;br /&gt;
					ControlSend($hGUI, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;{TAB}&amp;quot;) ; Send {TAB} to the GUI&lt;br /&gt;
					GUISetAccelerators($aAccelKeys) ; Reset the accelerator&lt;br /&gt;
&lt;br /&gt;
			EndSwitch&lt;br /&gt;
	EndSwitch&lt;br /&gt;
&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func checkEntry()&lt;br /&gt;
&lt;br /&gt;
	; Random chance of correct answer or fail&lt;br /&gt;
	If Mod(@SEC, 2) = 0 Then&lt;br /&gt;
		MsgBox($MB_SYSTEMMODAL, &amp;quot;Test Fail&amp;quot;, &amp;quot;Press Enter to close this message box&amp;quot;)&lt;br /&gt;
		Return False&lt;br /&gt;
	EndIf&lt;br /&gt;
	Return True&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;checkEntry&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why are my number sort results wrong?==&lt;br /&gt;
AutoIt by default uses an alpha sort algorithm. This means that ABC is sorted correctly, but it sorts numbers as 1,10,2,22,3,31 where the user expects 1,2,3,10,22,31.&lt;br /&gt;
This can be remedied by using a custom sort function. An example of such a custom number sort by Valuater appears below.  Search the Forum for [https://www.autoitscript.com/forum/topic/95383-sorting-numbers/ Number Sort] and [https://www.autoitscript.com/forum/topic/83626-natural-order-string-comparison/ Natural Order String Comparison] &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Valuater&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$Array = StringSplit(&amp;quot;2,5,3,4,6,1,8,9,7&amp;quot;, &amp;quot;,&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
_ArraySortNum($Array)&lt;br /&gt;
&lt;br /&gt;
_ArrayDisplay($Array, &amp;quot;Sorted Array&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Func _ArraySortNum(ByRef $n_array, $i_descending = 0, $i_start = 1)&lt;br /&gt;
	Local $i_ub = UBound($n_array)&lt;br /&gt;
	For $i_count = $i_start To $i_ub - 2&lt;br /&gt;
		Local $i_se = $i_count&lt;br /&gt;
		If $i_descending Then&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;lt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;gt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
		Local $i_hld = $n_array[$i_count]&lt;br /&gt;
		$n_array[$i_count] = $n_array[$i_se]&lt;br /&gt;
		$n_array[$i_se] = $i_hld&lt;br /&gt;
	Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_ArraySortNum&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I include AutoIt functions in a C# / C++ / VB programme? AutoItX==&lt;br /&gt;
AutoIt is also supplied as 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;
[https://www.autoitscript.com/site/autoit/ Info on AutoItX] &lt;br /&gt;
&lt;br /&gt;
From AutoItX.chm:&lt;br /&gt;
AutoItX is a DLL version of AutoIt v3 that provides a subset of the features of AutoIt via an ActiveX/COM and DLL interface. This means that you can add AutoIt-like features to your favourite scripting and programming languages, e.g. VB, VBScript, Delphi, C, C++, Kixtart, and most other languages that support the use of DLLs.&lt;br /&gt;
&lt;br /&gt;
Here are some C++ source code samples from various projects by [https://www.autoitscript.com/forum/profile/1-jon/ Jon]. Most are free to use but check any license files that accompany the downloads for details.  All code was created in Microsoft Visual C (6 and 7) but most would probably compile under mingw32 as well.&lt;br /&gt;
[https://www.autoitscript.com/site/code/ Download C++ examples for AutoItX] &lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to regsvr it if you are using the c# library. The c# library uses the non-COM part of the DLL so it just needs to be in the same folder as the exe and add the assembly.dll to your project. From the documenation:&lt;br /&gt;
&lt;br /&gt;
Using the Assembly from VB/C# within in Visual Studio is very easy:&lt;br /&gt;
* Add a reference to AutoItX3.Assembly.dll to your project&lt;br /&gt;
* Add a using AutoIt; statement in the files you want to use AutoIt functions&lt;br /&gt;
* Distribute your final executable with the files AutoItX3.Assembly.dll, AutoItX3.dll, AutoItX3_x64.dll.&lt;br /&gt;
* Write code like this C# example:&lt;br /&gt;
    using AutoIt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Jon&lt;br /&gt;
   // Wow, this is C#!&lt;br /&gt;
    AutoItX.Run(&amp;quot;notepad.exe&amp;quot;);&lt;br /&gt;
    AutoItX.WinWaitActive(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.Send(&amp;quot;I&#039;m in notepad&amp;quot;);&lt;br /&gt;
    IntPtr winHandle = AutoItX.WinGetHandle(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.WinKill(winHandle);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the AutoItX Help File (included in the default AutoIt install):&lt;br /&gt;
AutoItX can be used as a standard DLL from any language capable of calling functions in external DLLs.&lt;br /&gt;
&lt;br /&gt;
The following files are provided to allow you to use the DLL in C++:&lt;br /&gt;
&lt;br /&gt;
* AutoItX3_DLL.h - C language header file showing the exported functions and parameters&lt;br /&gt;
* AutoItX3_DLL.lib - Microsoft format import library (x86)&lt;br /&gt;
* AutoItX3_x64_DLL.lib - Microsoft format import library (x64)&lt;br /&gt;
* AutoItX3.dll - The main AutoItX DLL (x86)&lt;br /&gt;
* AutoItX3_x64.dll - The main AutoItX DLL (x64)&lt;br /&gt;
&lt;br /&gt;
==How can I search an image in another image? ==&lt;br /&gt;
You can use the Pixel* functions of AutoIt. See the help file for more information and examples.&lt;br /&gt;
You can also use one of the UDFs below; most of which use GDI:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/158264-bmpsearch-search-for-bitmap-within-bitmap-assembly-version/ FASM example]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/140478-bitmap-processing-using-raw-code/ asm bitmap processing]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/66545-find-bmp-in-another-bmp-imagesearch/ find bitmap in bitmap]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?type=all&amp;amp;q=_GDIPlus_BitmapLockBits/ GDI bitmaps]&lt;br /&gt;
Other libraries can be found that make use of a specific external dll but those above are considered &amp;quot;native&amp;quot; as no external dlls are required.&lt;br /&gt;
&lt;br /&gt;
==Multithreading==&lt;br /&gt;
Multithreading basically is running multiple scripts/programs that have acces to the same variables, normally by sharing memory. &lt;br /&gt;
&lt;br /&gt;
The AutoIt language is not threadsafe and multithreading is firmly on the &amp;lt;b&amp;gt;NOT TO DO&amp;lt;/b&amp;gt; list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multitasking and Multi&amp;lt;i&amp;gt;processing&amp;lt;/i&amp;gt; are closely related, however, and multiple solutions have been explored:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25350-multithread/ Multithread technical discussion]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25494-threaded-dll-sample/ Multithread with external DLL]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/146794-multi-thread-autoit/ Multithread with external DLL 2]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/64390-how-to-multi-process-in-autoit/ Multi process]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/187334-using-net-libary-with-autoit-possible/ Using C# - Host .NET]&lt;br /&gt;
&lt;br /&gt;
==Test automation==&lt;br /&gt;
Many people are looking for freeware tools to do test automation and cannot afford the commercial tools like HP LeanFT, Ranorex, Squish etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
So how can AutoIt help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Out of the box install the base full zip package and start Scite.Exe as a simple IDE.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to do more these links will help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 31 for the basic stuff on which technologies are readable and which spying tools there are&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 38 for the bitmap stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/ Alternative project IDE]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/188158-net-common-language-runtime-clr-framework/ .NET stuff]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/84133-winhttp-functions/ WinHTTP]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/185401-restwhich-udf-to-use-webdriver-of-edge/ webdriver]&lt;br /&gt;
Android can be reached thru ADB and Webdriver&amp;lt;br /&amp;gt;&lt;br /&gt;
iOS is limited to normal webdriver stuff thru WinHTTP library. So most likely you have to install additional iOS webdriver solutions&amp;lt;br /&amp;gt;&lt;br /&gt;
And after reading FAQ just ask your questions in the support forum&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DPI Awareness==&lt;br /&gt;
The following few links are related to DPI Awareness :&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166479-writing-dpi-awareness-app-workaround/ Writing DPI Awareness App - workaround]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/182423-wrong-screen-resolution-displayed-by-autoit-macros/ Wrong Screen Resolution Displayed by Autoit Macros]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/192529-dpi-awareness-any-suggestion/ DPI Awareness - question]&lt;br /&gt;
&lt;br /&gt;
==AutoIt+SciTE Portable Developer Environment==&lt;br /&gt;
Recent discussion can be found here:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/119572-autoit3-portable/?do=findComment&amp;amp;comment=1391105 How to make AutoIt+SciTE portable ]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13854</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13854"/>
		<updated>2018-10-21T21:24:26Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Does AutoIt support database connections, such as SQL? */ fixed Link to UDF&amp;#039;s&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of frequently asked questions asked on the forums.&lt;br /&gt;
&lt;br /&gt;
Other FAQs include:&lt;br /&gt;
* The one found in the [http://www.autoitscript.com/autoit3/docs/faq.htm AutoIt HelpFile].  Much of it is about the transition from V2 to V3, but most is still relevant and should be a port of call, as well as this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I debug my script?==&lt;br /&gt;
&lt;br /&gt;
=== In SciTE ===&lt;br /&gt;
This one has a myriad of answers, but the most effective is to begin by using the [http://www.autoitscript.com/autoit3/scite/ SciTE4AutoIt3 Editor] to create or edit scripts. This program is useful in debugging for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* Syntax highlighting allows for immediate viewing of any mistakes from unended script tags or quotes. This allows the scripter to visibly see the difference between the following portions of code.&lt;br /&gt;
[[File:FAQ_Q1_2.jpg|center|Incorrect code]]&lt;br /&gt;
And the correct version: &lt;br /&gt;
[[File:FAQ_Q1_3.jpg|center||Correct Code]]&lt;br /&gt;
* Global syntax check built directly into the tools menu allows you to check an entire script for problems all at once.&lt;br /&gt;
* Built-in code tidying program that correctly indents untidy code and repairs messy scripts to allow them to be more readable. It also corrects problems with incorrectly capitalised function names and variables.&lt;br /&gt;
* Per-line trace insertion allows you to log every line of code executed to debug errors.&lt;br /&gt;
* Debug MsgBoxes or ConsoleWrites are able to be added anywhere in the script directly from SciTE. ConsoleWrite lines are less intrusive and prevent the added annoyance to the user of MsgBoxes.&lt;br /&gt;
&lt;br /&gt;
You can also use AutoIt3Wrapper directive:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#AutoIt3Wrapper_Run_Debug_Mode=Y&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FAQ_Q1_4.jpg|center|Picture of SciTE4AutoIt3]]&lt;br /&gt;
&lt;br /&gt;
=== Using more code to check @error value ===&lt;br /&gt;
Nearly all functions will return something.  Most of the time when a function fails, it returns 0 and sets @error.  You can use this information not only to create scripts that handle for different errors but to debug and find out exactly why you are having problems.  Check the help file for specific functions and their return values.&lt;br /&gt;
&lt;br /&gt;
=== Via the Tray icon===&lt;br /&gt;
You can add this line at the top of your script (1 is on, 0 is off) to enable debugging from the tray icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;AutoItSetOption (&amp;quot;TrayIconDebug&amp;quot;, 1);0-off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then if you run the script (uncompiled as an AU3 file), you can mouse over the AutoIt icon in the system tray (down by the clock) to display debugging information.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_1.jpg|center|Example output for TrayIconDebug]]&lt;br /&gt;
&lt;br /&gt;
=== OutputDebugString native call ===&lt;br /&gt;
You can also debug a script on any computer by adding the following code to your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _MyDebug($sMessage, $iError = @error, $iExtended = @extended)&lt;br /&gt;
	If $iError Or $iExtended Then&lt;br /&gt;
		$sMessage &amp;amp;= &#039;[ @error = &#039; &amp;amp; $iError &amp;amp; &#039; @extended = &#039; &amp;amp; $iExtended &amp;amp; &#039; ]&#039;&lt;br /&gt;
	EndIf&lt;br /&gt;
	DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;OutputDebugString&amp;quot;, &amp;quot;str&amp;quot;, $sMessage)&lt;br /&gt;
	Return SetError($iError, $iExtended, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyDebug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then, when you need to add a debug line, call it as necessary. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;_MyDebug(&amp;quot;The value of Variable 1 at this time is &amp;quot; &amp;amp; $var1)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This debugging is completely transparent to the user, and is only viewable with a program such as DebugView from SysInternals. This method of debugging has the added advantage of being available to the developer in situations where is not acceptable or feasable to install SciTE on a client&#039;s unit.&lt;br /&gt;
&lt;br /&gt;
=== Graphical debugger ===&lt;br /&gt;
Stumpii created a [http://www.autoitscript.com/forum/index.php?showtopic=21834 Graphical AutoIt Debugger], similar to Dev-C++&#039;s debugging style.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_5.jpg|center|Stumpii&#039;s Graphical AutoIt Debugger]]&lt;br /&gt;
&lt;br /&gt;
=== Another debugger for AutoIt ===&lt;br /&gt;
Heron created a [http://www.autoitscript.com/forum/index.php?showtopic=103142 Another debugger for AutoIt].&lt;br /&gt;
&lt;br /&gt;
The latest version by asdf8 is here:&lt;br /&gt;
https://www.autoitscript.com/forum/topic/103142-another-debugger-for-autoit/?do=findComment&amp;amp;comment=1303208&lt;br /&gt;
&lt;br /&gt;
=== Other UDF to log/trace/script analyze ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
==How can I run something that is not an exe file [.txt, .msi, .pdf,.jpg etc.] [or] How can I open a webpage in the default browser?==&lt;br /&gt;
It was for this reason that the ShellExecute function was created. Here is one example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;edit&amp;quot;, @SW_MAXIMIZE)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also specify a web address this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;http://www.autoitscript.com/forum&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;open&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you normally are able to right-click the file and select print, then you can also print the file from AutoIt using this function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\boot.ini&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;print&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to open the file with the default program, you can do as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish your script to wait until the process is finished, you can use the ShellExecuteWait function with the same parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The default verb is the verb configured in the registry. If no verb is set as default in the registry then the &amp;quot;open&amp;quot; verb is used. If the &amp;quot;open&amp;quot; verb is not present then the first verb listed in the registry is used.&lt;br /&gt;
&lt;br /&gt;
==How can I prevent more than one copy of my script from running at once, or detect another copy of my script running?==&lt;br /&gt;
&lt;br /&gt;
=== _Singleton function ===&lt;br /&gt;
There are a few different ways to go about this. You can use a function called _Singleton to detect multiple instances of your script. An example of how to use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
_Singleton(&amp;quot;TheNameOfMyScript&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this instance, the script will bring up some messages explaining to the user of the occurring events. &lt;br /&gt;
This example will show you how the above function can be used in a real world application.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _Singleton(&amp;quot;MyScriptName&amp;quot;, 1) = 0 Then&lt;br /&gt;
    ; If successful, running our script a second time should cause us to fall through here&lt;br /&gt;
    MsgBox($MB_ICONERROR, &amp;quot;User Generated Error Message&amp;quot;, &amp;quot;Error: This script is already running!&amp;quot;)&lt;br /&gt;
Else&lt;br /&gt;
    ; We have detected that we are the only instance running, now we will run a second instance to display _Singleton&#039;s function!&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We are the first instance of this script, press OK to run another instance and trigger the error message!&amp;quot;)&lt;br /&gt;
    Switch @Compiled&lt;br /&gt;
        Case 1&lt;br /&gt;
            Run(FileGetShortName(@ScriptFullPath));when running an app, it&#039;s usually better to use its short name&lt;br /&gt;
        Case 0&lt;br /&gt;
            Run(FileGetShortName(@AutoItExe) &amp;amp; &#039; /AutoIt3ExecuteScript &#039; &amp;amp; FileGetShortName(@ScriptFullPath))&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We ran a second instance, you should have recieved an error message!&amp;quot;, 5)&lt;br /&gt;
EndIf&lt;br /&gt;
Exit&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_MutexExists function ===&lt;br /&gt;
Another method is to use _MutexExists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _MutexExists(&amp;quot;MydeswswScriptName&amp;quot;) Then&lt;br /&gt;
	; We know the script is already running. Let the user know.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;Script Name&amp;quot;, &amp;quot;This script is already running. Using multiple copies of this script at the same time is unsupported!&amp;quot;)&lt;br /&gt;
	Exit&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
;Function Author- Martin&lt;br /&gt;
Func _MutexExists($sOccurenceName)&lt;br /&gt;
	Local $ERROR_ALREADY_EXISTS = 183, $handle, $lastError&lt;br /&gt;
	$sOccurenceName = StringReplace($sOccurenceName, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;); to avoid error&lt;br /&gt;
	$handle = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;CreateMutex&amp;quot;, &amp;quot;int&amp;quot;, 0, &amp;quot;long&amp;quot;, 1, &amp;quot;str&amp;quot;, $sOccurenceName)&lt;br /&gt;
	$lastError = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetLastError&amp;quot;)&lt;br /&gt;
	Return $lastError[0] = $ERROR_ALREADY_EXISTS&lt;br /&gt;
EndFunc;==&amp;gt;_MutexExists&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I run my script as a service?==&lt;br /&gt;
This is also a question with multiple answers, and none of them are the only way to do it. The first question to ask yourself is whether or not you wish to install the service on other computers besides your own.&lt;br /&gt;
&lt;br /&gt;
=== On your own computer - One time only ===&lt;br /&gt;
The easiest way to do this is to use Pirmasoft RunAsSvc. This program makes services easy to install and easy to remove when necessary.&lt;br /&gt;
&lt;br /&gt;
=== On all computers that run your script===&lt;br /&gt;
To do this you can use SRVANY.EXE and [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3]. You can then use this code to install your script as a service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_CreateService(&amp;quot;&amp;quot;, $servicename, &amp;quot;My AutoIt Script&amp;quot;, &amp;quot;C:\Path_to_\srvany.exe&amp;quot;, &amp;quot;LocalSystem&amp;quot;, &amp;quot;&amp;quot;, 0x110)&lt;br /&gt;
RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\&amp;quot; &amp;amp; $servicename &amp;amp; &amp;quot;\Parameters&amp;quot;, &amp;quot;Application&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the following code to delete this service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_DeleteService(&amp;quot;&amp;quot;, $servicename)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one caveat to setting up AutoIt as a service. If the service is not installed using the above code, it must have the &amp;quot;allow service to interact with the desktop&amp;quot; setting or else automation functions such as Control* or Win* functions will not function. To assure the service does indeed have this setting, use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\[ServiceName]&amp;quot;, &amp;quot;Type&amp;quot;, &amp;quot;REG_DWORD&amp;quot;, 0x110)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I create/start/stop or otherwise control a service?==&lt;br /&gt;
There are two include libraries that are designed specifically to interact with services. These are the following:&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3] made by SumTingWong. Functionality:&lt;br /&gt;
** _StartService()&lt;br /&gt;
** _StopService()&lt;br /&gt;
** _ServiceExists()&lt;br /&gt;
** _ServiceRunning()&lt;br /&gt;
** _CreateService()&lt;br /&gt;
** _DeleteService()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22165 _NTServices.au3] made by CatchFish. Functionality:&lt;br /&gt;
** _ServiceStart()&lt;br /&gt;
** _ServiceStop()&lt;br /&gt;
** _ServiceStatus()&lt;br /&gt;
** _ServicePause()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I display a progress bar while copying files or directories?==&lt;br /&gt;
There are a many different topics on how to do this.  For more, just search the forums for [http://www.autoitscript.com/forum/index.php?act=Search&amp;amp;CODE=show&amp;amp;searchid=22030d4d4effe5e32da23fdb69ed772f&amp;amp;search_in=posts&amp;amp;result_type=topics&amp;amp;highlite=%2BCopy%2B Progress Copy + Progress].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11313 Copy with progress dialog]... By ezztabi&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11888 Yet another copy with progress]... By SumTingWong&lt;br /&gt;
* [http://www.autoit.de/index.php?page=Thread&amp;amp;postID=58875 _MultiFileCopy]... By Oscar (German Forums)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19370&amp;amp;st=45&amp;amp;p=186198&amp;amp;#entry186198 _FileCopy]... By Jos&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q6_1.jpg|center|Copy progress dialog by ezztabi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make a hotkey that only works in my GUI?==&lt;br /&gt;
It used to be quite tedious setting hotkeys to only work in your GUI.  Now there is an easier way with the function GUISetAccelerators.&lt;br /&gt;
&lt;br /&gt;
(From Helpfile example)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; A simple custom messagebox that uses the MessageLoop mode&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Custom Msgbox&amp;quot;, 210, 80)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Please click a button!&amp;quot;, 10, 10)&lt;br /&gt;
$YesID = GUICtrlCreateButton(&amp;quot;Yes&amp;quot;, 10, 50, 50, 20)&lt;br /&gt;
$NoID = GUICtrlCreateButton(&amp;quot;No&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$ExitID = GUICtrlCreateButton(&amp;quot;Exit&amp;quot;, 150, 50, 50, 20)&lt;br /&gt;
&lt;br /&gt;
; Set accelerators for Ctrl+y and Ctrl+n&lt;br /&gt;
Dim $AccelKeys[2][2]=[[&amp;quot;^y&amp;quot;, $YesID], [&amp;quot;^n&amp;quot;, $NoID]]&lt;br /&gt;
GUISetAccelerators($AccelKeys)&lt;br /&gt;
&lt;br /&gt;
GUISetState(); display the GUI&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
	$msg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case $msg = $YesID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		Case $msg = $NoID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;No&amp;quot;)&lt;br /&gt;
		Case $msg = $ExitID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Exit&amp;quot;)&lt;br /&gt;
		Case $msg = $GUI_EVENT_CLOSE&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Close&amp;quot;)&lt;br /&gt;
	EndSelect&lt;br /&gt;
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I perform an action while a key is held down?==&lt;br /&gt;
You can use the _IsPressed() function to determine when a key is held down. The values that can be specified in this function are listed in the AutoIt Help File under User Defined Functions -&amp;gt; Misc Management -&amp;gt; _IsPressed. The following example will press the left mouse button while the k key is held down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
$pressed = 0&lt;br /&gt;
While 1&lt;br /&gt;
	If _IsPressed(&amp;quot;4B&amp;quot;) Then&lt;br /&gt;
		If Not $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;K Key being held down&amp;quot;)&lt;br /&gt;
			MouseDown(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 1&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		If $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;&amp;quot;)&lt;br /&gt;
			MouseUp(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 0&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(250)&lt;br /&gt;
WEnd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I run my script on a remote computer over the network?==&lt;br /&gt;
The answer to this question depends on how much experience you have in networking. If the target system is a Windows system to which you have administrator access then you may use one of the following programs:&lt;br /&gt;
&lt;br /&gt;
* PsExec from SysInternals&lt;br /&gt;
* BeyondExec from BeyondLogic&lt;br /&gt;
&lt;br /&gt;
With either of these programs it is possible to launch any process on a remote system and even copy your script to the target computer before starting it. Neither these programs nor any others will work with Windows XP Home Edition unless you create a custom &amp;quot;command listener&amp;quot; that you manually install on the target system.&lt;br /&gt;
&lt;br /&gt;
NOTE: Those of you with more advanced programming skills and a little imagination can figure out how to use the service control libraries and srvany.exe to do this same thing without either of the above mentioned programs.&lt;br /&gt;
&lt;br /&gt;
==How can I make a User Defined Function with optional parameters like the ones I see in the Help File?==&lt;br /&gt;
You can specify optional parameters by giving them a default value in the Func declaration. An example of how this is done:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Func testme($param1, $param2 = &amp;quot;nothing&amp;quot;, $param3 = 5)&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;&amp;quot;, &amp;quot;Parameter one is required. The value of Parameter 1 is &amp;quot; &amp;amp; $param1 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 2 is optional. The value of Parameter 2 is &amp;quot; &amp;amp; $param2 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 3 is optional. The value of Parameter 3 is &amp;quot; &amp;amp; $param3)&lt;br /&gt;
EndFunc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If testme() is called with only one parameter [I.E. testme(&amp;quot;test&amp;quot;)] then the output is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
However, if the function is called with more than one parameter like this testme(&amp;quot;test&amp;quot;, &amp;quot;something&amp;quot;), then the output is&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is something&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make my script start every time windows starts?==&lt;br /&gt;
You can use one of the following codes to allow your script to start with Windows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&amp;quot;, &amp;quot;MyProgramName&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;FileCreateShortcut(@ScriptFullPath, @StartupCommonDir &amp;amp; &amp;quot;\MyProgramName.lnk&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or place a Shortcut in the Startup folder, or the entire Executable.  For Win8+ systems, use the Win+R keys to open a Run box, then &amp;quot;Shell:Startup&amp;quot; to access the Startup folder. Due to Windows User Account Control (UAC) restrictions, your script may require [https://www.autoitscript.com/autoit3/docs/keywords/RequireAdmin.htm #RequireAdmin].&lt;br /&gt;
&lt;br /&gt;
==How can I have the script delete itself?==&lt;br /&gt;
The following function will delete the running script or .exe once it has finished execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: Make a copy of your script before calling this function!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _SelfDelete($iDelay = 0)&lt;br /&gt;
	Local $sCmdFile&lt;br /&gt;
	FileDelete(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;)&lt;br /&gt;
	$sCmdFile = &#039;ping -n &#039; &amp;amp; $iDelay &amp;amp; &#039; 127.0.0.1 &amp;gt; nul&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;:loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot;&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;if exist &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; goto loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del %0&#039;&lt;br /&gt;
	FileWrite(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, $sCmdFile)&lt;br /&gt;
	Run(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, @TempDir, @SW_HIDE)&lt;br /&gt;
EndFunc;==&amp;gt;_SelfDelete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I create a clickable website hyperlink in my gui?==&lt;br /&gt;
[[File:FAQ_Q13_1.jpg|center|Example GUI using Gary&#039;s UDF.]]&lt;br /&gt;
&lt;br /&gt;
Gary Frost has made great advances in this area and has provided a [http://www.autoitscript.com/forum/index.php?showtopic=23111&amp;amp;st=0 UDF here] (&#039;&#039;&#039;the UDF was removed from the post&#039;&#039;&#039;) to help with doing this.&lt;br /&gt;
&lt;br /&gt;
==How can I change the screen resolution / refresh rate / color depth?==&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=20121 ChangeResolution.au3] is a library function created to make changes to these settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I get the screen resolution in multiple monitor setups?==&lt;br /&gt;
The following code was worked out by Larry to determine the total screen resolution of multiple monitors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$aTSR = _GetTotalScreenResolution()&lt;br /&gt;
MsgBox($MB_OK, &amp;quot;Total Screen Resolution&amp;quot;, &amp;quot;Width = &amp;quot; &amp;amp; $aTSR[0] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Height = &amp;quot; &amp;amp; $aTSR[1])&lt;br /&gt;
&lt;br /&gt;
;Original code by Larry.&lt;br /&gt;
;Edited by BrettF&lt;br /&gt;
Func _GetTotalScreenResolution()&lt;br /&gt;
	Local $aRet[2]&lt;br /&gt;
	Global Const $SM_VIRTUALWIDTH = 78&lt;br /&gt;
	Global Const $SM_VIRTUALHEIGHT = 79&lt;br /&gt;
	$VirtualDesktopWidth = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALWIDTH)&lt;br /&gt;
	$aRet[0] = $VirtualDesktopWidth[0]&lt;br /&gt;
	$VirtualDesktopHeight = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALHEIGHT)&lt;br /&gt;
	$aRet[1] = $VirtualDesktopHeight[0]&lt;br /&gt;
	Return $aRet&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  How can I register a file type with my program [or] How can I make files with a certain extension open in my program?==&lt;br /&gt;
[[File:FAQ_Q16_1.jpg|center|Example of how a file type can be registered.]]&lt;br /&gt;
File registration can be a tricky business for those who have not done it before. The first thing to be done is to modify your script to allow it to accept files from the command line. Here is one example of how to do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;$cmdline[0] is the number of parameters passed&lt;br /&gt;
If $cmdline[0] &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
	$filename = $cmdline[1]&lt;br /&gt;
;Do something with the file here&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;The file name passed to the command line is &amp;quot;&#039; &amp;amp; $filename &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
Else&lt;br /&gt;
; We did not get any command line parameters.&lt;br /&gt;
; If this is a command line only program, you would want to&lt;br /&gt;
; alert the user that the command line parameters were incorrect.&lt;br /&gt;
; If this is a GUI program (like a notepad program), you would&lt;br /&gt;
; want to simply continue from here without opening a file.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;Command line parameters incorrect.&#039; &amp;amp; @CRLF &amp;amp; &#039;Command line usage: &amp;quot;&#039; &amp;amp; @ScriptName &amp;amp; &#039;&amp;quot; &amp;quot;file to process&amp;quot;&#039;)&lt;br /&gt;
 EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After your script is ready to accept files, you can begin to register the file type you need with your program. To prevent errors, this-is-me has created a UDF that will allow you to do this easily:&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to register and unregister a file extension using this UDF:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;quot;FileRegister.au3&amp;quot;&lt;br /&gt;
;================================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileRegister($ext, $cmd, $verb [, $def [, $icon = &amp;quot;&amp;quot; [, $desc = &amp;quot;&amp;quot; ]]])&lt;br /&gt;
;			   Registers a file type in Explorer&lt;br /&gt;
;&lt;br /&gt;
; Parameter(s): $ext -  File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;		$cmd -  Program path with arguments eg. &#039;&amp;quot;C:\test\testprog.exe&amp;quot; &amp;quot;%1&amp;quot;&#039;&lt;br /&gt;
;			 (%1 is 1st argument, %2 is 2nd, etc.)&lt;br /&gt;
;		$verb - Name of action to perform on file&lt;br /&gt;
;			 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;		$def -  Action is the default action for this filetype&lt;br /&gt;
;			 (1 for true 0 for false)&lt;br /&gt;
;			 If the file is not already associated, this will be the default.&lt;br /&gt;
;		$icon - Default icon for filetype including resource # if needed&lt;br /&gt;
;			 eg. &amp;quot;C:\test\testprog.exe,0&amp;quot; or &amp;quot;C:\test\filetype.ico&amp;quot;&lt;br /&gt;
;		$desc - File Description eg. &amp;quot;Zip File&amp;quot; or &amp;quot;ProgramName Document&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;================================================&lt;br /&gt;
&lt;br /&gt;
 FileRegister(&amp;quot;uxy&amp;quot;, &#039;&amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; &amp;quot;%1&amp;quot;&#039;, &amp;quot;Open in UXYFixer&amp;quot;, 1, @ScriptFullPath &amp;amp; &#039;,0&#039;, &amp;quot;UXYFixer Document&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;========================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileUnRegister($ext, $verb)&lt;br /&gt;
;			   UnRegisters a verb for a file type in Explorer&lt;br /&gt;
; Parameter(s):  $ext - File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;			   $verb - Name of file action to remove&lt;br /&gt;
;					 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;========================================&lt;br /&gt;
&lt;br /&gt;
 FileUnRegister(&amp;quot;uxy&amp;quot;, &amp;quot;Open in UXYFixer&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download here:&#039;&#039;&#039;&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=26378 FileRegister.au3]&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my combobox (GUICtrlCreateCombo) show a dropdown list when clicked?==&lt;br /&gt;
When using GUICtrlCreateCombo be sure to enter the desired height for your combobox list in the &amp;quot;height&amp;quot; parameter. Windows XP automatically selects an appropriate height for combo boxes, but other versions of Windows usually do not.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,20)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Would correctly be changed to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,200)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why isn&#039;t my thread getting any replies?==&lt;br /&gt;
&lt;br /&gt;
=== Asking the right question right ===&lt;br /&gt;
Did you give a good description of the problem? If your title or explanation of the issue is not descriptive, users are likely to bypass your issue instead of helping. Post titles such as &amp;quot;Help Me&amp;quot;, &amp;quot;I Have A Problem&amp;quot;, &amp;quot;Question&amp;quot;, &amp;quot;Help me fix my code&amp;quot;, &amp;quot;This code doesn&#039;t work&amp;quot; or similarly worded titles will not readily draw forum users to your post. Experienced users (which are your best hope of resolving the issue) will often skip your post altogether in cases like this. An example of a post title descriptive enough to attract users to assist you is &amp;quot;Problem with WinWaitClose&amp;quot; or &amp;quot;Loop never ends&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Example for reproduction ===&lt;br /&gt;
Did you post example code? If you have not posted an example of the code you are having an issue with, then you will not recieve support. When posting a non-working script, please do so in the smallest amount of stand-alone code possible. If the code you post cannot run by itself on another person&#039;s computer, they will not be able to recreate the issue.&lt;br /&gt;
&lt;br /&gt;
=== Information about Environment ===&lt;br /&gt;
Did you provide any information about your AutoIt Development Environment ? &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
; Version: 1.00. AutoIt: V3.3.8.1&lt;br /&gt;
; Retrieve the recommended information of the current system when posting a support question.&lt;br /&gt;
Local $sSystemInfo = &#039;I have a valid AutoIt support question and kindly provided the details of my system:&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;AutoIt Version: V&#039; &amp;amp; @AutoItVersion &amp;amp; &#039; [&#039; &amp;amp; (@AutoItX64 ?&#039;X64&#039;:&#039;X32&#039;) &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Windows Version: &#039; &amp;amp; @OSVersion &amp;amp; &#039; [&#039; &amp;amp; @OSArch &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Language: &#039; &amp;amp; _GetOSLanguage() &amp;amp; &#039; (&#039; &amp;amp; @OSLang &amp;amp; &#039;)&#039; &amp;amp; @CRLF &amp;amp; @CRLF&lt;br /&gt;
ClipPut($sSystemInfo)&lt;br /&gt;
MsgBox(4096, &#039;This info has been copied to the clipboard. Use Ctrl + V to retrieve it.&#039;, $sSystemInfo)&lt;br /&gt;
&lt;br /&gt;
Func _GetOSLanguage()&lt;br /&gt;
     Local $aString[20] = [19, &amp;quot;0409 0809 0C09 1009 1409 1809 1C09 2009 2409 2809 2C09 3009 3409&amp;quot;, &amp;quot;0404 0804 0C04 1004 0406&amp;quot;, &amp;quot;0406&amp;quot;, &amp;quot;0413 0813&amp;quot;, &amp;quot;0425&amp;quot;, _&lt;br /&gt;
               &amp;quot;040B&amp;quot;, &amp;quot;040C 080C 0C0C 100C 140C 180C&amp;quot;, &amp;quot;0407 0807 0C07 1007 1407&amp;quot;, &amp;quot;040E&amp;quot;, &amp;quot;0410 0810&amp;quot;, _&lt;br /&gt;
               &amp;quot;0411&amp;quot;, &amp;quot;0414 0814&amp;quot;, &amp;quot;0415&amp;quot;, &amp;quot;0416 0816&amp;quot;, &amp;quot;0418&amp;quot;, _&lt;br /&gt;
               &amp;quot;0419&amp;quot;, &amp;quot;081A 0C1A&amp;quot;, &amp;quot;040A 080A 0C0A 100A 140A 180A 1C0A 200A 240A 280A 2C0A 300A 340A 380A 3C0A 400A 440A 480A 4C0A 500A&amp;quot;, &amp;quot;041D 081D&amp;quot;]&lt;br /&gt;
     Local $aLanguage[20] = [19, &amp;quot;English&amp;quot;, &amp;quot;Chinese&amp;quot;, &amp;quot;Danish&amp;quot;, &amp;quot;Dutch&amp;quot;, &amp;quot;Estonian&amp;quot;, &amp;quot;Finnish&amp;quot;, &amp;quot;French&amp;quot;, &amp;quot;German&amp;quot;, &amp;quot;Hungarian&amp;quot;, &amp;quot;Italian&amp;quot;, _&lt;br /&gt;
               &amp;quot;Japanese&amp;quot;, &amp;quot;Norwegian&amp;quot;, &amp;quot;Polish&amp;quot;, &amp;quot;Portuguese&amp;quot;, &amp;quot;Romanian&amp;quot;, &amp;quot;Russian&amp;quot;, &amp;quot;Serbian&amp;quot;, &amp;quot;Spanish&amp;quot;, &amp;quot;Swedish&amp;quot;]&lt;br /&gt;
     For $i = 1 To $aString[0]&lt;br /&gt;
          If StringInStr($aString[$i], @OSLang) Then&lt;br /&gt;
               Return $aLanguage[$i]&lt;br /&gt;
          EndIf&lt;br /&gt;
     Next&lt;br /&gt;
     Return $aLanguage[1]&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetOSLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Speak English and speak it right ===&lt;br /&gt;
Did you use proper English? Here are guidelines for posting properly in the English language:&lt;br /&gt;
* Use proper case.  THIS IS CONSIDERED YELLING. If you post in ALL UPPERCASE or all lowercase then you will not be taken seriously.&lt;br /&gt;
* Use proper punctuation. Complete sentences need only one trailing punctuation mark. Twelve exclamation points after every sentence &amp;lt;b&amp;gt;will not&amp;lt;/b&amp;gt; get you an answer more quickly (just the opposite) Writing a sentence without simple punctuation such as commas reflects badly on your attention to detail, and is considered a good judge of the poster&#039;s coding style. If you cannot summon the intellect to write a sentence with correct punctuation, you will most likely miss simple coding mistakes such as unterminated quotes.&lt;br /&gt;
&lt;br /&gt;
=== Breaking forum rules, law, modesty, or common sense ===&lt;br /&gt;
Show common sense by following the forum rules, http://www.autoitscript.com/forum/topic/169097-forum-rules/, as well as generally accepted forum etiquette. Repeated failure to do so will result in sanctions by the Moderation team as it ruins the experience for everyone.&lt;br /&gt;
&lt;br /&gt;
==Why does the Ctrl key get stuck down after I run my script?==&lt;br /&gt;
&lt;br /&gt;
=== Keys virtually stuck ===&lt;br /&gt;
It could equally be the Shift or the Alt key.&lt;br /&gt;
&lt;br /&gt;
If you use Send in a script and you have a problem with keys being stuck down then Send is the most likely culprit. A similar problem can occur with BlockInput. The solution is generally quite simple. If there is a key like Shift or Alt held down at the start of the Send sequence, but that key is released by the time the Send sequence finishes then the key will get &#039;stuck&#039; down. As an example of a solution, you could replace the Send function in your script with the _SendEx function below.&lt;br /&gt;
&lt;br /&gt;
The _SendEx function waits for the Shift, Alt and Ctrl keys to be released or pops up a warning if the $warn parameter is not an empty string. Therefore it is not intended to be used when one of these modifier keys has been set to be down using any combination of {ALTDOWN}, {SHIFTDOWN} and {ALTDOWN}.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt; Misc.au3 &amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
;Send the string $ss after the Shift Alt and Ctrl keys are released. Optionally give a warning after 1 sec if any of those keys are still down.&lt;br /&gt;
;Requires misc.au3 to be included in the script for the _IsPressed function.&lt;br /&gt;
&lt;br /&gt;
Func _SendEx($ss, $warn = &amp;quot;&amp;quot;)&lt;br /&gt;
	Local $iT = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	While _IsPressed(&amp;quot;10&amp;quot;) Or _IsPressed(&amp;quot;11&amp;quot;) Or _IsPressed(&amp;quot;12&amp;quot;)&lt;br /&gt;
		If $warn &amp;lt;&amp;gt; &amp;quot;&amp;quot; And TimerDiff($iT) &amp;gt; 1000 Then&lt;br /&gt;
			MsgBox($MB_TOPMOST, &amp;quot;Warning&amp;quot;, $warn)&lt;br /&gt;
		EndIf&lt;br /&gt;
		Sleep(50)&lt;br /&gt;
	WEnd&lt;br /&gt;
	Send($ss)&lt;br /&gt;
EndFunc;==&amp;gt;_SendEx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General unstuck method ===&lt;br /&gt;
Shilbiz also discovered that the following can &#039;clear&#039; locked down keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt; ControlSend(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;text&amp;quot;, 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use Pixel functions?==&lt;br /&gt;
&lt;br /&gt;
=== Using a color change as an event ===&lt;br /&gt;
The following is an example of using the pixel to check if the colour has changed in a specific region.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $PixelCheck = 0, $NewCheck&lt;br /&gt;
$PixelCheck = PixelCheckSum(40, 50, 60, 70); Get the checksum for this area.&lt;br /&gt;
While 1; Keep going&lt;br /&gt;
	$NewCheck = PixelCheckSum(40, 50, 60, 70)&lt;br /&gt;
	If $PixelCheck &amp;lt;&amp;gt; $NewCheck Then&lt;br /&gt;
		; The old pixel checksum and the new one are different.&lt;br /&gt;
		$PixelCheck = $NewCheck; Update the $PixelCheck to the new value&lt;br /&gt;
		; Let us know it has changed.  Change this to what you want to happen when the colour in the region changes.&lt;br /&gt;
		Msgbox($MB_ICONWARNING,&amp;quot;PixelChecksum&amp;quot;,&amp;quot;Pixel region has changed !&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(50); Just to give the CPU a bit of a break.&lt;br /&gt;
Wend&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Searching for a specific pixel color ===&lt;br /&gt;
This is an example of searching for a specific pixel (red), both pure red (0xFF0000) and red in a few different shades.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
; Find a pure red pixel in the range 0,0-20,300&lt;br /&gt;
&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Find a pure red pixel or a red pixel within 10 shades variations of pure red&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my script work on a locked workstation?==&lt;br /&gt;
On a locked station any window will never be active (active is only dialog with text &amp;quot;Press Ctrl+Alt+Del&amp;quot;).  In Windows locked state applications run hidden (behind that visible dialog) and do not have focus and active status.  So generally don&#039;t use Send() MouseClick() WinActivate() WinWaitActive() WinActive() etc.  Instead use ControlSend() ControlSetText() ControlClick() WinWait() WinExists() WinMenuSelectItem() etc.  Doing so allows you to interact with an application regardless of whether it is active or not. It&#039;s possible to run such a script from scheduler on locked Windows stations.&lt;br /&gt;
&lt;br /&gt;
==Where can I learn AutoIt? Are there any tutorials?==&lt;br /&gt;
AutoIt is a constantly growing and evolving language with a diverse and engaged community of volunteers. This wiki, along with the official forum, will always be your best place for answers to questions as well as examples and tutorials. With this in mind, below are a few resources that can also help you as you become familiar with the language:&lt;br /&gt;
&lt;br /&gt;
AutoIt 1-2-3, an interactive classroom by Valuater:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=21048 http://www.autoitscript.com/forum/index.php?showtopic=21048]&lt;br /&gt;
&lt;br /&gt;
BrettF&#039;s updated AutoIt tutorial:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=84960 http://www.autoitscript.com/forum/index.php?showtopic=84960]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Learn To Program Using FREE Tools with AutoIt&amp;quot; PDF Book by Jfish&lt;br /&gt;
[https://www.autoitscript.com/forum/files/file/351-learn-to-program-using-free-tools-with-autoit/ Learn To Program Using FREE Tools with AutoIt]&lt;br /&gt;
&lt;br /&gt;
YouTube has a number of videos available:&lt;br /&gt;
[http://www.youtube.com/results?search_query=autoit+tutorial&amp;amp;search_type=&amp;amp;aq=0&amp;amp;oq=AutoIt YouTube AutoIt tutorials list]&lt;br /&gt;
&lt;br /&gt;
As always, when asking questions about a video or script you saw on an external source, please ensure you are adhering to the [[FAQ#Breaking_forum_rules.2C_law.2C_modesty.2C_or_common_Sense|forum rules]].&lt;br /&gt;
&lt;br /&gt;
==Why does my script no longer decompile?==&lt;br /&gt;
Decompilation is no longer supported, and is only available for the older versions of AutoIt (Version 3.2.5.1 and earlier compiled scripts).&lt;br /&gt;
&lt;br /&gt;
Please &#039;&#039;&#039;do not&#039;&#039;&#039; post on this topic; see the [[Decompiling FAQ]] for more information. Topics discussing decompilation of scripts will be locked immediately. Posting the source of a decompiled script with lead to immediate sanctions from the Moderation team, as it directly violates AutoIt EULA (End-User-License-Agreement).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt;You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.&amp;lt;/i&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I get a window handle when all I have is a PID?==&lt;br /&gt;
Refer to the following example showing converting and use when manipulating the window. The function is based on work by Smoke_N/Hubertus and Helge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Run process&lt;br /&gt;
$iPID = Run(&amp;quot;Notepad.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;Allow window to initialize...&lt;br /&gt;
Sleep (500)&lt;br /&gt;
&lt;br /&gt;
;Get HWND.&lt;br /&gt;
$hWnd = _GetHwndFromPID($iPID)&lt;br /&gt;
&lt;br /&gt;
;Maximize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MAXIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Minimize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MINIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Restore window&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_RESTORE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Move top left corner of screen, and resize to 800x600&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, 0, 0, 800, 600)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Calculate Center of screen.&lt;br /&gt;
$x = (@DesktopWidth / 2) - 400; Desktop width divided by 2, then minus half the width of the window&lt;br /&gt;
$y = (@DesktopHeight / 2) - 300; Desktop height divided by 2, then minus half the height of the window&lt;br /&gt;
&lt;br /&gt;
;Move to center of screen&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, $x, $y)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Close notepad&lt;br /&gt;
WinClose($hWnd)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Function for getting HWND from PID&lt;br /&gt;
Func _GetHwndFromPID($PID)&lt;br /&gt;
	$hWnd = 0&lt;br /&gt;
	$winlist = WinList()&lt;br /&gt;
	Do&lt;br /&gt;
		For $i = 1 To $winlist[0][0]&lt;br /&gt;
			If $winlist[$i][0] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$iPID2 = WinGetProcess($winlist[$i][1])&lt;br /&gt;
				If $iPID2 = $PID Then&lt;br /&gt;
					$hWnd = $winlist[$i][1]&lt;br /&gt;
					ExitLoop&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	Until $hWnd &amp;lt;&amp;gt; 0&lt;br /&gt;
	Return $hWnd&lt;br /&gt;
EndFunc;==&amp;gt;_GetHwndFromPID&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use single or double quotes in strings?==&lt;br /&gt;
It is a fairly simple concept once you get the basics down.  Basically there are a few different ways to go about mixing quotes in strings.&lt;br /&gt;
&lt;br /&gt;
A string in AutoIt can be encased in either single(&#039;) or double (&amp;quot;) quotes.  So if you want to add only one type of quote into your string, your first port of call is to use the other type of quote to encase the string.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &amp;quot;I am a &#039;quote&#039; inside the string&amp;quot;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&lt;br /&gt;
$var = &#039;I wish I could be a &amp;quot;quote&amp;quot; inside the string!&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have to have both types of quotes in the string, the easiest way is to escape the quote ending the string as so to speak.  To do this, use two quotes instead of one.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &#039;I am a single &#039;&#039;quote&#039;&#039; inside the string made using &amp;quot;single quote!&amp;quot;&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==When should I bump my threads?==&lt;br /&gt;
As a courtesy to other users you should only bump your post once in a 24 hour period.  Doing this allows all users the chance to get helped equally.  Also refer to [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;view=findpost&amp;amp;p=688050 Why isn&#039;t my thread getting any replies?], as this will help you get replies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I protect my code from decompilation?==&lt;br /&gt;
The fact of the matter is &#039;&#039;&#039;you can&#039;t fully protect your code&#039;&#039;&#039;.  AutoIt is an  interpreted language, so all scripts are interpreted, and that script has to get stored somewhere.  There is still hope though.  You can take certain measures to make the decompiled code less usable to the person that decompiled it.  The first step is to obfuscate your code.  This causes the code to become less readable.  Basically variables and functions are renamed, making it very hard to make head or tail of what is what.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Decompiling FAQ]] for more information.&lt;br /&gt;
&lt;br /&gt;
==How can I decompile my AutoIt EXEs?==&lt;br /&gt;
You cannot decompile your AutoIt compiled scripts unless it was compiled with AutoIt 3.2.5.1 or earlier.&lt;br /&gt;
&lt;br /&gt;
In order to be able to recover your script from the compiled executable, you can use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Original Author SmokeN&lt;br /&gt;
If $CMDLINE[0] Then&lt;br /&gt;
	If $CMDLINE[1] == &amp;quot;/SOURCE&amp;quot; AND $CMDLINE[2] == &amp;quot;MYPASSWORD&amp;quot; Then&lt;br /&gt;
		FileInstall(&amp;quot;ThisSCript.au3&amp;quot;, @ScriptDir &amp;amp; &amp;quot;\DecompiledScript.au3&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then if you run the compiled script with the following command line parameters your source will be extracted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;myscript.exe /SOURCE MYPASSWORD&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What is proper forum etiquette?  What rules are there for the forum?==&lt;br /&gt;
Proper forum etiquette will ensure you will stay a member of these forums.  So try to follow these rules.  Also see this [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;st=15&amp;amp;p=688050&amp;amp;#entry688050 FAQ post], as you should follow what is outlined there as well.&lt;br /&gt;
&lt;br /&gt;
* Use proper English.  MSN speak and the like makes it very hard to understand what you want.  Keep posts in proper case because UPPERCASE is considered yelling and lowercase makes you look stupid.  Don&#039;t use more punctuation marks than necessary. For example ?!!!? and ????? is completely unnecessary.&lt;br /&gt;
* Before posting help with a script, make sure you follow these steps:&lt;br /&gt;
*# Search for your issue.&lt;br /&gt;
*#* There are many thousands of posts on this forum, and chances are your question has been asked before.  Make sure to use a variety of terms to maximize your results.&lt;br /&gt;
*# Read the helpfile&lt;br /&gt;
*#* Most if not all things in the help file will have an example (native functions) or two.  Give them a go to try see how the functions work.  Most of the time it helps!&lt;br /&gt;
*# Give it a go&lt;br /&gt;
*#* Seriously, if you can&#039;t be bothered to give it a go, then why should we be bothered to help you?  If you feel you can&#039;t do it and you don&#039;t try then how will you ever know?  We always prefer that you give it a go because you can learn from your mistakes and hopefully understand it better.&lt;br /&gt;
*# Post your problem&lt;br /&gt;
*#* Make sure you post in the correct forum.&lt;br /&gt;
*#** &amp;lt;b&amp;gt;AutoIt Specific&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/2-autoit-general-help-and-support/ General Help and Support] (Most support questions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/10-autoit-gui-help-and-support/ GUI Support] (Support for the Graphical User Interface)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/14-autoitx-help-and-support/ AutoItX Support] (Support for the COM, DLL, PowerShell and .NET add-ons for AutoIt)&lt;br /&gt;
*#** &amp;lt;b&amp;gt;Non-AutoIt&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** Chat&lt;br /&gt;
*#*** Developer Chat&lt;br /&gt;
*#* Include a detailed description in the content of the post, and a detailed title&lt;br /&gt;
*#** Titles such as &#039;Help&#039; and &#039;What&#039;s wrong?&#039; are not acceptable.  To get the most help with your problem, be as descriptive as you can in the title, but keep in mind your title cannot be too long.&lt;br /&gt;
*#** Make sure you also include a descriptive question.  Just saying &#039;what is wrong with the following&#039; is also not acceptable, as we will have no idea what the problem is.  Describe what you think is wrong and what is not working.  It makes our job easier.&lt;br /&gt;
*#* Always include your code&lt;br /&gt;
*#** It shows us that you have tried and gives us a head start with something to play with.&lt;br /&gt;
* Usually asking for a script is not taken too well, within reason.  Keep in mind that this is a support forum, so please acknowledge that. We are here to help you with your scripts, not to spoon-feed code to you.  If you do need something written for you, maybe try  [http://www.rentacoder.com/ RentACoder], as they are more suited to requests.&lt;br /&gt;
* Don&#039;t PM other members asking for them to look at threads of to help you unless they request it.  It is actually quite rude and annoying to receive PMs of that nature.&lt;br /&gt;
* Lurk a little before you dive right in. Read a number of posts, or check out the group&#039;s archives. Get a feel for the tone of the forum so you can participate accordingly.&lt;br /&gt;
* Say online exactly what you would say in person. In other words, if you wouldn&#039;t say it to the person&#039;s face in front of your Grandmother, you shouldn&#039;t type it here.&lt;br /&gt;
* Remember your face doesn&#039;t show. Words alone can convey sentiment, but without benefit of inflection or facial expression, they can be misconstrued. Use descriptive wording, emoticons or .gifs to ensure your meaning is clear. By the same token, don&#039;t jump to conclusions about another person&#039;s intent in posting an unclear comment. When in doubt, ask for clarification.&lt;br /&gt;
* Be respectful. Internet etiquette is similar to standard etiquette in this area. Appreciate that your opinion is one of many. You can disagree with another person without being disrespectful or rude to other people.&lt;br /&gt;
* Ignore Trolls. If you engage in conversation with one, you&#039;ll raise your blood pressure and empower the troll. You can&#039;t win a flame war, and you can&#039;t sway a troll&#039;s opinion. Often, they don&#039;t even care about the subject.  They live for the conflict and nothing more. Trolls are common and not worthy of your time. Ignore their posts no matter how inflammatory and eventually they&#039;ll get bored and move on.&lt;br /&gt;
* When you have found an answer for your question:&lt;br /&gt;
*# Do not edit your post to be blank or to have worthless information.  People may be searching for the same issue you have, so be courteous to them by leaving your question there.&lt;br /&gt;
*# It is also optional to add the word [SOLVED] into the title, as well as selecting the post that best answered your question. It can make the lives of people searching easier.&lt;br /&gt;
* Finally follow the rules:&lt;br /&gt;
** [http://www.autoitscript.com/forum/topic/169097-forum-rules/ Forum rules]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=54168 Rules for the Chat forum]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=65889 Rules for asking for source code]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=37739 General policies and forum settings]&lt;br /&gt;
&lt;br /&gt;
Some general points taken from [http://www.ehow.com/how_2106033_use-proper-forum-etiquette.html here].&lt;br /&gt;
&lt;br /&gt;
==Are there forums available in my local language?==&lt;br /&gt;
Yes there are some available.  Some forum members here participate in multiple forums.&lt;br /&gt;
* [http://www.autoit.de/ German Forums]&lt;br /&gt;
* [http://www.autoit.fr/  French Forums]&lt;br /&gt;
* [http://www.autoit.es/ Spanish Forums]&lt;br /&gt;
* [http://autoit-script.ru/ Russian Forums]&lt;br /&gt;
* [http://forum.autoitbrasil.com/ Portuguese Forums]&lt;br /&gt;
&lt;br /&gt;
Please note that these are independent, community-run message boards and not just a translation of this board.&lt;br /&gt;
&lt;br /&gt;
==How can I control (click, edit etc) an external (html) application?==&lt;br /&gt;
You can use the control* functions of autoit see helpfile&lt;br /&gt;
of use specific udf libraries&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ IUIAutomation for multiple applications]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/154439-chrome-udf/ chrome chrome.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/149526-librariesieau3/ Internet explorer ie.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ firefox ff.au3] (End of life)&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy/ java]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?&amp;amp;q=Selenium Selenium]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/191990-webdriver-udf-w3c-compliant-version/ WebDriver UDF (IE, Chrome, FireFox)]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should use spy applications to identify objects like&lt;br /&gt;
* au3inf part of AutoIT&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ simplespy in the zip]&lt;br /&gt;
* jabsimplespy in examples section of the AutoIt forum&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/126716-control-viewer-autoit-window-info-tool/ control viewer]&lt;br /&gt;
* inspect as part of windows SDK&lt;br /&gt;
* VisualUIAVerifyNative.exe as part of windows SDK (8.1)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If above spy tools are not identifying your object you could try commercial tools (trials) like&lt;br /&gt;
* ranorex spy&lt;br /&gt;
* Testcomplete&lt;br /&gt;
* HP UFT&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And your last recognition can be bitmaps&lt;br /&gt;
* search for GDI&lt;br /&gt;
* search for findBMP&lt;br /&gt;
* search for imagesearch&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt support database connections, such as SQL?==&lt;br /&gt;
Yes! UDFs exist for several popular SQL solutions, including SQLite, Firebird, MySQL, MSSQL and ODBC connections for PostGreSQL and others.&lt;br /&gt;
&lt;br /&gt;
For an illustrative list, see this link:&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/wiki/User_Defined_Functions#Files.2C_Databases_and_web_connections Files, Databases and web connections]&lt;br /&gt;
&lt;br /&gt;
A DBF UDF also exists&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/145142-dbf-udf-dbase-database-read-and-write-with-dll/ DBF UDF dBase with DLL]&lt;br /&gt;
&lt;br /&gt;
==How can I include some files into my compiled Autoit&#039;s EXE?==&lt;br /&gt;
Use FileInstall() or ResourcesEx UDF from the forum Examples.  Additional resources can also be included at compile time, click the &amp;quot;Res Add Files&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
==How can I test if checkbox / radiobutton is checked?==&lt;br /&gt;
Use this small function: If IsChecked($checkbox1) Then ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Zedna&lt;br /&gt;
Func IsChecked($control)&lt;br /&gt;
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED&lt;br /&gt;
EndFunc   ;==&amp;gt;IsChecked&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use the {enter} key as a Tab?==&lt;br /&gt;
Use &lt;br /&gt;
[https://www.autoitscript.com/autoit3/docs/functions/GUISetAccelerators.htm Accelerator keys]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; by Melba23&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
&lt;br /&gt;
$cInput_1 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 10, 200, 20)&lt;br /&gt;
$cInput_2 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 50, 200, 20)&lt;br /&gt;
$cInput_3 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 90, 200, 20)&lt;br /&gt;
&lt;br /&gt;
$cButton_1 = GUICtrlCreateButton(&amp;quot;Button 1&amp;quot;, 250, 10, 80, 30)&lt;br /&gt;
$cButton_2 = GUICtrlCreateButton(&amp;quot;Button 2&amp;quot;, 250, 50, 80, 30)&lt;br /&gt;
$cButton_3 = GUICtrlCreateButton(&amp;quot;Button 3&amp;quot;, 250, 90, 80, 30)&lt;br /&gt;
&lt;br /&gt;
$cEnter = GUICtrlCreateDummy()&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Local $aAccelKeys[2][2] = [[&amp;quot;{ENTER}&amp;quot;, $cEnter], [&amp;quot;{TAB}&amp;quot;, $cEnter]] ; Make {TAB} an accelerator&lt;br /&gt;
GUISetAccelerators($aAccelKeys)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $cEnter&lt;br /&gt;
			Switch _WinAPI_GetFocus()&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_1)&lt;br /&gt;
					; Check the input content&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						; Correct so move to next input&lt;br /&gt;
						GUICtrlSetState($cInput_2, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
					; Not correct so stay in current input&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_2)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						GUICtrlSetState($cInput_3, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_3)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						ConsoleWrite(&amp;quot;End&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case Else&lt;br /&gt;
					GUISetAccelerators(0) ; Remove accelerator link&lt;br /&gt;
					ControlSend($hGUI, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;{TAB}&amp;quot;) ; Send {TAB} to the GUI&lt;br /&gt;
					GUISetAccelerators($aAccelKeys) ; Reset the accelerator&lt;br /&gt;
&lt;br /&gt;
			EndSwitch&lt;br /&gt;
	EndSwitch&lt;br /&gt;
&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func checkEntry()&lt;br /&gt;
&lt;br /&gt;
	; Random chance of correct answer or fail&lt;br /&gt;
	If Mod(@SEC, 2) = 0 Then&lt;br /&gt;
		MsgBox($MB_SYSTEMMODAL, &amp;quot;Test Fail&amp;quot;, &amp;quot;Press Enter to close this message box&amp;quot;)&lt;br /&gt;
		Return False&lt;br /&gt;
	EndIf&lt;br /&gt;
	Return True&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;checkEntry&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why are my number sort results wrong?==&lt;br /&gt;
AutoIt by default uses an alpha sort algorithm. This means that ABC is sorted correctly, but it sorts numbers as 1,10,2,22,3,31 where the user expects 1,2,3,10,22,31.&lt;br /&gt;
This can be remedied by using a custom sort function. An example of such a custom number sort by Valuater appears below.  Search the Forum for [https://www.autoitscript.com/forum/topic/95383-sorting-numbers/ Number Sort] and [https://www.autoitscript.com/forum/topic/83626-natural-order-string-comparison/ Natural Order String Comparison] &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Valuater&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$Array = StringSplit(&amp;quot;2,5,3,4,6,1,8,9,7&amp;quot;, &amp;quot;,&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
_ArraySortNum($Array)&lt;br /&gt;
&lt;br /&gt;
_ArrayDisplay($Array, &amp;quot;Sorted Array&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Func _ArraySortNum(ByRef $n_array, $i_descending = 0, $i_start = 1)&lt;br /&gt;
	Local $i_ub = UBound($n_array)&lt;br /&gt;
	For $i_count = $i_start To $i_ub - 2&lt;br /&gt;
		Local $i_se = $i_count&lt;br /&gt;
		If $i_descending Then&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;lt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;gt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
		Local $i_hld = $n_array[$i_count]&lt;br /&gt;
		$n_array[$i_count] = $n_array[$i_se]&lt;br /&gt;
		$n_array[$i_se] = $i_hld&lt;br /&gt;
	Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_ArraySortNum&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I include AutoIt functions in a C# / C++ / VB programme? AutoItX==&lt;br /&gt;
AutoIt is also supplied as 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;
[https://www.autoitscript.com/site/autoit/ Info on AutoItX] &lt;br /&gt;
&lt;br /&gt;
From AutoItX.chm:&lt;br /&gt;
AutoItX is a DLL version of AutoIt v3 that provides a subset of the features of AutoIt via an ActiveX/COM and DLL interface. This means that you can add AutoIt-like features to your favourite scripting and programming languages, e.g. VB, VBScript, Delphi, C, C++, Kixtart, and most other languages that support the use of DLLs.&lt;br /&gt;
&lt;br /&gt;
Here are some C++ source code samples from various projects by [https://www.autoitscript.com/forum/profile/1-jon/ Jon]. Most are free to use but check any license files that accompany the downloads for details.  All code was created in Microsoft Visual C (6 and 7) but most would probably compile under mingw32 as well.&lt;br /&gt;
[https://www.autoitscript.com/site/code/ Download C++ examples for AutoItX] &lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to regsvr it if you are using the c# library. The c# library uses the non-COM part of the DLL so it just needs to be in the same folder as the exe and add the assembly.dll to your project. From the documenation:&lt;br /&gt;
&lt;br /&gt;
Using the Assembly from VB/C# within in Visual Studio is very easy:&lt;br /&gt;
* Add a reference to AutoItX3.Assembly.dll to your project&lt;br /&gt;
* Add a using AutoIt; statement in the files you want to use AutoIt functions&lt;br /&gt;
* Distribute your final executable with the files AutoItX3.Assembly.dll, AutoItX3.dll, AutoItX3_x64.dll.&lt;br /&gt;
* Write code like this C# example:&lt;br /&gt;
    using AutoIt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Jon&lt;br /&gt;
   // Wow, this is C#!&lt;br /&gt;
    AutoItX.Run(&amp;quot;notepad.exe&amp;quot;);&lt;br /&gt;
    AutoItX.WinWaitActive(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.Send(&amp;quot;I&#039;m in notepad&amp;quot;);&lt;br /&gt;
    IntPtr winHandle = AutoItX.WinGetHandle(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.WinKill(winHandle);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the AutoItX Help File (included in the default AutoIt install):&lt;br /&gt;
AutoItX can be used as a standard DLL from any language capable of calling functions in external DLLs.&lt;br /&gt;
&lt;br /&gt;
The following files are provided to allow you to use the DLL in C++:&lt;br /&gt;
&lt;br /&gt;
* AutoItX3_DLL.h - C language header file showing the exported functions and parameters&lt;br /&gt;
* AutoItX3_DLL.lib - Microsoft format import library (x86)&lt;br /&gt;
* AutoItX3_x64_DLL.lib - Microsoft format import library (x64)&lt;br /&gt;
* AutoItX3.dll - The main AutoItX DLL (x86)&lt;br /&gt;
* AutoItX3_x64.dll - The main AutoItX DLL (x64)&lt;br /&gt;
&lt;br /&gt;
==How can I search an image in another image? ==&lt;br /&gt;
You can use the Pixel* functions of AutoIt. See the help file for more information and examples.&lt;br /&gt;
You can also use one of the UDFs below; most of which use GDI:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/158264-bmpsearch-search-for-bitmap-within-bitmap-assembly-version/ FASM example]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/140478-bitmap-processing-using-raw-code/ asm bitmap processing]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/66545-find-bmp-in-another-bmp-imagesearch/ find bitmap in bitmap]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?type=all&amp;amp;q=_GDIPlus_BitmapLockBits/ GDI bitmaps]&lt;br /&gt;
Other libraries can be found that make use of a specific external dll but those above are considered &amp;quot;native&amp;quot; as no external dlls are required.&lt;br /&gt;
&lt;br /&gt;
==Multithreading==&lt;br /&gt;
Multithreading basically is running multiple scripts/programs that have acces to the same variables, normally by sharing memory. &lt;br /&gt;
&lt;br /&gt;
The AutoIt language is not threadsafe and multithreading is firmly on the &amp;lt;b&amp;gt;NOT TO DO&amp;lt;/b&amp;gt; list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multitasking and Multi&amp;lt;i&amp;gt;processing&amp;lt;/i&amp;gt; are closely related, however, and multiple solutions have been explored:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25350-multithread/ Multithread technical discussion]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25494-threaded-dll-sample/ Multithread with external DLL]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/146794-multi-thread-autoit/ Multithread with external DLL 2]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/64390-how-to-multi-process-in-autoit/ Multi process]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/187334-using-net-libary-with-autoit-possible/ Using C# - Host .NET]&lt;br /&gt;
&lt;br /&gt;
==Test automation==&lt;br /&gt;
Many people are looking for freeware tools to do test automation and cannot afford the commercial tools like HP LeanFT, Ranorex, Squish etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
So how can AutoIt help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Out of the box install the base full zip package and start Scite.Exe as a simple IDE.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to do more these links will help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 31 for the basic stuff on which technologies are readable and which spying tools there are&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 38 for the bitmap stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/ Alternative project IDE]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/188158-net-common-language-runtime-clr-framework/ .NET stuff]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/84133-winhttp-functions/ WinHTTP]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/185401-restwhich-udf-to-use-webdriver-of-edge/ webdriver]&lt;br /&gt;
Android can be reached thru ADB and Webdriver&amp;lt;br /&amp;gt;&lt;br /&gt;
iOS is limited to normal webdriver stuff thru WinHTTP library. So most likely you have to install additional iOS webdriver solutions&amp;lt;br /&amp;gt;&lt;br /&gt;
And after reading FAQ just ask your questions in the support forum&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DPI Awareness==&lt;br /&gt;
The following few links are related to DPI Awareness :&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166479-writing-dpi-awareness-app-workaround/ Writing DPI Awareness App - workaround]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/182423-wrong-screen-resolution-displayed-by-autoit-macros/ Wrong Screen Resolution Displayed by Autoit Macros]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/192529-dpi-awareness-any-suggestion/ DPI Awareness - question]&lt;br /&gt;
&lt;br /&gt;
==AutoIt+SciTE Portable Developer Environment==&lt;br /&gt;
Recent discussion can be found here:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/119572-autoit3-portable/?do=findComment&amp;amp;comment=1391105 How to make AutoIt+SciTE portable ]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=13853</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=13853"/>
		<updated>2018-10-21T00:37:40Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Dual Monitor + WorkingArea */  comments fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&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;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&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;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&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;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&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;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&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;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&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 $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&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;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.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;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&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;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.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;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&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;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&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;GuiEdit.au3&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;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&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;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SPI_GETWORKAREA = 0x30&lt;br /&gt;
Global $nGap = 20, $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Snapped Window&amp;quot;, 300, 200)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
#cs&lt;br /&gt;
    HWND hwnd;&lt;br /&gt;
    HWND hwndInsertAfter;&lt;br /&gt;
    int x;&lt;br /&gt;
    int y;&lt;br /&gt;
    int cx;&lt;br /&gt;
    int cy;&lt;br /&gt;
    UINT flags;&lt;br /&gt;
#ce&lt;br /&gt;
    Local $stRect = DllStructCreate(&amp;quot;int;int;int;int&amp;quot;)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    DllCall(&amp;quot;User32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;SystemParametersInfo&amp;quot;, &amp;quot;int&amp;quot;, $SPI_GETWORKAREA, &amp;quot;int&amp;quot;, 0, &amp;quot;ptr&amp;quot;, DllStructGetPtr($stRect), &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stRect, 1)&lt;br /&gt;
    Local $nTop = DllStructGetData($stRect, 2)&lt;br /&gt;
    Local $nRight  = DllStructGetData($stRect, 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
    Local $nBottom = DllStructGetData($stRect, 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft)&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop)&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight)&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.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;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&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, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; handle to first Monitor&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; handle to second Monitor&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=13852</id>
		<title>Snippets ( GUI )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_GUI_)&amp;diff=13852"/>
		<updated>2018-10-21T00:33:50Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: Added &amp;quot;Dual Monitor + WorkingArea&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _AlwaysOnTop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&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;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;_AlwaysOnTop()&amp;quot;, 200, 200, -1, -1)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iControlID = GUICtrlCreateCheckbox(&amp;quot;Always On Top&amp;quot;, 5, 10, 85, 25, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_PUSHLIKE, $WS_TABSTOP))&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    While 1&lt;br /&gt;
        Switch GUIGetMsg()&lt;br /&gt;
            Case $GUI_EVENT_CLOSE&lt;br /&gt;
                Exit&lt;br /&gt;
            Case $iControlID&lt;br /&gt;
                _AlwaysOnTop($hGUI, $iControlID)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _AlwaysOnTop(Const $hHandle, Const $iControlID)&lt;br /&gt;
    Local $iState = 0&lt;br /&gt;
&lt;br /&gt;
    If GUICtrlRead($iControlID) = $GUI_CHECKED Then&lt;br /&gt;
        $iState = 1&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    WinSetOnTop($hHandle, &amp;quot;&amp;quot;, $iState)&lt;br /&gt;
&lt;br /&gt;
    Return $iState&lt;br /&gt;
EndFunc   ;==&amp;gt;_AlwaysOnTop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Animate Display ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 5725-raindancer&lt;br /&gt;
 | AuthorName = Raindancer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Animate Display&lt;br /&gt;
; Author Raindancer&lt;br /&gt;
&lt;br /&gt;
Global Const $hwnd = GUICreate(&amp;quot;Animate Window&amp;quot;, 300, 300)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00080000) ; fade-in&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00090000) ; fade-out&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040001) ; slide in from left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050002) ; slide out to left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040002) ; slide in from right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050001) ; slide out to right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040004) ; slide-in from top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050008) ; slide-out to top&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040008) ; slide-in from bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050004) ; slide-out to bottom&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040005) ; diag slide-in from Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0005000a) ; diag slide-out to Top-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040006) ; diag slide-in from Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050009) ; diag slide-out to Top-Right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040009) ; diag slide-in from Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050006) ; diag slide-out to Bottom-left&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x0004000a) ; diag slide-in from Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050005) ; diag slide-out to Bottom-right&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00040010) ; explode&lt;br /&gt;
DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;AnimateWindow&amp;quot;, &amp;quot;hwnd&amp;quot;, $hwnd, &amp;quot;int&amp;quot;, 1000, &amp;quot;long&amp;quot;, 0x00050010) ; implode&lt;br /&gt;
&lt;br /&gt;
#define AW_HOR_POSITIVE		0x00000001&lt;br /&gt;
#define AW_HOR_NEGATIVE		0x00000002&lt;br /&gt;
#define AW_VER_POSITIVE		0x00000004&lt;br /&gt;
#define AW_VER_NEGATIVE		0x00000008&lt;br /&gt;
#define AW_CENTER			0x00000010&lt;br /&gt;
#define AW_HIDE				0x00010000&lt;br /&gt;
#define AW_ACTIVATE         0x00020000&lt;br /&gt;
#define AW_SLIDE            0x00040000&lt;br /&gt;
#define AW_BLEND            0x00080000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Center Window on Screen ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 4920-valuater&lt;br /&gt;
 | AuthorName = Valuater&lt;br /&gt;
 | AuthorURL2 = 9669-cdkid&lt;br /&gt;
 | AuthorName2 = cdkid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Center Window on Screen&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $GUI = GUICreate(&amp;quot;Test Window&amp;quot;,300 ,300 ,100 ,100)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
_Middle($GUI, &amp;quot;Test Window&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;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _Middle(Const $win, Const $txt)&lt;br /&gt;
    Local Const $size = WinGetClientSize($win, $txt)&lt;br /&gt;
&lt;br /&gt;
    Local Const $y = (@DesktopHeight / 2) - ($size[1] / 2)&lt;br /&gt;
&lt;br /&gt;
    Local Const $x = (@DesktopWidth / 2) - ($size[0] / 2)&lt;br /&gt;
&lt;br /&gt;
    Return WinMove($win, $txt, $x, $y)&lt;br /&gt;
EndFunc  ;==&amp;gt;_Middle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ChildActivate ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 71214-mkish&lt;br /&gt;
 | AuthorName = MKISH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_ChildActivate(&amp;quot;Main Window Title&amp;quot;, &amp;quot;Child Window Title&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
; Set focus to Child-Window of a GUI&lt;br /&gt;
Func _ChildActivate(Const $appTitle, Const $formName)&lt;br /&gt;
    Local Const $hWnd = WinGetHandle($appTitle, $formName)&lt;br /&gt;
&lt;br /&gt;
    Local $array = WinList($appTitle)&lt;br /&gt;
&lt;br /&gt;
	#forceref $array&lt;br /&gt;
&lt;br /&gt;
    WinActive($hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local Const $winarray = _WinAPI_EnumWindows(True, $hWnd)&lt;br /&gt;
&lt;br /&gt;
    Local $title&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 to $winarray[0][0]&lt;br /&gt;
        $title = _WinAPI_GetWindowText($winarray[$i][0])&lt;br /&gt;
&lt;br /&gt;
		If ($title == $formName) or ($title == $formName &amp;amp; &amp;quot; *&amp;quot;) Then&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_MAXIMIZE)&lt;br /&gt;
            _WinAPI_ShowWindow($winarray[$i][0], @SW_SHOWNORMAL)&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc ;&amp;gt;&amp;gt;&amp;gt; _ChildActivate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _ControlMove ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&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;
Global Const $SC_MOVE = 0xF010&lt;br /&gt;
&lt;br /&gt;
Global Const $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 300, 200)&lt;br /&gt;
&lt;br /&gt;
Globa Const $cLabel = GUICtrlCreateLabel(&amp;quot;Move me&amp;quot;, 100, 50, 60, 20)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetBkColor($cLabel, 0x00FF00)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case $GUI_EVENT_PRIMARYDOWN&lt;br /&gt;
            _ControlMove($cLabel)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _ControlMove(Const $cID)&lt;br /&gt;
    Local Const $aCurPos = GUIGetCursorInfo()&lt;br /&gt;
&lt;br /&gt;
    If @error Then Return False&lt;br /&gt;
&lt;br /&gt;
    If $aCurPos[4] = $cID Then&lt;br /&gt;
        GUICtrlSendMsg($cID, $WM_SYSCOMMAND, BitOR($SC_MOVE, $HTCAPTION), 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_ControlMove&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Custom Tabs ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
 | AuthorURL2 = 14325-kickassjoe&lt;br /&gt;
 | AuthorName2 = Kickassjoe&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Custom Tabs - controlled by a label, pic, etc&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Test&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global $TabSwitcher[2]&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher1 = GUICtrlCreateLabel(&amp;quot;Tab One&amp;quot;, 10, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xf0f0f0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $TabSwitcher2 = GUICtrlCreateLabel(&amp;quot;Tab Two&amp;quot;, 72, 10,60,20, $SS_SUNKEN +$SS_CENTER+ $SS_CENTERIMAGE)&lt;br /&gt;
GUICtrlSetBkColor(-1, 0xc0c0c0)&lt;br /&gt;
GUICtrlSetColor(-1, 0x000000)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab = GUICtrlCreateTab(10,40, 200, 200) ; can be placed anywhere, doesnt matter, not visible&lt;br /&gt;
GUICtrlSetState($tab, $GUI_HIDE)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab1 = GUICtrlCreateTabItem(&amp;quot;tab1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 1&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
Global Const $tab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateButton(&amp;quot;button on tab 2&amp;quot;, 10, 70)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $TabSwitcher1&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab1 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab1, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $TabSwitcher2&lt;br /&gt;
            If GUICtrlRead($tab, 1) = $tab2 Then ContinueLoop ; To prevent the flickering and second state set.&lt;br /&gt;
            GUICtrlSetState($tab2, $GUI_SHOW)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher1, 0xc0c0c0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher1, 0x000000)&lt;br /&gt;
            GUICtrlSetBkColor($TabSwitcher2, 0xf0f0f0)&lt;br /&gt;
            GUICtrlSetColor($TabSwitcher2, 0x000000)&lt;br /&gt;
&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
        Case Else&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable All Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&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;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local $hGUI = GUICreate(&amp;quot;ListView Set Column Width&amp;quot;, 400, 300)&lt;br /&gt;
    Local $hListView = GUICtrlCreateListView(&amp;quot;Column 1|Column 2|Column 3|Column 4&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
    GUISetState()&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of columns&lt;br /&gt;
    ControlDisable($hGUI, &amp;quot;&amp;quot;, HWnd(_GUICtrlListView_GetHeader($hListView)))&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Disable Specific Column Headers ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&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;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;HeaderConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; The 0-based column to be disabled&lt;br /&gt;
Global $iFix_Col&lt;br /&gt;
&lt;br /&gt;
_Main()&lt;br /&gt;
&lt;br /&gt;
Func _Main()&lt;br /&gt;
    Local Const $hGUI = GUICreate(&amp;quot;ListView Fix Column Width&amp;quot;, 400, 300)&lt;br /&gt;
&lt;br /&gt;
    Local Const $hListView = GUICtrlCreateListView(&amp;quot;Column 0|Column 1|Column 2|Column 3&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&lt;br /&gt;
&lt;br /&gt;
    ; Prevent resizing of column 1&lt;br /&gt;
    $iFix_Col = 1&lt;br /&gt;
&lt;br /&gt;
    GUIRegisterMsg($WM_NOTIFY, &amp;quot;_WM_NOTIFY&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ; Loop until user exits&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
EndFunc   ;==&amp;gt;_Main&lt;br /&gt;
&lt;br /&gt;
Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hWnd, $iMsg, $wParam&lt;br /&gt;
&lt;br /&gt;
    ; Get details of message&lt;br /&gt;
    Local Const $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)&lt;br /&gt;
&lt;br /&gt;
    ; Look for header resize code&lt;br /&gt;
    Local Const $iCode = DllStructGetData($tNMHEADER, &amp;quot;Code&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Switch $iCode&lt;br /&gt;
        Case $HDN_BEGINTRACKW&lt;br /&gt;
            ; Now get column being resized&lt;br /&gt;
            Local $iCol = DllStructGetData($tNMHEADER, &amp;quot;Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            If $iCol = $iFix_Col Then&lt;br /&gt;
                ; Prevent resizing&lt;br /&gt;
                Return True&lt;br /&gt;
            Else&lt;br /&gt;
                ; Allow resizing&lt;br /&gt;
                Return False&lt;br /&gt;
            EndIf&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunc   ;==&amp;gt;_WM_NOTIFY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Flash ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Change the background color of the GUI to a specified color&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local Const $bGreen = 0x00FF00&lt;br /&gt;
&lt;br /&gt;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    If MsgBox(4 + 4096, &#039;&#039;, &#039;The following example contains flashing images.  If you are sensitive to such things then please select &amp;quot;No&amp;quot;.&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;Do you want to continue?&#039;) = 7 Then&lt;br /&gt;
        Return 0&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    ; Change the background color of the GUI to a specified color and then back to the default grey.&lt;br /&gt;
    For $i = 1 To 2&lt;br /&gt;
        _Flash($hGUI, $bGreen)&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    ; Wait for 1 second to show the background color is changed to the default grey.&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _Flash(Const $hWnd, Const $bColor)&lt;br /&gt;
    For $A = 1 To 2&lt;br /&gt;
        If Mod($A, 2) Then ; Odd.&lt;br /&gt;
            GUISetBkColor($bColor, $hWnd)&lt;br /&gt;
        Else ; Even.&lt;br /&gt;
            GUISetBkColor(_WinAPI_GetSysColor($COLOR_MENU), $hWnd)&lt;br /&gt;
        EndIf&lt;br /&gt;
&lt;br /&gt;
        Sleep(100)&lt;br /&gt;
    Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_Flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Background Changer ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 69506-reaperx&lt;br /&gt;
 | AuthorName = ReaperX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $gui_choose_color = GUICreate(&amp;quot;Choose Color&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Global Const $button = GUICtrlCreateButton(&amp;quot;Choose Color&amp;quot;, 150, 150)&lt;br /&gt;
&lt;br /&gt;
GUISetState(@SW_SHOWNORMAL, $gui_choose_color)&lt;br /&gt;
&lt;br /&gt;
Global Const $iReturnType = 2&lt;br /&gt;
&lt;br /&gt;
Global $color&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $button&lt;br /&gt;
			$color = _ChooseColor($iReturnType)&lt;br /&gt;
			GUISetBkColor($color)&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
	EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Example 2&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&lt;br /&gt;
&lt;br /&gt;
MainGUI()&lt;br /&gt;
&lt;br /&gt;
Func MainGUI()&lt;br /&gt;
	GUICreate(&amp;quot;ReaperX&#039;s Test GUI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $file = GUICtrlCreateMenu(&amp;quot;File&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_notepad = GUICtrlCreateMenuItem(&amp;quot;Open Notepad&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_computer = GUICtrlCreateMenuItem(&amp;quot;Open My Computer&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $file_exit = GUICtrlCreateMenuItem(&amp;quot;Exit&amp;quot;, $file)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions = GUICtrlCreateMenu(&amp;quot;Actions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_txt_file = GUICtrlCreateMenuItem(&amp;quot;Open Text File&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $actions_calc = GUICtrlCreateMenuItem(&amp;quot;Open Calculator&amp;quot;, $actions)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help = GUICtrlCreateMenu(&amp;quot;Help&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $help_about = GUICtrlCreateMenuItem(&amp;quot;About&amp;quot;, $help)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_set = GUICtrlCreateTab(110, 100, 135, 150)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_1 = GUICtrlCreateTabItem(&amp;quot;Change BG&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_red_radio = GUICtrlCreateRadio(&amp;quot;Red&amp;quot;, 115, 125)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_green_radio = GUICtrlCreateRadio(&amp;quot;Green&amp;quot;, 115, 145)&lt;br /&gt;
&lt;br /&gt;
	Local Const $bg_yellow_radio = GUICtrlCreateRadio(&amp;quot;Yellow&amp;quot;, 115, 165)&lt;br /&gt;
&lt;br /&gt;
	Local Const $tab_2 = GUICtrlCreateTabItem(&amp;quot;AutoIt Info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL)&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 $file_notepad&lt;br /&gt;
				Run(&amp;quot;notepad.exe&amp;quot;)&lt;br /&gt;
			Case $file_computer&lt;br /&gt;
				Run(&amp;quot;explorer.exe&amp;quot;)&lt;br /&gt;
			Case $file_exit&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $actions_txt_file&lt;br /&gt;
				Local Const $txt_file_1 = FileOpenDialog(&amp;quot;Choose a Text File to Open...&amp;quot;, @DesktopDir, &amp;quot;Text Files(*.txt)&amp;quot;)&lt;br /&gt;
				FileOpen($txt_file_1)&lt;br /&gt;
			Case $actions_calc&lt;br /&gt;
				Run(&amp;quot;calc.exe&amp;quot;)&lt;br /&gt;
			Case $help_about&lt;br /&gt;
				MsgBox(0, &amp;quot;About&amp;quot;, &amp;quot;This Test GUI Was Created by ReaperX&amp;quot;)&lt;br /&gt;
			Case $bg_red_radio&lt;br /&gt;
				GUISetBkColor(0xED1C24)&lt;br /&gt;
			Case $bg_green_radio&lt;br /&gt;
				GUISetBkColor(0x22B14C)&lt;br /&gt;
			Case $bg_yellow_radio&lt;br /&gt;
				GUISetBkColor(0xFFF200)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUICtrlGetID ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&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;
    Local Const $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iLabel = GUICtrlCreateLabel(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    Local Const $iComboBox = GUICtrlCreateCombo(&#039;&#039;, 0, 0, 500, 500)&lt;br /&gt;
&lt;br /&gt;
    GUISetState(@SW_SHOWNORMAL, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, _&lt;br /&gt;
	        &#039;AutoIt Label ID: &#039;                &amp;amp; $iLabel &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt Label ID From Handle: &#039;    &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iLabel)) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID: &#039;             &amp;amp; $iComboBox &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
            &#039;AutoIt ComboBox ID From Handle: &#039; &amp;amp; GUICtrlGetID(GUICtrlGetHandle($iComboBox)) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
    Return GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Retrieve the control id of an AutoIt native control using the handle returned by GUICtrlGetHandle.&lt;br /&gt;
Func GUICtrlGetID(Const $hWnd)&lt;br /&gt;
    Local Const $aResult = DllCall(&#039;user32.dll&#039;, &#039;int&#039;, &#039;GetDlgCtrlID&#039;, &#039;hwnd&#039;, $hWnd) ; _WinAPI_GetDlgItem in WinAPI.au3.&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
        Return SetError(@error, @extended, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return $aResult[0]&lt;br /&gt;
EndFunc   ;==&amp;gt;GUICtrlGetID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _GUICtrlIpAddress_DisableField ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;GUIIPAddress.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI, $hIPAddress&lt;br /&gt;
    $hGUI = GUICreate(&#039;IP Address Control Create Example&#039;, 400, 300)&lt;br /&gt;
    $hIPAddress = _GUICtrlIpAddress_Create($hGUI, 10, 10)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    _GUICtrlIpAddress_Set($hIPAddress, &#039;127.0.0.1&#039;)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 0)&lt;br /&gt;
    _GUICtrlIpAddress_DisableField($hIPAddress, 3)&lt;br /&gt;
&lt;br /&gt;
    Do&lt;br /&gt;
    Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
    _GUICtrlIpAddress_Destroy($hIPAddress)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Disable an octet field. First octet field starts from index 0.&lt;br /&gt;
Func _GUICtrlIpAddress_DisableField($hIPAddress, $iField) ; Idea by Rover.&lt;br /&gt;
    Local $aField[5] = [4, 3, 2, 1]&lt;br /&gt;
    Return ControlDisable($hIPAddress, &#039;&#039;, &#039;[CLASSNN:Edit&#039; &amp;amp; $aField[$iField] &amp;amp; &#039;]&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlIpAddress_DisableField&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI With Scrollable TabItem ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 46198-autobert&lt;br /&gt;
 | AuthorName = AutoBert&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI With Scrollable TabItem&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ScrollBarConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GuiScrollBars.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;GuiTab.au3&amp;gt;&lt;br /&gt;
$hGui = GUICreate(&amp;quot;Gui with scrollable TabItem &amp;quot;, 633, 350, 190, 220)&lt;br /&gt;
GUISetBkColor(0xFFFFFF)&lt;br /&gt;
$idTab = GUICtrlCreateTab(10, 10, 613, 300)&lt;br /&gt;
$idTab0 = GUICtrlCreateTabItem(&amp;quot;tab0&amp;quot;)&lt;br /&gt;
$hChild = GUICreate(&amp;quot;Scrollbereich&amp;quot;, 588, 255, 26, 45, $WS_POPUP, $WS_EX_MDICHILD, $hGui)&lt;br /&gt;
$x = 6 ; +22&lt;br /&gt;
$y = 8&lt;br /&gt;
Local $aInputs[15]&lt;br /&gt;
For $i = 0 To 14&lt;br /&gt;
$aInputs[$i]=GUICtrlCreateInput(&#039;&#039;, $x, $y, 21, 20)&lt;br /&gt;
$x += 22&lt;br /&gt;
$y += 21&lt;br /&gt;
Next&lt;br /&gt;
_GUIScrollBars_Init($hChild,-1)&lt;br /&gt;
_GUIScrollBars_ShowScrollBar($hChild, $SB_HORZ, False) ; horizontale Scrollbar verstecken&lt;br /&gt;
_GUIScrollBars_SetScrollRange($hChild, $SB_VERT, 3, 30)&lt;br /&gt;
GUISetState(@SW_HIDE,$hChild)&lt;br /&gt;
GUISwitch($hGui)&lt;br /&gt;
$idTab1 = GUICtrlCreateTabItem(&amp;quot;tab----1&amp;quot;)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label1&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab1combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;, 20, 50, 60, 120)&lt;br /&gt;
GUICtrlSetData(-1, &amp;quot;Trids|CyberSlug|Larry|Jon|Tylo&amp;quot;, &amp;quot;Jon&amp;quot;); default Jon&lt;br /&gt;
$idTab1OK = GUICtrlCreateButton(&amp;quot;OK1&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$idTab2 = GUICtrlCreateTabItem(&amp;quot;tab2&amp;quot;)&lt;br /&gt;
GUICtrlSetState(-1, $Gui_SHOW); will be display first&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;label2&amp;quot;, 30, 80, 50, 20)&lt;br /&gt;
$idTab2OK = GUICtrlCreateButton(&amp;quot;OK2&amp;quot;, 140, 50, 50)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;); end tabitem definition&lt;br /&gt;
$idBtnBack = GUICtrlCreateButton(&amp;quot;&amp;amp;Zurueck&amp;quot;,72,320,100,25)&lt;br /&gt;
$idBtnCancel = GUICtrlCreateButton(&amp;quot;&amp;amp;Beenden&amp;quot;, 264, 320, 100, 25)&lt;br /&gt;
$idBtnContinue = GUICtrlCreateButton(&amp;quot;&amp;amp;Weiter&amp;quot;, 448, 320, 100, 25)&lt;br /&gt;
GUISetState()&lt;br /&gt;
GUIRegisterMsg($WM_VSCROLL, &amp;quot;WM_VSCROLL&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
$nMsg = GuiGetMsg()&lt;br /&gt;
Switch $nMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
  Case $idTab&lt;br /&gt;
   $iTab = _GUICtrlTab_GetCurSel($idTab)&lt;br /&gt;
   Switch $iTab&lt;br /&gt;
    case 0&lt;br /&gt;
     GUISetState(@SW_SHOW, $hChild)&lt;br /&gt;
    case 1&lt;br /&gt;
     GUISetState(@SW_HIDE, $hChild)&lt;br /&gt;
   EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $Msg, $wParam, $lParam&lt;br /&gt;
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)&lt;br /&gt;
    Local $index = -1, $yChar, $yPos&lt;br /&gt;
    Local $Min, $Max, $Page, $Pos, $TrackPos&lt;br /&gt;
    For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 ; from GuiScrollBars.au3&lt;br /&gt;
        If $__g_aSB_WindowInfo[$x][0] = $hWnd Then&lt;br /&gt;
            $index = $x&lt;br /&gt;
            $yChar = $__g_aSB_WindowInfo[$index][3]&lt;br /&gt;
            ExitLoop&lt;br /&gt;
        EndIf&lt;br /&gt;
    Next&lt;br /&gt;
    If $index = -1 Then Return 0&lt;br /&gt;
&lt;br /&gt;
    ; Get all the vertial scroll bar information&lt;br /&gt;
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)&lt;br /&gt;
    $Min = DllStructGetData($tSCROLLINFO, &amp;quot;nMin&amp;quot;)&lt;br /&gt;
    $Max = DllStructGetData($tSCROLLINFO, &amp;quot;nMax&amp;quot;)&lt;br /&gt;
    $Page = DllStructGetData($tSCROLLINFO, &amp;quot;nPage&amp;quot;)&lt;br /&gt;
    ; Save the position for comparison later on&lt;br /&gt;
    $yPos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    $Pos = $yPos&lt;br /&gt;
    $TrackPos = DllStructGetData($tSCROLLINFO, &amp;quot;nTrackPos&amp;quot;)&lt;br /&gt;
    Switch $nScrollCode&lt;br /&gt;
        Case $SB_TOP ; user clicked the HOME keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Min)&lt;br /&gt;
        Case $SB_BOTTOM ; user clicked the END keyboard key&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Max)&lt;br /&gt;
        Case $SB_LINEUP ; user clicked the top arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - 1)&lt;br /&gt;
        Case $SB_LINEDOWN ; user clicked the bottom arrow&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + 1)&lt;br /&gt;
        Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos - $Page)&lt;br /&gt;
        Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $Pos + $Page)&lt;br /&gt;
        Case $SB_THUMBTRACK ; user dragged the scroll box&lt;br /&gt;
            DllStructSetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;, $TrackPos)&lt;br /&gt;
    EndSwitch&lt;br /&gt;
;~    // Set the position and then retrieve it.  Due to adjustments&lt;br /&gt;
;~    //   by Windows it may not be the same as the value set.&lt;br /&gt;
    DllStructSetData($tSCROLLINFO, &amp;quot;fMask&amp;quot;, $SIF_POS)&lt;br /&gt;
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)&lt;br /&gt;
    ;// If the position has changed, scroll the window and update it&lt;br /&gt;
    $Pos = DllStructGetData($tSCROLLINFO, &amp;quot;nPos&amp;quot;)&lt;br /&gt;
    If ($Pos &amp;lt;&amp;gt; $yPos) Then&lt;br /&gt;
        _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))&lt;br /&gt;
        $yPos = $Pos&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_VSCROLL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsAutoItGUI ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.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;
&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Check if the handle is an AutoIt GUI.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the handle of the GUI an AutoIt window: &#039; &amp;amp; _IsAutoItGUI($hGUI))&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if a handle is an AutoIt GUI.&lt;br /&gt;
Func _IsAutoItGUI($hWnd)&lt;br /&gt;
    Return _WinAPI_GetClassName($hWnd) = &#039;AutoIt v3 GUI&#039;&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsAutoItGUI&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsEnabled ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Button Example&#039;, 10, 10, 120, 25)&lt;br /&gt;
    GUICtrlSetState($iButton, $aState[Random(0, 1, 1)]) ; Randomise whether or not the Button is enabled.&lt;br /&gt;
    GUISetState(@SW_SHOW)&lt;br /&gt;
&lt;br /&gt;
    ; Check the state of the Button.&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Is the Button enabled: &#039; &amp;amp; _IsEnabled($iButton))&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;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _IsEnabled($iControlID)&lt;br /&gt;
    Return BitAND(GUICtrlGetState($iControlID), $GUI_ENABLE) = $GUI_ENABLE&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsEnabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTransparent ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.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;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, Random(0, 255, 1))&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;Check if the GUI is transparent: &#039; &amp;amp; _IsTransparent($hGUI))&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Check if the GUI is transparent.&lt;br /&gt;
Func _IsTransparent($sTitle, $sText = &#039;&#039;)&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency = 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTransparent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
==  Limit GUI Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 38576-melba23&lt;br /&gt;
 | AuthorName = Melba23&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; How to limit the minimum/maximum size of a resizable GUI&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
GUIRegisterMsg($WM_GETMINMAXINFO, &amp;quot;WM_GETMINMAXINFO&amp;quot;)&lt;br /&gt;
Global $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX))&lt;br /&gt;
GUISetState()&lt;br /&gt;
Global $aPos = WinGetPos($hGUI)&lt;br /&gt;
While 1&lt;br /&gt;
    Switch GUIGetMsg()&lt;br /&gt;
        Case $GUI_EVENT_MAXIMIZE&lt;br /&gt;
            WinMove($hGUI, &amp;quot;&amp;quot;, $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    #forceref $hwnd, $Msg, $wParam, $lParam&lt;br /&gt;
    Local $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here&lt;br /&gt;
    Local $GUIMAXWID = 800, $GUIMAXHT = 500&lt;br /&gt;
    Local $tagMaxinfo = DllStructCreate(&amp;quot;int;int;int;int;int;int;int;int;int;int&amp;quot;, $lParam)&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 9, $GUIMAXWID); max X&lt;br /&gt;
    DllStructSetData($tagMaxinfo, 10, $GUIMAXHT) ; max Y&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_GETMINMAXINFO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Mixed Colored List View ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 23675-siao&lt;br /&gt;
 | AuthorName = Siao&lt;br /&gt;
}}&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;GuiListView.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;fonts for custom draw example&lt;br /&gt;
;bold&lt;br /&gt;
Global $aFont1 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 700, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
;italic&lt;br /&gt;
Global $aFont2 = DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;CreateFont&amp;quot;, &amp;quot;int&amp;quot;, 14, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 0, &amp;quot;int&amp;quot;, 400, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 1, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, &amp;quot;dword&amp;quot;, 0, _&lt;br /&gt;
                        &amp;quot;dword&amp;quot;, 0, &amp;quot;str&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$GUI = GUICreate(&amp;quot;Listview Custom Draw&amp;quot;, 400, 300)&lt;br /&gt;
$cListView = GUICtrlCreateListView(&amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
$hListView = GUICtrlGetHandle($cListView)&lt;br /&gt;
;or&lt;br /&gt;
;~ $hListView = _GUICtrlListView_Create($GUI, &amp;quot;&amp;quot;, 2, 2, 394, 268)&lt;br /&gt;
&lt;br /&gt;
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 0, &amp;quot;Column 1&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 1, &amp;quot;Column 2&amp;quot;, 100)&lt;br /&gt;
_GUICtrlListView_InsertColumn($hListView, 2, &amp;quot;Column 3&amp;quot;, 100)&lt;br /&gt;
&lt;br /&gt;
; Add items&lt;br /&gt;
For $i = 1 To 30&lt;br /&gt;
    _GUICtrlListView_AddItem($hListView, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col 1&amp;quot;, $i-1)&lt;br /&gt;
    For $j = 1 To 2&lt;br /&gt;
        _GUICtrlListView_AddSubItem ($hListView, $i-1, &amp;quot;Row&amp;quot; &amp;amp; $i &amp;amp; &amp;quot;: Col &amp;quot; &amp;amp; $j+1, $j)&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
GUIRegisterMsg($WM_NOTIFY, &amp;quot;WM_NOTIFY&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Until GUIGetMsg() = $GUI_EVENT_CLOSE&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont1[0])&lt;br /&gt;
DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;DeleteObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR&lt;br /&gt;
&lt;br /&gt;
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&lt;br /&gt;
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, &amp;quot;hWndFrom&amp;quot;))&lt;br /&gt;
    $iIDFrom = DllStructGetData($tNMHDR, &amp;quot;IDFrom&amp;quot;)&lt;br /&gt;
    $iCode = DllStructGetData($tNMHDR, &amp;quot;Code&amp;quot;)&lt;br /&gt;
    Switch $hWndFrom&lt;br /&gt;
        Case $hListView&lt;br /&gt;
            Switch $iCode&lt;br /&gt;
                Case $NM_CUSTOMDRAW&lt;br /&gt;
                    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
                     Local $tCustDraw = DllStructCreate(&#039;hwnd hwndFrom;int idFrom;int code;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword clrText;dword clrTextBk;int SubItem;&#039; &amp;amp; _&lt;br /&gt;
                                        &#039;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align&#039;, _ ;winxp or later&lt;br /&gt;
                                        $lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor1, $iColor2, $iColor3&lt;br /&gt;
                    $iDrawStage = DllStructGetData($tCustDraw, &#039;DrawStage&#039;)&lt;br /&gt;
                    If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW ;request custom drawing of items&lt;br /&gt;
                    If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW ;request drawing each cell separately&lt;br /&gt;
                    If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT&lt;br /&gt;
                    $iItem = DllStructGetData($tCustDraw, &#039;ItemSpec&#039;)&lt;br /&gt;
                    $iSubitem = DllStructGetData($tCustDraw, &#039;SubItem&#039;)&lt;br /&gt;
                    Switch $iItem&lt;br /&gt;
                        Case 0 To 9 ;for rows 1-10 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            $iColor3 = RGB2BGR(0xFF0000)&lt;br /&gt;
                            If Mod($iSubitem, 2) Then ;odd columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, 0)&lt;br /&gt;
                            Else ;even columns&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrText&#039;, $iColor3)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 10 To 19 ;for rows 11-20 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(0x3DF8FF)&lt;br /&gt;
                            $hDC = DllStructGetData($tCustDraw, &#039;hdc&#039;)&lt;br /&gt;
                            If Mod($iItem, 2) Then&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont1[0]) ;select our chosen font into DC&lt;br /&gt;
                            Else&lt;br /&gt;
                                If Mod($iSubitem, 2) Then&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                                Else&lt;br /&gt;
                                    DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                                EndIf&lt;br /&gt;
                                DLLCall(&amp;quot;gdi32.dll&amp;quot;,&amp;quot;hwnd&amp;quot;,&amp;quot;SelectObject&amp;quot;, &amp;quot;hwnd&amp;quot;, $hDC, &amp;quot;hwnd&amp;quot;, $aFont2[0])&lt;br /&gt;
                            EndIf&lt;br /&gt;
                        Case 20 To 29 ;for rows 21-30 lets do this&lt;br /&gt;
                            $iColor1 = RGB2BGR(0xFBFFD8)&lt;br /&gt;
                            $iColor2 = RGB2BGR(-1)&lt;br /&gt;
                            If Mod($iItem, 2) Then ;odd rows&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor2)&lt;br /&gt;
                            Else&lt;br /&gt;
                                DllStructSetData($tCustDraw, &#039;clrTextBk&#039;, $iColor1)&lt;br /&gt;
                            EndIf&lt;br /&gt;
                    EndSwitch&lt;br /&gt;
                    Return $CDRF_NEWFONT&lt;br /&gt;
            EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Return $GUI_RUNDEFMSG&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_NOTIFY&lt;br /&gt;
&lt;br /&gt;
Func RGB2BGR($iColor)&lt;br /&gt;
    Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Move Message Box ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 423-herewasplato&lt;br /&gt;
 | AuthorName = herewasplato&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Move Message Box&lt;br /&gt;
&lt;br /&gt;
_MoveMsgBox(0, &amp;quot;testTitle&amp;quot;, &amp;quot;testText&amp;quot;, 0, 10)&lt;br /&gt;
&lt;br /&gt;
Func _MoveMsgBox($MBFlag, $MBTitle, $MBText, $x, $y)&lt;br /&gt;
    Local $file = FileOpen(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;, 2)&lt;br /&gt;
    If $file = -1 Then Return;if error, give up on the move&lt;br /&gt;
&lt;br /&gt;
    Local $line1 = &#039;AutoItSetOption(&#039; &amp;amp; &#039;&amp;quot;WinWaitDelay&amp;quot;, 0&#039; &amp;amp; &#039;)&#039;&lt;br /&gt;
    Local $line2 = &#039;WinWait(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;)&#039;&lt;br /&gt;
    Local $line3 = &#039;WinMove(&amp;quot;&#039; &amp;amp; $MBTitle &amp;amp; &#039;&amp;quot;, &amp;quot;&#039; &amp;amp; $MBText &amp;amp; &#039;&amp;quot;&#039; &amp;amp; &#039;, &#039; &amp;amp; $x &amp;amp; &#039;, &#039; &amp;amp; $y &amp;amp; &#039;)&#039;&lt;br /&gt;
    FileWrite($file, $line1 &amp;amp; @CRLF &amp;amp; $line2 &amp;amp; @CRLF &amp;amp; $line3)&lt;br /&gt;
    FileClose($file)&lt;br /&gt;
&lt;br /&gt;
    Run(@AutoItExe &amp;amp; &amp;quot; /AutoIt3ExecuteScript &amp;quot; &amp;amp; EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $result = MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
;~     MsgBox($MBFlag, $MBTitle, $MBText)&lt;br /&gt;
&lt;br /&gt;
    FileDelete(EnvGet(&amp;quot;temp&amp;quot;) &amp;amp; &amp;quot;\MoveMB.au3&amp;quot;)&lt;br /&gt;
	Return ($result)&lt;br /&gt;
EndFunc;==&amp;gt;_MoveMsgBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Search In A Listview ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 7108-xenobiologist&lt;br /&gt;
 | AuthorName = Xenobiologist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Search in a Listview and show the row with the match as the top row in the listiview.&lt;br /&gt;
#include &amp;lt;GuiListView.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_main()&lt;br /&gt;
&lt;br /&gt;
Func _main()&lt;br /&gt;
	Local $hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
	Local $hListView = GUICtrlCreateListView(&amp;quot;Items&amp;quot;, 10, 10, 480, 380)&lt;br /&gt;
	_GUICtrlListView_SetColumnWidth($hListView, 0, 450)&lt;br /&gt;
	For $i = 0 To 250&lt;br /&gt;
		Switch $i&lt;br /&gt;
			Case 50, 100, 150, 200&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item 999&amp;quot;, $hListView)&lt;br /&gt;
			Case Else&lt;br /&gt;
				GUICtrlCreateListViewItem(&amp;quot;Item &amp;quot; &amp;amp; StringFormat(&amp;quot;%03i&amp;quot;, $i), $hListView)&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	Next&lt;br /&gt;
	Local $hButton = GUICtrlCreateButton(&amp;quot;Search&amp;quot;, 10, 460, 100, 30, 0x0001) ; DEFAULT_BUTTON&lt;br /&gt;
	Local $hInput = GUICtrlCreateInput(&amp;quot;999&amp;quot;, 200, 460, 100, 30)&lt;br /&gt;
	GUICtrlSetState($hInput, 256) ; FOCUS&lt;br /&gt;
	GUICtrlCreateLabel(&amp;quot;Search for 999 - the listview will show the match as top row&amp;quot;, 10, 410, 470, 30)&lt;br /&gt;
	GUISetState()&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case -3 ; EVENT_CLOSE&lt;br /&gt;
				Exit&lt;br /&gt;
			Case $hButton&lt;br /&gt;
				_search($hListView, GUICtrlRead($hInput))&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc   ;==&amp;gt;_main&lt;br /&gt;
Func _search($hLV, $startPos = 0)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, _GUICtrlListView_GetTopIndex($hLV)) ;&lt;br /&gt;
	Local $selIndex_A = _GUICtrlListView_GetSelectedIndices($hLV, True)&lt;br /&gt;
	Local $iIndex = _GUICtrlListView_FindInText($hLV, $startPos, $selIndex_A[1])&lt;br /&gt;
	; Scroll to bottom&lt;br /&gt;
	_GUICtrlListView_EnsureVisible($hLV, _GUICtrlListView_GetItemCount($hLV) - 1)&lt;br /&gt;
	; Now click item and we get it at the top - or as close as it will go&lt;br /&gt;
	_GUICtrlListView_SetItemFocused($hLV, $iIndex)&lt;br /&gt;
	_GUICtrlListView_ClickItem($hLV, $iIndex)&lt;br /&gt;
EndFunc   ;==&amp;gt;_search&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _SetWinTitle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $Frm_Main = GUICreate(&amp;quot;&amp;quot;)&lt;br /&gt;
_SetWinTitle($Frm_Main)&lt;br /&gt;
GUISetState()&lt;br /&gt;
While 1&lt;br /&gt;
	Local $Msg = GUIGetMsg()&lt;br /&gt;
	If @MIN = &#039;00&#039; Then _SetWinTitle($Frm_Main)&lt;br /&gt;
	If $Msg = -3 Then Exit&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _SetWinTitle($hwnd)&lt;br /&gt;
	Local $Greet, $Ttl&lt;br /&gt;
	If @HOUR &amp;gt;= 5 And @HOUR &amp;lt;= 11 Then $Greet = &#039;Morning  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 12 And @HOUR &amp;lt; 17 Then $Greet = &#039;Afternoon  &#039;&lt;br /&gt;
	If @HOUR &amp;gt;= 17 Then $Greet = &#039;Evening  &#039;&lt;br /&gt;
	If @HOUR &amp;lt; 5 Then&lt;br /&gt;
		$Ttl = &amp;quot;You&#039;re up a bit too late  &amp;quot; &amp;amp; @UserName&lt;br /&gt;
	Else&lt;br /&gt;
		$Ttl = &#039;Good &#039; &amp;amp; $Greet &amp;amp; @UserName&lt;br /&gt;
	EndIf&lt;br /&gt;
	WinSetTitle($hwnd, &#039;&#039;, $Ttl)&lt;br /&gt;
EndFunc   ;==&amp;gt;_SetWinTitle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Small Cue Banner ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
 | Desc = Idea by: [http://www.autoitscript.com/forum/user/70983-autolaser/ Autolaser]&lt;br /&gt;
}}&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;GuiEdit.au3&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;
	Local $hGUI = GUICreate(&#039;Example&#039;, 300, 150)&lt;br /&gt;
	GUISetFont(9, 400, 0, &#039;Segoe UI&#039;)&lt;br /&gt;
&lt;br /&gt;
	Local $iUsername = GUICtrlCreateInput(&#039;&#039;, 10, 10, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iUsername, &amp;quot;Search folder&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iPassword = GUICtrlCreateInput(&#039;&#039;, 10, 40, 125, 25)&lt;br /&gt;
	_GUICtrlEdit_SetCueBanner($iPassword, &amp;quot;Search...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Local $iClose = GUICtrlCreateButton(&amp;quot;Close&amp;quot;, 210, 120, 85, 25)&lt;br /&gt;
	ControlFocus($hGUI, &amp;quot;&amp;quot;, $iClose)&lt;br /&gt;
&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, _GUICtrlEdit_GetCueBanner($iPassword))&lt;br /&gt;
&lt;br /&gt;
	While 1&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
			Case $GUI_EVENT_CLOSE, $iClose&lt;br /&gt;
				ExitLoop&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;
&lt;br /&gt;
Func _GUICtrlEdit_GetCueBanner($hWnd)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = DllStructCreate(&amp;quot;wchar[4096]&amp;quot;)&lt;br /&gt;
	If _SendMessage($hWnd, $EM_GETCUEBANNER, $tText, 4096, 0, &amp;quot;struct*&amp;quot;) &amp;lt;&amp;gt; 1 Then Return SetError(-1, 0, &amp;quot;&amp;quot;)&lt;br /&gt;
	Return _WinAPI_WideCharToMultiByte($tText)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_GetCueBanner&lt;br /&gt;
&lt;br /&gt;
Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)&lt;br /&gt;
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)&lt;br /&gt;
&lt;br /&gt;
	Local $tText = _WinAPI_MultiByteToWideChar($sText)&lt;br /&gt;
&lt;br /&gt;
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, &amp;quot;wparam&amp;quot;, &amp;quot;struct*&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_GUICtrlEdit_SetCueBanner&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Snapped Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $SPI_GETWORKAREA = 0x30&lt;br /&gt;
Global $nGap = 20, $nEdge = BitOR(1, 2, 4, 8); Left, Top, Right, Bottom&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Snapped Window&amp;quot;, 300, 200)&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
#cs&lt;br /&gt;
    HWND hwnd;&lt;br /&gt;
    HWND hwndInsertAfter;&lt;br /&gt;
    int x;&lt;br /&gt;
    int y;&lt;br /&gt;
    int cx;&lt;br /&gt;
    int cy;&lt;br /&gt;
    UINT flags;&lt;br /&gt;
#ce&lt;br /&gt;
    Local $stRect = DllStructCreate(&amp;quot;int;int;int;int&amp;quot;)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    DllCall(&amp;quot;User32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;SystemParametersInfo&amp;quot;, &amp;quot;int&amp;quot;, $SPI_GETWORKAREA, &amp;quot;int&amp;quot;, 0, &amp;quot;ptr&amp;quot;, DllStructGetPtr($stRect), &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stRect, 1)&lt;br /&gt;
    Local $nTop = DllStructGetData($stRect, 2)&lt;br /&gt;
    Local $nRight  = DllStructGetData($stRect, 3) - DllStructGetData($stWinPos, 5)&lt;br /&gt;
    Local $nBottom = DllStructGetData($stRect, 4) - DllStructGetData($stWinPos, 6)&lt;br /&gt;
    If BitAND($nEdge, 1) and Abs($nLeft   - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nLeft)&lt;br /&gt;
    If BitAND($nEdge, 2) and Abs($nTop  - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nTop)&lt;br /&gt;
    If BitAND($nEdge, 4) and Abs($nRight  - DllStructGetData($stWinPos, 3)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $nRight)&lt;br /&gt;
    If BitAND($nEdge, 8) and Abs($nBottom - DllStructGetData($stWinPos, 4)) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $nBottom)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== GUI Snap To Corners ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 126-lazycat&lt;br /&gt;
 | AuthorName = Lazycat&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; GUI snap to corners&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nGap = 20&lt;br /&gt;
Global $ahGUI[3]&lt;br /&gt;
$ahGUI[0] = GUICreate(&amp;quot;Snapped window 1&amp;quot;, 300, 200, 100, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[1] = GUICreate(&amp;quot;Snapped window 2&amp;quot;, 300, 400, 300, 400)&lt;br /&gt;
GUISetState()&lt;br /&gt;
$ahGUI[2] = GUICreate(&amp;quot;Snapped window 3&amp;quot;, 150, 300, 500, 100)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint;uint;int;int;int;int;uint&amp;quot;, $lParam)&lt;br /&gt;
    Local $nLeft   = DllStructGetData($stWinPos, 3)&lt;br /&gt;
    Local $nTop    = DllStructGetData($stWinPos, 4)&lt;br /&gt;
    $pos_cur = WinGetPos($hWnd)&lt;br /&gt;
    For $i = 0 To UBound($ahGUI) - 1&lt;br /&gt;
        If $hWnd = $ahGUI[$i] Then ContinueLoop&lt;br /&gt;
        $pos_win = WinGetPos($ahGUI[$i])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[0] + $pos_win[2]) - $nLeft) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] + $pos_win[2])&lt;br /&gt;
        If Abs($nLeft + $pos_cur[2] - $pos_win[0]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 3, $pos_win[0] - $pos_cur[2])&lt;br /&gt;
&lt;br /&gt;
        If Abs(($pos_win[1] + $pos_win[3]) - $nTop) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] + $pos_win[3])&lt;br /&gt;
        If Abs($nTop + $pos_cur[3] - $pos_win[1]) &amp;lt;= $nGap Then DllStructSetData($stWinPos, 4, $pos_win[1] - $pos_cur[3])&lt;br /&gt;
    Next&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== TAB On TAB Resize ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 52-geosoft&lt;br /&gt;
 | AuthorName = GEOSoft&lt;br /&gt;
 | AuthorURL2 = 3602-martin&lt;br /&gt;
 | AuthorName2 = martin&lt;br /&gt;
 | AuthorURL3 = 5169-refran&lt;br /&gt;
 | AuthorName3 = ReFran&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Example of TAB On TAB Resize&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $mainGUI, $ok_button, $cancel_button&lt;br /&gt;
&lt;br /&gt;
; This window has 2 ok/cancel-buttons&lt;br /&gt;
$mainGUI = GUICreate(&amp;quot;Tab on Tab Resize&amp;quot;, 260, 250, 20, 10, $WS_OVERLAPPEDWINDOW + $WS_CLIPCHILDREN + $WS_CLIPSIBLINGS)&lt;br /&gt;
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_SIZEBOX, $WS_POPUP, $WS_SYSMENU))&lt;br /&gt;
GUISetBkColor(0x5686A9)&lt;br /&gt;
$ok_button = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 40, 220, 70, 20)&lt;br /&gt;
$cancel_button = GUICtrlCreateButton(&amp;quot;Cancel&amp;quot;, 150, 220, 70, 20)&lt;br /&gt;
&lt;br /&gt;
; Create the first child window that is implemented into the main GUI&lt;br /&gt;
$child1 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
&lt;br /&gt;
GUISetBkColor(0x46860A)&lt;br /&gt;
$child_tab = GUICtrlCreateTab(10, 10, 210, 150)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
$child11tab = GUICtrlCreateTabItem(&amp;quot;1&amp;quot;)&lt;br /&gt;
$child12tab = GUICtrlCreateTabItem(&amp;quot;2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Create the second child window that is implemented into the main GUI&lt;br /&gt;
$child2 = GUICreate(&amp;quot;&amp;quot;, 230, 170, 15, 35, BitOR($WS_CHILD, $WS_TABSTOP), -1, $mainGUI)&lt;br /&gt;
GUISetBkColor(0x56869c)&lt;br /&gt;
$listview2 = GUICtrlCreateListView(&amp;quot;Col1|Col2&amp;quot;, 10, 10, 210, 150, -1, $WS_EX_CLIENTEDGE)&lt;br /&gt;
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong1|ItemLong12&amp;quot;, $listview2)&lt;br /&gt;
GUICtrlCreateListViewItem(&amp;quot;ItemLong2|Item22&amp;quot;, $listview2)&lt;br /&gt;
;GUISetState()&lt;br /&gt;
&lt;br /&gt;
; Switch back the main GUI and create the tabs&lt;br /&gt;
GUISwitch($mainGUI)&lt;br /&gt;
$main_tab = GUICtrlCreateTab(10, 10, 240, 200)&lt;br /&gt;
$child1tab = GUICtrlCreateTabItem(&amp;quot;Child1&amp;quot;)&lt;br /&gt;
$child2tab = GUICtrlCreateTabItem(&amp;quot;Child2&amp;quot;)&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_SIZE, &#039;WM_SIZE&#039;)&lt;br /&gt;
Dim $tabItemLast = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $msg = GUIGetMsg(1)&lt;br /&gt;
    Switch $msg[0]&lt;br /&gt;
        Case $GUI_EVENT_CLOSE, $cancel_button&lt;br /&gt;
            ExitLoop&lt;br /&gt;
&lt;br /&gt;
        Case $main_tab&lt;br /&gt;
            $tabItem = GUICtrlRead($main_tab)&lt;br /&gt;
            If $tabItem &amp;lt;&amp;gt; $tabItemLast Then TabSwitch($tabItem)&lt;br /&gt;
&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func TabSwitch($tabItem)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child1)&lt;br /&gt;
    GUISetState(@SW_HIDE, $child2)&lt;br /&gt;
&lt;br /&gt;
    If $tabItem = 0 Then GUISetState(@SW_SHOW, $child1)&lt;br /&gt;
    If $tabItem = 1 Then GUISetState(@SW_SHOW, $child2)&lt;br /&gt;
    $tabItemLast = $tabItem&lt;br /&gt;
EndFunc   ;==&amp;gt;TabSwitch&lt;br /&gt;
&lt;br /&gt;
Func WM_SIZE($hWnd, $iMsg, $iWParam, $iLParam)&lt;br /&gt;
    $aMGPos = WinGetClientSize($mainGUI)&lt;br /&gt;
    WinMove($child1, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    WinMove($child2, &amp;quot;&amp;quot;, 15, 35, +$aMGPos[0] - 30, +$aMGPos[1] - 80)&lt;br /&gt;
    ;Guictrlsetpos($child_tab,10,10,+$aMGPos[0]-50,+$aMGPos[1]-100)&lt;br /&gt;
    GUICtrlSetPos($main_tab, 10, 10, +$aMGPos[0] - 20, +$aMGPos[1] - 50)&lt;br /&gt;
    GUICtrlSetPos($listview2, 10, 10, +$aMGPos[0] - 30 - 20, +$aMGPos[1] - 80 - 20)&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;WM_SIZE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_CheckOrUnCheck ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iCheckBox = GUICtrlCreateCheckbox(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently unchecked so this will toggle the state to checked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to checked the last time _Toggle_CheckOrUnCheck was called, so now toggle the state to unchecked.&lt;br /&gt;
    _Toggle_CheckOrUnCheck($iCheckBox)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either unchecked or checked, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_CheckOrUnCheck($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlRead($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_CheckOrUnCheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_DropOrNoDrop ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 500, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)&lt;br /&gt;
    Local $iLabel = GUICtrlCreateLabel(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently accepting no files to be dropped on it so this will toggle the state to allow dropped files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to allow dropped files the last time _Toggle_DropOrNoDrop was called, so now toggle the state to accept no dropping of files.&lt;br /&gt;
    _Toggle_DropOrNoDrop($iLabel)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either accept or not accept dropped files, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_DropOrNoDrop($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_DROPACCEPTED, $GUI_NODROPACCEPTED]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_DropOrNoDrop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_EnableOrDisable ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently enabled so this will toggle the state to disabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to disabled the last time _Toggle_EnableOrDisable was called, so now toggle the state to enabled.&lt;br /&gt;
    _Toggle_EnableOrDisable($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either enabled or disabled, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_EnableOrDisable($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_ENABLE, $GUI_DISABLE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_EnableOrDisable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_FocusOrNoFocus ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently not focused so this will toggle the state to focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to focused the last time _Toggle_FocusOrNoFocus was called, so now toggle the state to not focused.&lt;br /&gt;
    _Toggle_FocusOrNoFocus($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either focused or not focused, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_FocusOrNoFocus($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_FOCUS, $GUI_NOFOCUS]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_FocusOrNoFocus&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _Toggle_ShowOrHide ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&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;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;)&lt;br /&gt;
    Local $iButton = GUICtrlCreateButton(&#039;Example&#039;, 5, 10, 85, 25)&lt;br /&gt;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control is currently shown so this will toggle the state to hide.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    ; The control was changed to hide the last time _Toggle_ShowOrHide was called, so now toggle the state to show.&lt;br /&gt;
    _Toggle_ShowOrHide($iButton)&lt;br /&gt;
&lt;br /&gt;
    ; Sleep for 2 seconds.&lt;br /&gt;
    Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Toggle a control to either show or hide, depending on it&#039;s current state.&lt;br /&gt;
Func _Toggle_ShowOrHide($iControlID)&lt;br /&gt;
    Local $aState[2] = [$GUI_SHOW, $GUI_HIDE]&lt;br /&gt;
    GUICtrlSetState($iControlID, $aState[Number(BitAND(GUICtrlGetState($iControlID), $aState[0]) = $aState[0])])&lt;br /&gt;
EndFunc   ;==&amp;gt;_Toggle_ShowOrHide&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Unmovable Window ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 19384-wemartiansarefriendly&lt;br /&gt;
 | AuthorName = WeMartiansAreFriendly&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $nConstXpos = @DesktopWidth/2        ;define the constant x position&lt;br /&gt;
Global $nConstYpos = @DesktopHeight/2   ;define the constant y position&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Unmovable Window&amp;quot;, 300, 200, $nConstXpos, $nConstYpos)&lt;br /&gt;
&lt;br /&gt;
GUIRegisterMsg($WM_WINDOWPOSCHANGING, &amp;quot;MY_WM_WINDOWPOSCHANGING&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $GUIMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
    Switch $GUIMsg&lt;br /&gt;
        Case $GUI_EVENT_CLOSE&lt;br /&gt;
            ExitLoop&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func MY_WM_WINDOWPOSCHANGING($hWnd, $Msg, $wParam, $lParam)&lt;br /&gt;
    Local $stWinPos = DllStructCreate(&amp;quot;uint hwnd;uint hwndInsertAfter;int x;int y;int cx;int cy;uint flags&amp;quot;, $lParam)&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;x&amp;quot;, $nConstXpos)&lt;br /&gt;
    DllStructSetData($stWinPos, &amp;quot;y&amp;quot;, $nConstYpos)&lt;br /&gt;
    Return 0&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== Window Drag Using GUIRegister ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 20477-mrcreator&lt;br /&gt;
 | AuthorName = MrCreatoR&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Window Drag using GUIRegister&lt;br /&gt;
#include &amp;lt;GuiConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global Const $WM_LBUTTONDOWN = 0x0201&lt;br /&gt;
;Global Const $WM_SYSCOMMAND = 0x0112&lt;br /&gt;
&lt;br /&gt;
$Gui = GuiCreate(&amp;quot;Test&amp;quot;, 200, 100, -1, -1, $WS_POPUP, $WS_EX_DLGMODALFRAME)&lt;br /&gt;
GuiRegisterMsg($WM_LBUTTONDOWN, &amp;quot;_WinMove&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
    $Msg = GUIGetMsg()&lt;br /&gt;
    Switch $Msg&lt;br /&gt;
        Case -3&lt;br /&gt;
            Exit&lt;br /&gt;
    EndSwitch&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func _WinMove($HWnd, $Command, $wParam, $lParam)&lt;br /&gt;
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG&lt;br /&gt;
    DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;SendMessage&amp;quot;, &amp;quot;hwnd&amp;quot;, $HWnd, &amp;quot;int&amp;quot;, $WM_SYSCOMMAND, &amp;quot;int&amp;quot;, 0xF009, &amp;quot;int&amp;quot;, 0)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== WinGetTrans ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.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;
    GUISetState(@SW_SHOW, $hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Set the transparency of a GUI between 0 and 255. 255 = Solid, 0 = Invisible.&lt;br /&gt;
    WinSetTrans($hGUI, &#039;&#039;, 100)&lt;br /&gt;
&lt;br /&gt;
    MsgBox(4096, &#039;&#039;, &#039;The transparency of the GUI is: &#039; &amp;amp; WinGetTrans($hGUI) &amp;amp; &#039;, this should be 100.&#039;)&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
; Find the transparency of a GUI.&lt;br /&gt;
Func WinGetTrans($sTitle, $sText = &#039;&#039;) ; By Valik - http://www.autoitscript.com/forum/topic/...gettrans/page__view__findpost_&lt;br /&gt;
    Local $iTransColor = 0, $iTransparency = 255&lt;br /&gt;
    _WinAPI_GetLayeredWindowAttributes(WinGetHandle($sTitle, $sText), $iTransColor, $iTransparency)&lt;br /&gt;
    Return $iTransparency&lt;br /&gt;
EndFunc   ;==&amp;gt;WinGetTrans&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;br /&gt;
&lt;br /&gt;
== _WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 35302-guinness&lt;br /&gt;
 | AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
    ; Set the working area of the Desktop, in this case 120px to the left and retaining the same height and width.&lt;br /&gt;
    Local $aWorkingArea = _WorkingArea(150, Default, Default, Default)&lt;br /&gt;
&lt;br /&gt;
    ; Create the GUI.&lt;br /&gt;
    Local $hGUI = GUICreate(&#039;&#039;, 150, $aWorkingArea[1], $aWorkingArea[2], $aWorkingArea[3], $WS_POPUP)&lt;br /&gt;
    Local $iClose = GUICtrlCreateButton(&#039;Close&#039;, 5, 5, 150 - 10, 25)&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, $iClose&lt;br /&gt;
                ExitLoop&lt;br /&gt;
&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    WEnd&lt;br /&gt;
&lt;br /&gt;
    ; Delete the GUI.&lt;br /&gt;
    GUIDelete($hGUI)&lt;br /&gt;
&lt;br /&gt;
    ; Reset the working area to the previous values.&lt;br /&gt;
    _WorkingArea()&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&lt;br /&gt;
&lt;br /&gt;
Func _WorkingArea($iLeft = Default, $iTop = Default, $iWidth = Default, $iHeight = Default)&lt;br /&gt;
    Local Static $tWorkArea = 0&lt;br /&gt;
    If IsDllStruct($tWorkArea) Then&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tWorkArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $tWorkArea = 0&lt;br /&gt;
    Else&lt;br /&gt;
        $tWorkArea = DllStructCreate($tagRECT)&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($tWorkArea))&lt;br /&gt;
&lt;br /&gt;
        Local $tCurrentArea = DllStructCreate($tagRECT)&lt;br /&gt;
        Local $aArray[4] = [$iLeft, $iTop, $iWidth, $iHeight]&lt;br /&gt;
        For $i = 0 To 3&lt;br /&gt;
            If $aArray[$i] = Default Or $aArray[$i] &amp;lt; 0 Then&lt;br /&gt;
                $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
            EndIf&lt;br /&gt;
            DllStructSetData($tCurrentArea, $i + 1, $aArray[$i])&lt;br /&gt;
            $aArray[$i] = DllStructGetData($tWorkArea, $i + 1)&lt;br /&gt;
        Next&lt;br /&gt;
        _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tCurrentArea), $SPIF_SENDCHANGE)&lt;br /&gt;
        $aArray[2] -= $aArray[0]&lt;br /&gt;
        $aArray[3] -= $aArray[1]&lt;br /&gt;
        Local $aReturn[4] = [$aArray[2], $aArray[3], $aArray[0], $aArray[1]]&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_WorkingArea&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dual Monitor + WorkingArea ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
 | AuthorURL = 10673-mlipok&lt;br /&gt;
 | AuthorName = mLipok&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIGdi.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_Example()&lt;br /&gt;
&lt;br /&gt;
Func _Example()&lt;br /&gt;
	; taken from HelpFile Example for _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	Local $aMonitors_data = _WinAPI_EnumDisplayMonitors()&lt;br /&gt;
	If @error Then Return SetError(@error, @extended, 0)&lt;br /&gt;
&lt;br /&gt;
	Local $hMonitor = $aMonitors_data[1][0] ; structure defining a display for first monitor rectangle&lt;br /&gt;
	ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Local Enum $MONITOR_X1 = 1, $MONITOR_Y1, $MONITOR_X2, $MONITOR_Y2&lt;br /&gt;
&lt;br /&gt;
	Local $aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
	ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
	ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_1 with various controls.&lt;br /&gt;
	Local $hGUI_1 = GUICreate(&amp;quot;Example 1&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_1 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_1&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_1)&lt;br /&gt;
&lt;br /&gt;
	; chceck if there was taken data for second monitor&lt;br /&gt;
	If UBound($aMonitors_data) = 3 Then&lt;br /&gt;
		$hMonitor = $aMonitors_data[2][0] ; structure defining a display for second monitor rectangle&lt;br /&gt;
		ConsoleWrite(&amp;quot;! &amp;quot; &amp;amp; $hMonitor &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
		$aMonitorInfo = _WinAPI_GetMonitorInfo($hMonitor)&lt;br /&gt;
		ConsoleWrite(&amp;quot;! Primary=&amp;quot; &amp;amp; $aMonitorInfo[2] &amp;amp; &#039;  MonitorName = &#039; &amp;amp; $aMonitorInfo[3] &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y1 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- X2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_X2) &amp;amp; @CRLF)&lt;br /&gt;
		ConsoleWrite(&amp;quot;- Y2 = &amp;quot; &amp;amp; DllStructGetData($aMonitorInfo[1], $MONITOR_Y2) &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Create a GUI_2 with various controls.&lt;br /&gt;
	Local $hGUI_2 = GUICreate(&amp;quot;Example 2&amp;quot;, _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X2)-DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y2)-DllStructGetData($aMonitorInfo[1], $MONITOR_Y1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_X1), _&lt;br /&gt;
			DllStructGetData($aMonitorInfo[1], $MONITOR_Y1) _&lt;br /&gt;
			)&lt;br /&gt;
	Local $idOK_2 = GUICtrlCreateButton(&amp;quot;OK&amp;quot;, 310, 370, 85, 25)&lt;br /&gt;
	; Display the GUI_2&lt;br /&gt;
	GUISetState(@SW_SHOW, $hGUI_2)&lt;br /&gt;
&lt;br /&gt;
	; Initialize a Local variable for GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
	Local $aMsg = 0&lt;br /&gt;
&lt;br /&gt;
	; Loop until the user Close both GUI_1 and GUI_2&lt;br /&gt;
	While IsHWnd($hGUI_1) Or IsHWnd($hGUI_2) ; check if any GUI exist&lt;br /&gt;
		; Assign to $aMsg the advanced GUI messages.&lt;br /&gt;
		$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)&lt;br /&gt;
		Switch $aMsg[1] ; Switch from GUIs&lt;br /&gt;
			Case $hGUI_1 ; The event comes from the GUI1&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_1)&lt;br /&gt;
					Case $idOK_1&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_1 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
			Case $hGUI_2  ; The event comes from the GUI2&lt;br /&gt;
				Switch $aMsg[0] ; Switch from event ID&lt;br /&gt;
					Case $GUI_EVENT_CLOSE&lt;br /&gt;
						GUIDelete($hGUI_2)&lt;br /&gt;
					Case $idOK_2&lt;br /&gt;
						MsgBox($MB_SYSTEMMODAL, &amp;quot;&amp;quot;, &amp;quot;Ok_2 clicked.&amp;quot;)&lt;br /&gt;
				EndSwitch&lt;br /&gt;
		EndSwitch&lt;br /&gt;
	WEnd&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | ReturnToContents]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=AutoIt_Programs&amp;diff=13845</id>
		<title>AutoIt Programs</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=AutoIt_Programs&amp;diff=13845"/>
		<updated>2018-10-19T09:50:49Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* File/Data/Image Processing/Viewers */ added Editors to header&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;
== 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/Editors ==&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=177432 ID3 Clean (by llewxam) ]&lt;br /&gt;
:Removes ID3V1 and ID3V2 tags.  Uses the frame size as calculated from frame header data to verify the start of the audio stream, and can remove broken and duplicated tags,&lt;br /&gt;
&lt;br /&gt;
== Games made in AutoIt ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=153735 A list of Games made ​​in Autoit]&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;
* [https://www.linuxliveusb.com LinuxLive USB Creator (by Thibaut Lauzière)] &lt;br /&gt;
:LiLi creates portable, bootable and virtualized USB stick running Linux..&lt;br /&gt;
&lt;br /&gt;
* [http://www.wsusoffline.net WSUS Offline Update (by Torsten Wittrock)] &lt;br /&gt;
:Offers a convenient way to update your Windows operating system offline. Includes offline update downloader for modern Windows operating systems.&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13842</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=13842"/>
		<updated>2018-10-18T23:30:47Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: counter changed from 320 to 321&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (321 UDFs on 2018/10/19), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184817 SyslogSend (by Irios)] - This allows sending (BSD) messages to a syslog server using UDP&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=809854 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111492 Link Grammar for AutoIt (by JRowe)] -  It&#039;s somewhat akin to a reverse regular expression. You input a regular English (or German or Italian) sentence, and it outputs a pattern parsed from the structure of the sentence. http://www.link.cs.cmu.edu/link/&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF. Embed any binary data into your AutoIt compiled EXE files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - Up to date version of Zedna&#039;s Resources UDF. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=152093 LexingUDF (by pandel)] - LexingUDF + ScriptEditor with I18N support and customizable lexer completely written in AutoIt (based on SciLexer).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13841</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=13841"/>
		<updated>2018-10-18T23:30:22Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Misc */ added Link Grammar for AutoIt (by JRowe)&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (320 UDFs on 2018/10/18), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184817 SyslogSend (by Irios)] - This allows sending (BSD) messages to a syslog server using UDP&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=809854 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111492 Link Grammar for AutoIt (by JRowe)] -  It&#039;s somewhat akin to a reverse regular expression. You input a regular English (or German or Italian) sentence, and it outputs a pattern parsed from the structure of the sentence. http://www.link.cs.cmu.edu/link/&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF. Embed any binary data into your AutoIt compiled EXE files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - Up to date version of Zedna&#039;s Resources UDF. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=152093 LexingUDF (by pandel)] - LexingUDF + ScriptEditor with I18N support and customizable lexer completely written in AutoIt (based on SciLexer).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13840</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=13840"/>
		<updated>2018-10-18T20:43:23Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: counter changed from 319 to 320&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (320 UDFs on 2018/10/18), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184817 SyslogSend (by Irios)] - This allows sending (BSD) messages to a syslog server using UDP&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=809854 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF. Embed any binary data into your AutoIt compiled EXE files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - Up to date version of Zedna&#039;s Resources UDF. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=152093 LexingUDF (by pandel)] - LexingUDF + ScriptEditor with I18N support and customizable lexer completely written in AutoIt (based on SciLexer).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13839</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=13839"/>
		<updated>2018-10-18T20:42:53Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Misc */ added LexingUDF (by pandel)&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (319 UDFs on 2018/10/17), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184817 SyslogSend (by Irios)] - This allows sending (BSD) messages to a syslog server using UDP&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=809854 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF. Embed any binary data into your AutoIt compiled EXE files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - Up to date version of Zedna&#039;s Resources UDF. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=152093 LexingUDF (by pandel)] - LexingUDF + ScriptEditor with I18N support and customizable lexer completely written in AutoIt (based on SciLexer).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13838</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=13838"/>
		<updated>2018-10-18T16:52:28Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Media */ fixed URL for HyperCam (by seangriffin)&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (319 UDFs on 2018/10/17), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184817 SyslogSend (by Irios)] - This allows sending (BSD) messages to a syslog server using UDP&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=809854 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF. Embed any binary data into your AutoIt compiled EXE files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - Up to date version of Zedna&#039;s Resources UDF. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13837</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=13837"/>
		<updated>2018-10-16T23:51:16Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: counter changed from 318 to 319&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (319 UDFs on 2018/10/17), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184817 SyslogSend (by Irios)] - This allows sending (BSD) messages to a syslog server using UDP&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF. Embed any binary data into your AutoIt compiled EXE files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - Up to date version of Zedna&#039;s Resources UDF. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13836</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=13836"/>
		<updated>2018-10-16T23:50:39Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Internet protocol suite */ SyslogSend (by Irios)&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (318 UDFs on 2018/10/14), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184817 SyslogSend (by Irios)] - This allows sending (BSD) messages to a syslog server using UDP&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF. Embed any binary data into your AutoIt compiled EXE files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - Up to date version of Zedna&#039;s Resources UDF. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=UDF-spec&amp;diff=13835</id>
		<title>UDF-spec</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=UDF-spec&amp;diff=13835"/>
		<updated>2018-10-16T08:56:26Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Examples */  Au3Check flags&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:UDF]]&lt;br /&gt;
{{WIP}}This page is still under construction.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A library is a collection of one or more User Defined Functions (UDFs). However, the term UDF is often used to describe the collection as a whole. If a UDF is to be considered for inclusion in the standard set distributed with AutoIt then it must meet all the criteria detailed here, but it&#039;s also good practice to always write in conformance with at least the majority of this document, as that is what will be expected by people reading your code later.&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
Firstly, the code itself should meet the following basic requirements:&lt;br /&gt;
&lt;br /&gt;
* Be tidied. Just hit &amp;lt;code&amp;gt;Ctrl+T&amp;lt;/code&amp;gt; from SciTE or run Tidy manually. The only flag needed is &amp;lt;code&amp;gt;/sf&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Pass Au3Check with no errors using the strictest settings: &amp;lt;code&amp;gt;-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7&amp;lt;/code&amp;gt;&lt;br /&gt;
* Support everything AutoIt supports. In some cases features may not be able to support everything, in which case this should be checked for and return errors appropriately. This applies to: windows OS versions (AutoIt has support for all OS&#039; from windows 2000), unicode and ansi strings, 64 and 32 bit machines.&lt;br /&gt;
* Not use any magic numbers. Ever. None. At all. No excuses.&lt;br /&gt;
&lt;br /&gt;
== UDF Outline ==&lt;br /&gt;
The library itself has a header that details important information such as the minimum OS and AutoIt versions, and what system dlls are required. There is also a number of other sections that are required that list what is present in the UDF.&lt;br /&gt;
&lt;br /&gt;
=== Includes ===&lt;br /&gt;
Since a UDF is designed to define functions, it should only be included once. As a result, the &amp;lt;code&amp;gt;#include-once&amp;lt;/code&amp;gt; directive should be used. This is typically the first line of the UDF, followed by the includes used by the UDF. Include statements should use the double quoted form, as the library is expected to work in the same directory as libraries it depends on. Non standard libraries can be used if necessary, but this should be documented and linked to so users can download it as well. It goes without saying that a UDF based on non-standard UDFs cannot itself become a standard.&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
The index follows the following template (taken from &amp;lt;code&amp;gt;WinAPI.au3&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INDEX# =======================================================================================================================&lt;br /&gt;
; Title .........: Windows API&lt;br /&gt;
; AutoIt Version : 3.2&lt;br /&gt;
; Description ...: Windows API calls that have been translated to AutoIt functions.&lt;br /&gt;
; Author(s) .....: Paul Campbell (PaulIA), gafrost, Siao, Zedna, arcker, Prog@ndy, PsaltyDS, Raik, jpm&lt;br /&gt;
; Dll ...........: kernel32.dll, user32.dll, gdi32.dll, comdlg32.dll, shell32.dll, ole32.dll, winspool.drv&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The only required element in the index header is &amp;lt;code&amp;gt;Title&amp;lt;/code&amp;gt;. All others are ignored by the processor, but should be included for reference, remember that you can add some custom fields like &amp;lt;code&amp;gt;Links&amp;lt;/code&amp;gt; too.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Dll&amp;lt;/code&amp;gt; field can remain empty in many cases where no dlls are called directly. This header must be defined.&lt;br /&gt;
&lt;br /&gt;
=== Other Sections ===&lt;br /&gt;
Other sections, in order of appearance, are as follows.&lt;br /&gt;
&lt;br /&gt;
==== Variables ====&lt;br /&gt;
All global variables needed to be declared in the UDF are defined in this section. They should follow the variable rules for globals. Individual variables do not need to be documented, as it is assumed they are for internal use only. Any globals designed to be accessible for the user should instead be wrapped by a function (or multiple functions if globals must be retrieved and set). The template for this section is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #VARIABLES# ===================================================================================================================&lt;br /&gt;
Global $__g_vMyGlobal = 0&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no globals are needed then this section may be ommitted. Please consider the use of global variables carefully, and read through the section on global variables.&lt;br /&gt;
&lt;br /&gt;
==== Constants ====&lt;br /&gt;
Any global constant values are defined in this section. This should be constants only designated for use within the library itself. Constants that may be needed by the user should be defined in a separate file, named &amp;lt;code&amp;gt;UDFConstants.au3&amp;lt;/code&amp;gt; where &amp;lt;code&amp;gt;UDF&amp;lt;/code&amp;gt; is the name of the parent file. For example &amp;lt;code&amp;gt;File.au3&amp;lt;/code&amp;gt; uses constants defined in &amp;lt;code&amp;gt;FileConstants.au3&amp;lt;/code&amp;gt;. The exception to that rule is control UDFs which miss out the prepended &#039;GUI&#039; when naming constant files, so &amp;lt;code&amp;gt;GUIButton.au3&amp;lt;/code&amp;gt; uses constants from &amp;lt;code&amp;gt;ButtonConstants.au3&amp;lt;/code&amp;gt;. The template for this section is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #CONSTANTS# ===================================================================================================================&lt;br /&gt;
Global Const $__MYUDFCONSTANT_FOOBAR = 42&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no constants are needed in this section, either because none are used or because they are stored in a separate file, then it may be ommitted. Please read the section on global constants for specific info on naming and definition of constants.&lt;br /&gt;
&lt;br /&gt;
==== Listing ====&lt;br /&gt;
This defines all functions and structures currently used in the library. It MUST be the second defined header item after [[#Index]]. It is a simple list with each function on a line where the functions and structures appear in the same order as they do in the code, which is alphabetical order and structures first. A simple way to generate this list is to create a small script that searches for function definitions and outputs them in the correct format, an example of which is [http://www.autoitscript.com/forum/topic/120820-function-name-lister/ here]. In addition there is a second section that lists functions and structures for internal use only, this does not need to appear if none are defined.&lt;br /&gt;
&lt;br /&gt;
The template for these sections are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #CURRENT# =====================================================================================================================&lt;br /&gt;
;$tagSTRUCT&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
;$tagINTERNALSTRUCT&lt;br /&gt;
;__MyUDF_InternalFunction&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This section still needs to be defined for files that only define constants. It should also be noted that there MUST NOT be a space between the &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; and the function/structure name.&lt;br /&gt;
&lt;br /&gt;
==== Undocumented Listing ====&lt;br /&gt;
There is a final kind of listing that lists functions for which no documentation exists, or they have been deprecated and are only included for backwards compatibility. These are listed in a section with the header &amp;lt;code&amp;gt;NO_DOC_FUNCTION&amp;lt;/code&amp;gt;. This is very rarely used, and is reserved only for functions that can be utilised by the user, or that would have been in the past, as opposed to those for internal use only.&lt;br /&gt;
&lt;br /&gt;
Template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #NO_DOC_FUNCTION# =============================================================================================================&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Renamed Functions ====&lt;br /&gt;
Although it should not be the case in new UDFs, many of the older ones (particularly to do with controls) have had script breaking name changes to functions. These are documented in the UDF to ensure updating old scripts is as easy as possible. The basic format for this is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #NO_DOC_FUNCTION# =============================================================================================================&lt;br /&gt;
;_MyUDF_OldFunction                        ; --&amp;gt; _MyUDF_NewFunction&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The space padding is optional. This section is ignored as far as the docs are concerned, and is usually omitted.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== Naming ===&lt;br /&gt;
Function names must start with an underscore, and the first word is the library name. There is then usually another underscore before the rest of the function name. The library name should be consistent across all the functions in the library, and can be shortened if a logical abbreviation is available (e.g. &amp;lt;code&amp;gt;Window&amp;lt;/code&amp;gt; ==&amp;gt; &amp;lt;code&amp;gt;Win&amp;lt;/code&amp;gt;). Each word should be capitalized, but no underscores are placed in the rest of the name, for example &amp;lt;code&amp;gt;_WinAPI_GetWindowLong&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For control libraries, the first part of the function name is changed slightly. For example the UDF for listviews would use &amp;lt;code&amp;gt;_GUICtrlListview_*&amp;lt;/code&amp;gt;. When a function wraps a dll call, then the second part should closely resemble the function name as it appears in other languages. This also applies to functions acting as a wrapper to &amp;lt;code&amp;gt;SendMessage&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Functions are defined in alphabetical order by name, which is the same as using &amp;lt;code&amp;gt;Tidy&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;/sf&amp;lt;/code&amp;gt; flag set.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
Parameters should follow the variable naming scheme ([[#Naming_2|here]]). All parameters must be checked to ensure they are valid, and return unique and documented error codes if they are not. For functions involving a specific type of control, this includes checking the class name using &amp;lt;code&amp;gt;_WinAPI_IsClassName&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Parameters that are optional or byref should be documented as such, and the effect these have explicitly stated. For example a byref parameter should detail exactly what the expected output is as well as the input.&lt;br /&gt;
&lt;br /&gt;
=== Headers ===&lt;br /&gt;
All functions have a documentation header that describes the function. This uses the following template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: _WinAPI_GetMousePos&lt;br /&gt;
; Description ...: Returns the current mouse position&lt;br /&gt;
; Syntax.........: _WinAPI_GetMousePos([$bToClient = False[, $hWnd = 0]])&lt;br /&gt;
; Parameters ....: $bToClient   - If True, the coordinates will be converted to client coordinates&lt;br /&gt;
;                  $hWnd        - Window handle used to convert coordinates if $fToClient is True&lt;br /&gt;
; Return values .: Success      - $tagPOINT structure with current mouse position&lt;br /&gt;
;                  Failure      - 0&lt;br /&gt;
; Author ........: Paul Campbell (PaulIA)&lt;br /&gt;
; Modified.......:&lt;br /&gt;
; Remarks .......: This function takes into account the current MouseCoordMode setting when  obtaining  the  mouse  position.  It&lt;br /&gt;
;                  will also convert screen to client coordinates based on the parameters passed.&lt;br /&gt;
; Related .......: $tagPOINT, _WinAPI_GetMousePosX, _WinAPI_GetMousePosY&lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: Yes&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _WinAPI_GetMousePos($bToClient = False, $hWnd = 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The header is 129 characters wide, and any text within it should be wrapped to that length. For example the &amp;lt;code&amp;gt;Remarks&amp;lt;/code&amp;gt; in the above header has been extended to cover two lines. The exception to that rule is the &amp;lt;code&amp;gt;Syntax&amp;lt;/code&amp;gt; line, which should not be wrapped. Some of the parameters in the header are optional, in which case they should remain, but be left empty (for example the &amp;lt;code&amp;gt;Link&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Modified&amp;lt;/code&amp;gt; lines in the above header). In others, they are needed, but can be empty or not used such as &amp;lt;code&amp;gt;Parameters&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Return Values&amp;lt;/code&amp;gt;. In this case the value should be &#039;None&#039;, as they will still be present in the documentation.&lt;br /&gt;
&lt;br /&gt;
There are some flags that can be used within function headers: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; in column 20 is the continuation flag for the previous line (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;|&#039;&#039;&#039; in column 20 is a new line in the right side of the table when the help file is generated (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;-&#039;&#039;&#039; in column 20 will create new row in the table, used for things like Defaults for a style (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; in column 2 of Remarks is a blank line&lt;br /&gt;
Name&lt;br /&gt;
:Specifies the name of the function. This will be identical to how it appeas in the Func statement in the code itself.&lt;br /&gt;
Description&lt;br /&gt;
:Gives a short summary of what the function does. This should only be a single line, as it is only designed to give a short impression of what is happening. For the standard set of includes distributed with AutoIt3, this value is also used in the SciTE calltips.&lt;br /&gt;
Syntax&lt;br /&gt;
:Describes the syntax of the function call. This differs slightly from what appears in the code itself for optional parameters, which are enclosed in square brackets (&amp;quot;[ ]&amp;quot;). Since subsequent parameters must also be optional, and cannot be defined unless all the previous ones have been given, these brackets are nested in the form: Function([param1[, param2[,param3]]]). Note that the opening bracket appears before the comma seperator.&lt;br /&gt;
Parameters&lt;br /&gt;
:This is a list of the arguments accepted by the function. Each is listed, followed by a dash (&amp;quot;-&amp;quot;) and a description of what it is. The dash can be padded for neatness, although the amount of padding depends on how long the parameter names are. If the parameter is optional then the meaning of the default value should be given, similarly if it&#039;s used to pass data back to the program in the form of byref then the changes made should also be detailed. For more information on parameters see Parameters.&lt;br /&gt;
Return values&lt;br /&gt;
:Details what is returned by the function. This often comes in the form of Success and Failure values, but this is not always the case. Any setting of the @error of @extended flags should be detailed, along with their meanings, in some cases it is enough to say that @error is set to non-zero in the event of an error, in most cases though a list of values for @error should be given.&lt;br /&gt;
Author&lt;br /&gt;
:This is the original writer of the function. It should contain the username, so that any queries about the code can be made through the forum, but you can give as much or little information as you feel appropriate.&lt;br /&gt;
Modified&lt;br /&gt;
:This is a list of modifications made. At it&#039;s most basic this is just a list of users who have made changes, but ideally it includes some information about what they did, in which cases it follows the same form as other multi-value lines, with the username and description of modifications seperated by a dash.&lt;br /&gt;
Remarks&lt;br /&gt;
:This is anything the user should know about a function in order to use it. For example exceptional cases and recommended ways to handle the function should all be detailed here, as well as additional info about possible reasons for failure and how to deal with them.&lt;br /&gt;
Related&lt;br /&gt;
:A comma seperated list of functions or structures related to the function.&lt;br /&gt;
Link&lt;br /&gt;
:A link to additional information about the function. For many system function wrappers, this will be &amp;lt;code&amp;gt;@@MsdnLink@@ FunctionName&amp;lt;/code&amp;gt;, which represents that the user should search MSDN for the function.&lt;br /&gt;
Example&lt;br /&gt;
:A simple yes or no value specifying whether the function has an example. If this is no then your UDF is not ready to be released. The [[#Examples]] section has more information on the format and location of examples.&lt;br /&gt;
&lt;br /&gt;
The easiest way to generate the header is to copy and paste the following blank template in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Syntax.........: &lt;br /&gt;
; Parameters ....: &lt;br /&gt;
; Return values .: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Modified.......: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are also a number of plugins for SciTE that will generate a header and maybe fill in certain known values for you such as Name, Syntax and Parameters. The most complete one that conforms to these standards is [http://code.google.com/p/m-a-t/wiki/UDFHeaderGenerator here], but there are two others [http://www.autoitscript.com/forum/topic/28270-lua-script-for-udf-header/ here] and [http://www.autoitscript.com/forum/topic/28270-lua-script-for-udf-header/page__view__findpost__p__200823 here].&lt;br /&gt;
&lt;br /&gt;
=== Internal use only ===&lt;br /&gt;
Functions can also be marked for use only within the library and not to be documented for use by the user. These are named according to the same rules as normal functions but begin with a double underscore (&amp;quot;__&amp;quot;). The header is exactly the same except with the first line replaced, to make the blank template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Syntax.........: &lt;br /&gt;
; Parameters ....: &lt;br /&gt;
; Return values .: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Modified.......: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Structures ==&lt;br /&gt;
Structures are defined as global constants, and follow the naming pattern &amp;lt;code&amp;gt;$tagSTRUCTNAME&amp;lt;/code&amp;gt;. The struct name should be as it appears on MSDN if it&#039;s used in the windows API, or follow a similar pattern if not. It should go without saying that they must work for both 32 and 64 bit machines, including resolving any alignment issues. Elements should also be named as they appear on MSDN if they are taken from there, which includes the hungarian notation prefix. Although many standard UDFs do not follow that rule, importantly &amp;lt;code&amp;gt;StructureConstants.au3&amp;lt;/code&amp;gt;, the rule still stands.&lt;br /&gt;
&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Structures need a header similar to functions, but with some minor differences. The same rules apply in terms of wrapping and line length however. The header follow this standard template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: $tagPOINT&lt;br /&gt;
; Description ...: Defines the x and y coordinates of a point&lt;br /&gt;
; Fields ........: X - Specifies the x-coordinate of the point&lt;br /&gt;
;                  Y - Specifies the y-coordinate of the point&lt;br /&gt;
; Author ........: Paul Campbell (PaulIA)&lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Global Const $tagPOINT = &amp;quot;long X;long Y&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is essentially a shortened header, with the only thing new is the Fields line, which effectively replaces the Parameters field in terms of usage. All the same rules apply as listed [[#Function Header Fields|here]].&lt;br /&gt;
&lt;br /&gt;
The blank template is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Fields ........: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Structures may also be marked for internal use only. In this case the header ramains the same, but the sections first line changes. The blank template is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Fields ........: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
For code readability, there are special rules dealing with variables, particularly naming. All variables should be declared at the beginning of their scope, which usually means at the start of the function in which they are used, but could mean the top of the UDF itself in the [[#Variables|Variables section]].&lt;br /&gt;
&lt;br /&gt;
=== Naming ===&lt;br /&gt;
A variable&#039;s first letter signifies the expected scope and type of the variable. See [[Best_coding_practices#Names_of_Variables|Names of Variables]]&lt;br /&gt;
&lt;br /&gt;
=== Globals ===&lt;br /&gt;
The use of globals in a UDF is generally frowned upon, and byref parameters and static variables should be used where possible instead. However, in cases where this is not possible and a global must be used they should be defined using the following naming pattern: &amp;lt;code&amp;gt;$__g_&amp;amp;lt;VARNAME&amp;amp;gt;&amp;lt;/code&amp;gt; where &amp;lt;code&amp;gt;&amp;amp;lt;VARNAME&amp;amp;gt;&amp;lt;/code&amp;gt; is the name as it would usually appear according to the variable naming rules above. This ensures there will never be a conflict with user variables of other UDF globals. They should be declared at the top of the UDF in the Variables section.&lt;br /&gt;
&lt;br /&gt;
Globals are always private. If they need to be accessed by the user then functions need to be written wrapping that operation and values should be checked. Notable exceptions are debug variables, which are designed for developer purposes and may be used by some users in extreme cases. These are named &amp;lt;code&amp;gt;$Debug_&amp;amp;lt;UDF&amp;amp;gt;&amp;lt;/code&amp;gt; although the &amp;lt;code&amp;gt;&amp;amp;lt;UDF&amp;amp;gt;&amp;lt;/code&amp;gt; part is often shortened so &amp;lt;code&amp;gt;GUIEdit.au3&amp;lt;/code&amp;gt; uses &amp;lt;code&amp;gt;$Debug_Ed&amp;lt;/code&amp;gt;. It is not required that a UDF has debugging symbols, but they are allowed to remain in releases.&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
There are two types of constants, internal and public. Public constants are designed to be utilised by the user, and are referenced in functions that use them. They include styles and flags. Internal constants are designed for use only within the library, so that values used fairly often can be held in one place to allow for easy updating. Both kinds of constant are always typed in all upper case. Constants taken from the windows API should appear exactly as they are defined there, but internal constants follow the naming pattern: &amp;lt;code&amp;gt;$__&amp;amp;lt;UDF&amp;amp;gt;CONSTANT_&amp;amp;lt;NAME&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;lt;code&amp;gt;Dim&amp;lt;/code&amp;gt; statement ===&lt;br /&gt;
Should not be used.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
All functions and structures that are made public to the user need to have a good quality example. This means that it should:&lt;br /&gt;
&lt;br /&gt;
* Be simple. Ideally the only functions used are basic functions like ConsoleWrite and MsgBox and the function that the example is written for. Writing a single example that covers a wide range of functions is not nearly as easy to use as writing an example per function that clearly demonstrates its use.&lt;br /&gt;
* Be readable. Everything should be explained step by step in comments.&lt;br /&gt;
* Be correct. In addition to passing the same Au3Check flags as the UDF itself (&amp;lt;code&amp;gt;-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7&amp;lt;/code&amp;gt;) it should always be written with best practice being the main consideration. This takes preference over the first point, just because code is shorter and looks easier doesn&#039;t mean it&#039;s right.&lt;br /&gt;
* Examples should represent all the functionality. If there is more than one way of using a function then include more than one example of how to use it.&lt;br /&gt;
* Not make any permanent changes to the users computer. For example, if demonstrating a File function, be sure to delete the file after it has been used. The same applies for any function that makes a change to the environment: the changes MUST be undone.&lt;br /&gt;
&lt;br /&gt;
Always remember, the readability of code in an example is MORE important than the readability of code inside the UDF itself.&lt;br /&gt;
&lt;br /&gt;
Examples are stored in script files called &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;.au3&amp;lt;/code&amp;gt;. The files should be kept in a folder called &amp;lt;code&amp;gt;Examples&amp;lt;/code&amp;gt;. To remain correct all examples should be wrapped in functions, such that the only code executed in the global scope is calling the function. This is usually named &amp;lt;code&amp;gt;Example&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Constants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Opt(&amp;quot;MustDeclareVars&amp;quot;, 1)&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $idButton_Run, $idButton_Test, $iMsg, $hGUI_MyApp&lt;br /&gt;
	&lt;br /&gt;
	$hGUI_MyApp = GUICreate(&amp;quot;My GUI Button&amp;quot;) ; Will create a dialog box that when displayed is centered&lt;br /&gt;
&lt;br /&gt;
	$idButton_Run = GUICtrlCreateButton(&amp;quot;Run Notepad&amp;quot;, 4, 4, 80, 30)&lt;br /&gt;
	$idButton_Test = GUICtrlCreateButton(&amp;quot;Button Test&amp;quot;, 4, 38, 80, 30)&lt;br /&gt;
&lt;br /&gt;
	GUISetState() ; will display a dialog box with 2 button&lt;br /&gt;
&lt;br /&gt;
	; Run the GUI until the dialog is closed&lt;br /&gt;
	While 1&lt;br /&gt;
		$iMsg = GUIGetMsg()&lt;br /&gt;
		Select&lt;br /&gt;
			Case $iMsg = $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $iMsg = $idButton_Run&lt;br /&gt;
				Run(&amp;quot;Notepad.exe&amp;quot;) ; Will Run/Open Notepad&lt;br /&gt;
			Case $iMsg = $idButton_Test&lt;br /&gt;
				MsgBox($MB_SYSTEMMODAL, &amp;quot;Testing&amp;quot;, &amp;quot;Button 2 was pressed&amp;quot;) ; Will demonstrate Button 2 being pressed&lt;br /&gt;
		EndSelect&lt;br /&gt;
	WEnd&lt;br /&gt;
	GUIDelete($hGUI_MyApp)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multiple Examples ===&lt;br /&gt;
The helpfile now supports multiple examples per function. In order to maintain backwards compatibility with any other tools that use examples, the first file is still named &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;.au3&amp;lt;/code&amp;gt;, but any additional examples are named &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;[n].au3&amp;lt;/code&amp;gt; where n is an integer counter starting at 2.&lt;br /&gt;
&lt;br /&gt;
== Template UDF ==&lt;br /&gt;
Here is an example of a UDF called &amp;lt;code&amp;gt;MyUDF.au3&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; AU3Check settings&lt;br /&gt;
#AutoIt3Wrapper_Run_AU3Check=Y&lt;br /&gt;
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7&lt;br /&gt;
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=Y&lt;br /&gt;
#include-once&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;MyUDFConstants.au3&amp;quot;&lt;br /&gt;
#include &amp;quot;AnInclude.au3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; #INDEX# =======================================================================================================================&lt;br /&gt;
; Title .........: MyUDF&lt;br /&gt;
; AutoIt Version : 3.3.10.2&lt;br /&gt;
; Language ......: English&lt;br /&gt;
; Author(s) .....: &lt;br /&gt;
; Modifiers .....: &lt;br /&gt;
; Forum link ....: a link to the main forum topic (if aplicable)&lt;br /&gt;
; Description ...: An example UDF that does very little.&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #CURRENT# =====================================================================================================================&lt;br /&gt;
;$tagMYSTRUCT&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: $tagMYSTRUCT&lt;br /&gt;
; Description ...: An example of a structure.&lt;br /&gt;
; Fields ........: hFoo       - A handle to foo that does something.&lt;br /&gt;
;                  iBar       - An integer that does something.&lt;br /&gt;
; Author ........: Matt Diesel (Mat)&lt;br /&gt;
; Remarks .......:&lt;br /&gt;
; Related .......: _MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Global Const $tagMYSTRUCT = &amp;quot;ptr hFoo; int iBar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: _MyUDF_Function&lt;br /&gt;
; Description ...: A function that does something.&lt;br /&gt;
; Syntax.........: _MyUDF_Function(ByRef $avAnArray, $iAnInt[, $hAHandle = 0[, $nSomeNumber = 42]])&lt;br /&gt;
; Parameters ....: $avAnArray       - [byref] An array of anything. The value of anything is changed and passed out using this&lt;br /&gt;
;                                     parameter. The array should only have one dimension&lt;br /&gt;
;                  $iAnInt          - An integer that does very little.&lt;br /&gt;
;                  $hAHandle        - [optional] A handle. Default is zero.&lt;br /&gt;
;                  $nSomeNumber     - [optional] A number of some kind. Default is 42.&lt;br /&gt;
; Return values .: Success          - A MYSTRUCT structure.&lt;br /&gt;
;                  Failure          - Returns zero and sets the @error flag:&lt;br /&gt;
;                                   |1 - The $avAnArray is invalid.&lt;br /&gt;
; Author ........: Matt Diesel (Mat)&lt;br /&gt;
; Modified.......:&lt;br /&gt;
; Remarks .......:&lt;br /&gt;
; Related .......: $tagMYSTRUCT&lt;br /&gt;
; Link ..........:&lt;br /&gt;
; Example .......: No&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _MyUDF_Function(ByRef $avAnArray, $iAnInt, $hAHandle = 0, $nSomeNumber = 42)&lt;br /&gt;
	; 1 - Error Checking for parameters.&lt;br /&gt;
	If Not IsArray($avAnArray) Or UBound($avAnArray, 0) &amp;lt;&amp;gt; 1 Then Return SetError(1, 0, 0) ; The $avAnArray is invalid.&lt;br /&gt;
&lt;br /&gt;
	; 2 - Declaration of locals.&lt;br /&gt;
	Local $tMS = DllStructCreate($tagMYSTRUCT)&lt;br /&gt;
&lt;br /&gt;
	; 3 - Function code&lt;br /&gt;
	DllStructSetData($tMS, &amp;quot;hFoo&amp;quot;, $hAHandle)&lt;br /&gt;
	DllStructSetData($tMS, &amp;quot;iBar&amp;quot;, $iAnInt * $nSomeNumber)&lt;br /&gt;
&lt;br /&gt;
	Return $tMS&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyUDF_Function&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=UDF-spec&amp;diff=13834</id>
		<title>UDF-spec</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=UDF-spec&amp;diff=13834"/>
		<updated>2018-10-16T08:54:45Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Template UDF */  #AutoIt3Wrapper_Au3Check_Parameters fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:UDF]]&lt;br /&gt;
{{WIP}}This page is still under construction.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A library is a collection of one or more User Defined Functions (UDFs). However, the term UDF is often used to describe the collection as a whole. If a UDF is to be considered for inclusion in the standard set distributed with AutoIt then it must meet all the criteria detailed here, but it&#039;s also good practice to always write in conformance with at least the majority of this document, as that is what will be expected by people reading your code later.&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
Firstly, the code itself should meet the following basic requirements:&lt;br /&gt;
&lt;br /&gt;
* Be tidied. Just hit &amp;lt;code&amp;gt;Ctrl+T&amp;lt;/code&amp;gt; from SciTE or run Tidy manually. The only flag needed is &amp;lt;code&amp;gt;/sf&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Pass Au3Check with no errors using the strictest settings: &amp;lt;code&amp;gt;-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7&amp;lt;/code&amp;gt;&lt;br /&gt;
* Support everything AutoIt supports. In some cases features may not be able to support everything, in which case this should be checked for and return errors appropriately. This applies to: windows OS versions (AutoIt has support for all OS&#039; from windows 2000), unicode and ansi strings, 64 and 32 bit machines.&lt;br /&gt;
* Not use any magic numbers. Ever. None. At all. No excuses.&lt;br /&gt;
&lt;br /&gt;
== UDF Outline ==&lt;br /&gt;
The library itself has a header that details important information such as the minimum OS and AutoIt versions, and what system dlls are required. There is also a number of other sections that are required that list what is present in the UDF.&lt;br /&gt;
&lt;br /&gt;
=== Includes ===&lt;br /&gt;
Since a UDF is designed to define functions, it should only be included once. As a result, the &amp;lt;code&amp;gt;#include-once&amp;lt;/code&amp;gt; directive should be used. This is typically the first line of the UDF, followed by the includes used by the UDF. Include statements should use the double quoted form, as the library is expected to work in the same directory as libraries it depends on. Non standard libraries can be used if necessary, but this should be documented and linked to so users can download it as well. It goes without saying that a UDF based on non-standard UDFs cannot itself become a standard.&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
The index follows the following template (taken from &amp;lt;code&amp;gt;WinAPI.au3&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INDEX# =======================================================================================================================&lt;br /&gt;
; Title .........: Windows API&lt;br /&gt;
; AutoIt Version : 3.2&lt;br /&gt;
; Description ...: Windows API calls that have been translated to AutoIt functions.&lt;br /&gt;
; Author(s) .....: Paul Campbell (PaulIA), gafrost, Siao, Zedna, arcker, Prog@ndy, PsaltyDS, Raik, jpm&lt;br /&gt;
; Dll ...........: kernel32.dll, user32.dll, gdi32.dll, comdlg32.dll, shell32.dll, ole32.dll, winspool.drv&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The only required element in the index header is &amp;lt;code&amp;gt;Title&amp;lt;/code&amp;gt;. All others are ignored by the processor, but should be included for reference, remember that you can add some custom fields like &amp;lt;code&amp;gt;Links&amp;lt;/code&amp;gt; too.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Dll&amp;lt;/code&amp;gt; field can remain empty in many cases where no dlls are called directly. This header must be defined.&lt;br /&gt;
&lt;br /&gt;
=== Other Sections ===&lt;br /&gt;
Other sections, in order of appearance, are as follows.&lt;br /&gt;
&lt;br /&gt;
==== Variables ====&lt;br /&gt;
All global variables needed to be declared in the UDF are defined in this section. They should follow the variable rules for globals. Individual variables do not need to be documented, as it is assumed they are for internal use only. Any globals designed to be accessible for the user should instead be wrapped by a function (or multiple functions if globals must be retrieved and set). The template for this section is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #VARIABLES# ===================================================================================================================&lt;br /&gt;
Global $__g_vMyGlobal = 0&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no globals are needed then this section may be ommitted. Please consider the use of global variables carefully, and read through the section on global variables.&lt;br /&gt;
&lt;br /&gt;
==== Constants ====&lt;br /&gt;
Any global constant values are defined in this section. This should be constants only designated for use within the library itself. Constants that may be needed by the user should be defined in a separate file, named &amp;lt;code&amp;gt;UDFConstants.au3&amp;lt;/code&amp;gt; where &amp;lt;code&amp;gt;UDF&amp;lt;/code&amp;gt; is the name of the parent file. For example &amp;lt;code&amp;gt;File.au3&amp;lt;/code&amp;gt; uses constants defined in &amp;lt;code&amp;gt;FileConstants.au3&amp;lt;/code&amp;gt;. The exception to that rule is control UDFs which miss out the prepended &#039;GUI&#039; when naming constant files, so &amp;lt;code&amp;gt;GUIButton.au3&amp;lt;/code&amp;gt; uses constants from &amp;lt;code&amp;gt;ButtonConstants.au3&amp;lt;/code&amp;gt;. The template for this section is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #CONSTANTS# ===================================================================================================================&lt;br /&gt;
Global Const $__MYUDFCONSTANT_FOOBAR = 42&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no constants are needed in this section, either because none are used or because they are stored in a separate file, then it may be ommitted. Please read the section on global constants for specific info on naming and definition of constants.&lt;br /&gt;
&lt;br /&gt;
==== Listing ====&lt;br /&gt;
This defines all functions and structures currently used in the library. It MUST be the second defined header item after [[#Index]]. It is a simple list with each function on a line where the functions and structures appear in the same order as they do in the code, which is alphabetical order and structures first. A simple way to generate this list is to create a small script that searches for function definitions and outputs them in the correct format, an example of which is [http://www.autoitscript.com/forum/topic/120820-function-name-lister/ here]. In addition there is a second section that lists functions and structures for internal use only, this does not need to appear if none are defined.&lt;br /&gt;
&lt;br /&gt;
The template for these sections are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #CURRENT# =====================================================================================================================&lt;br /&gt;
;$tagSTRUCT&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
;$tagINTERNALSTRUCT&lt;br /&gt;
;__MyUDF_InternalFunction&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This section still needs to be defined for files that only define constants. It should also be noted that there MUST NOT be a space between the &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; and the function/structure name.&lt;br /&gt;
&lt;br /&gt;
==== Undocumented Listing ====&lt;br /&gt;
There is a final kind of listing that lists functions for which no documentation exists, or they have been deprecated and are only included for backwards compatibility. These are listed in a section with the header &amp;lt;code&amp;gt;NO_DOC_FUNCTION&amp;lt;/code&amp;gt;. This is very rarely used, and is reserved only for functions that can be utilised by the user, or that would have been in the past, as opposed to those for internal use only.&lt;br /&gt;
&lt;br /&gt;
Template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #NO_DOC_FUNCTION# =============================================================================================================&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Renamed Functions ====&lt;br /&gt;
Although it should not be the case in new UDFs, many of the older ones (particularly to do with controls) have had script breaking name changes to functions. These are documented in the UDF to ensure updating old scripts is as easy as possible. The basic format for this is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #NO_DOC_FUNCTION# =============================================================================================================&lt;br /&gt;
;_MyUDF_OldFunction                        ; --&amp;gt; _MyUDF_NewFunction&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The space padding is optional. This section is ignored as far as the docs are concerned, and is usually omitted.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== Naming ===&lt;br /&gt;
Function names must start with an underscore, and the first word is the library name. There is then usually another underscore before the rest of the function name. The library name should be consistent across all the functions in the library, and can be shortened if a logical abbreviation is available (e.g. &amp;lt;code&amp;gt;Window&amp;lt;/code&amp;gt; ==&amp;gt; &amp;lt;code&amp;gt;Win&amp;lt;/code&amp;gt;). Each word should be capitalized, but no underscores are placed in the rest of the name, for example &amp;lt;code&amp;gt;_WinAPI_GetWindowLong&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For control libraries, the first part of the function name is changed slightly. For example the UDF for listviews would use &amp;lt;code&amp;gt;_GUICtrlListview_*&amp;lt;/code&amp;gt;. When a function wraps a dll call, then the second part should closely resemble the function name as it appears in other languages. This also applies to functions acting as a wrapper to &amp;lt;code&amp;gt;SendMessage&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Functions are defined in alphabetical order by name, which is the same as using &amp;lt;code&amp;gt;Tidy&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;/sf&amp;lt;/code&amp;gt; flag set.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
Parameters should follow the variable naming scheme ([[#Naming_2|here]]). All parameters must be checked to ensure they are valid, and return unique and documented error codes if they are not. For functions involving a specific type of control, this includes checking the class name using &amp;lt;code&amp;gt;_WinAPI_IsClassName&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Parameters that are optional or byref should be documented as such, and the effect these have explicitly stated. For example a byref parameter should detail exactly what the expected output is as well as the input.&lt;br /&gt;
&lt;br /&gt;
=== Headers ===&lt;br /&gt;
All functions have a documentation header that describes the function. This uses the following template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: _WinAPI_GetMousePos&lt;br /&gt;
; Description ...: Returns the current mouse position&lt;br /&gt;
; Syntax.........: _WinAPI_GetMousePos([$bToClient = False[, $hWnd = 0]])&lt;br /&gt;
; Parameters ....: $bToClient   - If True, the coordinates will be converted to client coordinates&lt;br /&gt;
;                  $hWnd        - Window handle used to convert coordinates if $fToClient is True&lt;br /&gt;
; Return values .: Success      - $tagPOINT structure with current mouse position&lt;br /&gt;
;                  Failure      - 0&lt;br /&gt;
; Author ........: Paul Campbell (PaulIA)&lt;br /&gt;
; Modified.......:&lt;br /&gt;
; Remarks .......: This function takes into account the current MouseCoordMode setting when  obtaining  the  mouse  position.  It&lt;br /&gt;
;                  will also convert screen to client coordinates based on the parameters passed.&lt;br /&gt;
; Related .......: $tagPOINT, _WinAPI_GetMousePosX, _WinAPI_GetMousePosY&lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: Yes&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _WinAPI_GetMousePos($bToClient = False, $hWnd = 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The header is 129 characters wide, and any text within it should be wrapped to that length. For example the &amp;lt;code&amp;gt;Remarks&amp;lt;/code&amp;gt; in the above header has been extended to cover two lines. The exception to that rule is the &amp;lt;code&amp;gt;Syntax&amp;lt;/code&amp;gt; line, which should not be wrapped. Some of the parameters in the header are optional, in which case they should remain, but be left empty (for example the &amp;lt;code&amp;gt;Link&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Modified&amp;lt;/code&amp;gt; lines in the above header). In others, they are needed, but can be empty or not used such as &amp;lt;code&amp;gt;Parameters&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Return Values&amp;lt;/code&amp;gt;. In this case the value should be &#039;None&#039;, as they will still be present in the documentation.&lt;br /&gt;
&lt;br /&gt;
There are some flags that can be used within function headers: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; in column 20 is the continuation flag for the previous line (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;|&#039;&#039;&#039; in column 20 is a new line in the right side of the table when the help file is generated (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;-&#039;&#039;&#039; in column 20 will create new row in the table, used for things like Defaults for a style (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; in column 2 of Remarks is a blank line&lt;br /&gt;
Name&lt;br /&gt;
:Specifies the name of the function. This will be identical to how it appeas in the Func statement in the code itself.&lt;br /&gt;
Description&lt;br /&gt;
:Gives a short summary of what the function does. This should only be a single line, as it is only designed to give a short impression of what is happening. For the standard set of includes distributed with AutoIt3, this value is also used in the SciTE calltips.&lt;br /&gt;
Syntax&lt;br /&gt;
:Describes the syntax of the function call. This differs slightly from what appears in the code itself for optional parameters, which are enclosed in square brackets (&amp;quot;[ ]&amp;quot;). Since subsequent parameters must also be optional, and cannot be defined unless all the previous ones have been given, these brackets are nested in the form: Function([param1[, param2[,param3]]]). Note that the opening bracket appears before the comma seperator.&lt;br /&gt;
Parameters&lt;br /&gt;
:This is a list of the arguments accepted by the function. Each is listed, followed by a dash (&amp;quot;-&amp;quot;) and a description of what it is. The dash can be padded for neatness, although the amount of padding depends on how long the parameter names are. If the parameter is optional then the meaning of the default value should be given, similarly if it&#039;s used to pass data back to the program in the form of byref then the changes made should also be detailed. For more information on parameters see Parameters.&lt;br /&gt;
Return values&lt;br /&gt;
:Details what is returned by the function. This often comes in the form of Success and Failure values, but this is not always the case. Any setting of the @error of @extended flags should be detailed, along with their meanings, in some cases it is enough to say that @error is set to non-zero in the event of an error, in most cases though a list of values for @error should be given.&lt;br /&gt;
Author&lt;br /&gt;
:This is the original writer of the function. It should contain the username, so that any queries about the code can be made through the forum, but you can give as much or little information as you feel appropriate.&lt;br /&gt;
Modified&lt;br /&gt;
:This is a list of modifications made. At it&#039;s most basic this is just a list of users who have made changes, but ideally it includes some information about what they did, in which cases it follows the same form as other multi-value lines, with the username and description of modifications seperated by a dash.&lt;br /&gt;
Remarks&lt;br /&gt;
:This is anything the user should know about a function in order to use it. For example exceptional cases and recommended ways to handle the function should all be detailed here, as well as additional info about possible reasons for failure and how to deal with them.&lt;br /&gt;
Related&lt;br /&gt;
:A comma seperated list of functions or structures related to the function.&lt;br /&gt;
Link&lt;br /&gt;
:A link to additional information about the function. For many system function wrappers, this will be &amp;lt;code&amp;gt;@@MsdnLink@@ FunctionName&amp;lt;/code&amp;gt;, which represents that the user should search MSDN for the function.&lt;br /&gt;
Example&lt;br /&gt;
:A simple yes or no value specifying whether the function has an example. If this is no then your UDF is not ready to be released. The [[#Examples]] section has more information on the format and location of examples.&lt;br /&gt;
&lt;br /&gt;
The easiest way to generate the header is to copy and paste the following blank template in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Syntax.........: &lt;br /&gt;
; Parameters ....: &lt;br /&gt;
; Return values .: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Modified.......: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are also a number of plugins for SciTE that will generate a header and maybe fill in certain known values for you such as Name, Syntax and Parameters. The most complete one that conforms to these standards is [http://code.google.com/p/m-a-t/wiki/UDFHeaderGenerator here], but there are two others [http://www.autoitscript.com/forum/topic/28270-lua-script-for-udf-header/ here] and [http://www.autoitscript.com/forum/topic/28270-lua-script-for-udf-header/page__view__findpost__p__200823 here].&lt;br /&gt;
&lt;br /&gt;
=== Internal use only ===&lt;br /&gt;
Functions can also be marked for use only within the library and not to be documented for use by the user. These are named according to the same rules as normal functions but begin with a double underscore (&amp;quot;__&amp;quot;). The header is exactly the same except with the first line replaced, to make the blank template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Syntax.........: &lt;br /&gt;
; Parameters ....: &lt;br /&gt;
; Return values .: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Modified.......: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Structures ==&lt;br /&gt;
Structures are defined as global constants, and follow the naming pattern &amp;lt;code&amp;gt;$tagSTRUCTNAME&amp;lt;/code&amp;gt;. The struct name should be as it appears on MSDN if it&#039;s used in the windows API, or follow a similar pattern if not. It should go without saying that they must work for both 32 and 64 bit machines, including resolving any alignment issues. Elements should also be named as they appear on MSDN if they are taken from there, which includes the hungarian notation prefix. Although many standard UDFs do not follow that rule, importantly &amp;lt;code&amp;gt;StructureConstants.au3&amp;lt;/code&amp;gt;, the rule still stands.&lt;br /&gt;
&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Structures need a header similar to functions, but with some minor differences. The same rules apply in terms of wrapping and line length however. The header follow this standard template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: $tagPOINT&lt;br /&gt;
; Description ...: Defines the x and y coordinates of a point&lt;br /&gt;
; Fields ........: X - Specifies the x-coordinate of the point&lt;br /&gt;
;                  Y - Specifies the y-coordinate of the point&lt;br /&gt;
; Author ........: Paul Campbell (PaulIA)&lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Global Const $tagPOINT = &amp;quot;long X;long Y&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is essentially a shortened header, with the only thing new is the Fields line, which effectively replaces the Parameters field in terms of usage. All the same rules apply as listed [[#Function Header Fields|here]].&lt;br /&gt;
&lt;br /&gt;
The blank template is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Fields ........: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Structures may also be marked for internal use only. In this case the header ramains the same, but the sections first line changes. The blank template is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Fields ........: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
For code readability, there are special rules dealing with variables, particularly naming. All variables should be declared at the beginning of their scope, which usually means at the start of the function in which they are used, but could mean the top of the UDF itself in the [[#Variables|Variables section]].&lt;br /&gt;
&lt;br /&gt;
=== Naming ===&lt;br /&gt;
A variable&#039;s first letter signifies the expected scope and type of the variable. See [[Best_coding_practices#Names_of_Variables|Names of Variables]]&lt;br /&gt;
&lt;br /&gt;
=== Globals ===&lt;br /&gt;
The use of globals in a UDF is generally frowned upon, and byref parameters and static variables should be used where possible instead. However, in cases where this is not possible and a global must be used they should be defined using the following naming pattern: &amp;lt;code&amp;gt;$__g_&amp;amp;lt;VARNAME&amp;amp;gt;&amp;lt;/code&amp;gt; where &amp;lt;code&amp;gt;&amp;amp;lt;VARNAME&amp;amp;gt;&amp;lt;/code&amp;gt; is the name as it would usually appear according to the variable naming rules above. This ensures there will never be a conflict with user variables of other UDF globals. They should be declared at the top of the UDF in the Variables section.&lt;br /&gt;
&lt;br /&gt;
Globals are always private. If they need to be accessed by the user then functions need to be written wrapping that operation and values should be checked. Notable exceptions are debug variables, which are designed for developer purposes and may be used by some users in extreme cases. These are named &amp;lt;code&amp;gt;$Debug_&amp;amp;lt;UDF&amp;amp;gt;&amp;lt;/code&amp;gt; although the &amp;lt;code&amp;gt;&amp;amp;lt;UDF&amp;amp;gt;&amp;lt;/code&amp;gt; part is often shortened so &amp;lt;code&amp;gt;GUIEdit.au3&amp;lt;/code&amp;gt; uses &amp;lt;code&amp;gt;$Debug_Ed&amp;lt;/code&amp;gt;. It is not required that a UDF has debugging symbols, but they are allowed to remain in releases.&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
There are two types of constants, internal and public. Public constants are designed to be utilised by the user, and are referenced in functions that use them. They include styles and flags. Internal constants are designed for use only within the library, so that values used fairly often can be held in one place to allow for easy updating. Both kinds of constant are always typed in all upper case. Constants taken from the windows API should appear exactly as they are defined there, but internal constants follow the naming pattern: &amp;lt;code&amp;gt;$__&amp;amp;lt;UDF&amp;amp;gt;CONSTANT_&amp;amp;lt;NAME&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;lt;code&amp;gt;Dim&amp;lt;/code&amp;gt; statement ===&lt;br /&gt;
Should not be used.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
All functions and structures that are made public to the user need to have a good quality example. This means that it should:&lt;br /&gt;
&lt;br /&gt;
* Be simple. Ideally the only functions used are basic functions like ConsoleWrite and MsgBox and the function that the example is written for. Writing a single example that covers a wide range of functions is not nearly as easy to use as writing an example per function that clearly demonstrates its use.&lt;br /&gt;
* Be readable. Everything should be explained step by step in comments.&lt;br /&gt;
* Be correct. In addition to passing the same Au3Check flags as the UDF itself (&amp;lt;code&amp;gt;-q -d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7&amp;lt;/code&amp;gt;) it should always be written with best practice being the main consideration. This takes preference over the first point, just because code is shorter and looks easier doesn&#039;t mean it&#039;s right.&lt;br /&gt;
* Examples should represent all the functionality. If there is more than one way of using a function then include more than one example of how to use it.&lt;br /&gt;
* Not make any permanent changes to the users computer. For example, if demonstrating a File function, be sure to delete the file after it has been used. The same applies for any function that makes a change to the environment: the changes MUST be undone.&lt;br /&gt;
&lt;br /&gt;
Always remember, the readability of code in an example is MORE important than the readability of code inside the UDF itself.&lt;br /&gt;
&lt;br /&gt;
Examples are stored in script files called &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;.au3&amp;lt;/code&amp;gt;. The files should be kept in a folder called &amp;lt;code&amp;gt;Examples&amp;lt;/code&amp;gt;. To remain correct all examples should be wrapped in functions, such that the only code executed in the global scope is calling the function. This is usually named &amp;lt;code&amp;gt;Example&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Constants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Opt(&amp;quot;MustDeclareVars&amp;quot;, 1)&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $idButton_Run, $idButton_Test, $iMsg, $hGUI_MyApp&lt;br /&gt;
	&lt;br /&gt;
	$hGUI_MyApp = GUICreate(&amp;quot;My GUI Button&amp;quot;) ; Will create a dialog box that when displayed is centered&lt;br /&gt;
&lt;br /&gt;
	$idButton_Run = GUICtrlCreateButton(&amp;quot;Run Notepad&amp;quot;, 4, 4, 80, 30)&lt;br /&gt;
	$idButton_Test = GUICtrlCreateButton(&amp;quot;Button Test&amp;quot;, 4, 38, 80, 30)&lt;br /&gt;
&lt;br /&gt;
	GUISetState() ; will display a dialog box with 2 button&lt;br /&gt;
&lt;br /&gt;
	; Run the GUI until the dialog is closed&lt;br /&gt;
	While 1&lt;br /&gt;
		$iMsg = GUIGetMsg()&lt;br /&gt;
		Select&lt;br /&gt;
			Case $iMsg = $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $iMsg = $idButton_Run&lt;br /&gt;
				Run(&amp;quot;Notepad.exe&amp;quot;) ; Will Run/Open Notepad&lt;br /&gt;
			Case $iMsg = $idButton_Test&lt;br /&gt;
				MsgBox($MB_SYSTEMMODAL, &amp;quot;Testing&amp;quot;, &amp;quot;Button 2 was pressed&amp;quot;) ; Will demonstrate Button 2 being pressed&lt;br /&gt;
		EndSelect&lt;br /&gt;
	WEnd&lt;br /&gt;
	GUIDelete($hGUI_MyApp)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multiple Examples ===&lt;br /&gt;
The helpfile now supports multiple examples per function. In order to maintain backwards compatibility with any other tools that use examples, the first file is still named &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;.au3&amp;lt;/code&amp;gt;, but any additional examples are named &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;[n].au3&amp;lt;/code&amp;gt; where n is an integer counter starting at 2.&lt;br /&gt;
&lt;br /&gt;
== Template UDF ==&lt;br /&gt;
Here is an example of a UDF called &amp;lt;code&amp;gt;MyUDF.au3&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; AU3Check settings&lt;br /&gt;
#AutoIt3Wrapper_Run_AU3Check=Y&lt;br /&gt;
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7&lt;br /&gt;
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=Y&lt;br /&gt;
#include-once&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;MyUDFConstants.au3&amp;quot;&lt;br /&gt;
#include &amp;quot;AnInclude.au3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; #INDEX# =======================================================================================================================&lt;br /&gt;
; Title .........: MyUDF&lt;br /&gt;
; AutoIt Version : 3.3.10.2&lt;br /&gt;
; Language ......: English&lt;br /&gt;
; Author(s) .....: &lt;br /&gt;
; Modifiers .....: &lt;br /&gt;
; Forum link ....: a link to the main forum topic (if aplicable)&lt;br /&gt;
; Description ...: An example UDF that does very little.&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #CURRENT# =====================================================================================================================&lt;br /&gt;
;$tagMYSTRUCT&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: $tagMYSTRUCT&lt;br /&gt;
; Description ...: An example of a structure.&lt;br /&gt;
; Fields ........: hFoo       - A handle to foo that does something.&lt;br /&gt;
;                  iBar       - An integer that does something.&lt;br /&gt;
; Author ........: Matt Diesel (Mat)&lt;br /&gt;
; Remarks .......:&lt;br /&gt;
; Related .......: _MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Global Const $tagMYSTRUCT = &amp;quot;ptr hFoo; int iBar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: _MyUDF_Function&lt;br /&gt;
; Description ...: A function that does something.&lt;br /&gt;
; Syntax.........: _MyUDF_Function(ByRef $avAnArray, $iAnInt[, $hAHandle = 0[, $nSomeNumber = 42]])&lt;br /&gt;
; Parameters ....: $avAnArray       - [byref] An array of anything. The value of anything is changed and passed out using this&lt;br /&gt;
;                                     parameter. The array should only have one dimension&lt;br /&gt;
;                  $iAnInt          - An integer that does very little.&lt;br /&gt;
;                  $hAHandle        - [optional] A handle. Default is zero.&lt;br /&gt;
;                  $nSomeNumber     - [optional] A number of some kind. Default is 42.&lt;br /&gt;
; Return values .: Success          - A MYSTRUCT structure.&lt;br /&gt;
;                  Failure          - Returns zero and sets the @error flag:&lt;br /&gt;
;                                   |1 - The $avAnArray is invalid.&lt;br /&gt;
; Author ........: Matt Diesel (Mat)&lt;br /&gt;
; Modified.......:&lt;br /&gt;
; Remarks .......:&lt;br /&gt;
; Related .......: $tagMYSTRUCT&lt;br /&gt;
; Link ..........:&lt;br /&gt;
; Example .......: No&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _MyUDF_Function(ByRef $avAnArray, $iAnInt, $hAHandle = 0, $nSomeNumber = 42)&lt;br /&gt;
	; 1 - Error Checking for parameters.&lt;br /&gt;
	If Not IsArray($avAnArray) Or UBound($avAnArray, 0) &amp;lt;&amp;gt; 1 Then Return SetError(1, 0, 0) ; The $avAnArray is invalid.&lt;br /&gt;
&lt;br /&gt;
	; 2 - Declaration of locals.&lt;br /&gt;
	Local $tMS = DllStructCreate($tagMYSTRUCT)&lt;br /&gt;
&lt;br /&gt;
	; 3 - Function code&lt;br /&gt;
	DllStructSetData($tMS, &amp;quot;hFoo&amp;quot;, $hAHandle)&lt;br /&gt;
	DllStructSetData($tMS, &amp;quot;iBar&amp;quot;, $iAnInt * $nSomeNumber)&lt;br /&gt;
&lt;br /&gt;
	Return $tMS&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyUDF_Function&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=UDF-spec&amp;diff=13832</id>
		<title>UDF-spec</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=UDF-spec&amp;diff=13832"/>
		<updated>2018-10-16T00:23:09Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: fixed Au3Check parameters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:UDF]]&lt;br /&gt;
{{WIP}}This page is still under construction.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A library is a collection of one or more User Defined Functions (UDFs). However, the term UDF is often used to describe the collection as a whole. If a UDF is to be considered for inclusion in the standard set distributed with AutoIt then it must meet all the criteria detailed here, but it&#039;s also good practice to always write in conformance with at least the majority of this document, as that is what will be expected by people reading your code later.&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
Firstly, the code itself should meet the following basic requirements:&lt;br /&gt;
&lt;br /&gt;
* Be tidied. Just hit &amp;lt;code&amp;gt;Ctrl+T&amp;lt;/code&amp;gt; from SciTE or run Tidy manually. The only flag needed is &amp;lt;code&amp;gt;/sf&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Pass Au3Check with no errors using the strictest settings: &amp;lt;code&amp;gt;-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7&amp;lt;/code&amp;gt;&lt;br /&gt;
* Support everything AutoIt supports. In some cases features may not be able to support everything, in which case this should be checked for and return errors appropriately. This applies to: windows OS versions (AutoIt has support for all OS&#039; from windows 2000), unicode and ansi strings, 64 and 32 bit machines.&lt;br /&gt;
* Not use any magic numbers. Ever. None. At all. No excuses.&lt;br /&gt;
&lt;br /&gt;
== UDF Outline ==&lt;br /&gt;
The library itself has a header that details important information such as the minimum OS and AutoIt versions, and what system dlls are required. There is also a number of other sections that are required that list what is present in the UDF.&lt;br /&gt;
&lt;br /&gt;
=== Includes ===&lt;br /&gt;
Since a UDF is designed to define functions, it should only be included once. As a result, the &amp;lt;code&amp;gt;#include-once&amp;lt;/code&amp;gt; directive should be used. This is typically the first line of the UDF, followed by the includes used by the UDF. Include statements should use the double quoted form, as the library is expected to work in the same directory as libraries it depends on. Non standard libraries can be used if necessary, but this should be documented and linked to so users can download it as well. It goes without saying that a UDF based on non-standard UDFs cannot itself become a standard.&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
The index follows the following template (taken from &amp;lt;code&amp;gt;WinAPI.au3&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INDEX# =======================================================================================================================&lt;br /&gt;
; Title .........: Windows API&lt;br /&gt;
; AutoIt Version : 3.2&lt;br /&gt;
; Description ...: Windows API calls that have been translated to AutoIt functions.&lt;br /&gt;
; Author(s) .....: Paul Campbell (PaulIA), gafrost, Siao, Zedna, arcker, Prog@ndy, PsaltyDS, Raik, jpm&lt;br /&gt;
; Dll ...........: kernel32.dll, user32.dll, gdi32.dll, comdlg32.dll, shell32.dll, ole32.dll, winspool.drv&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The only required element in the index header is &amp;lt;code&amp;gt;Title&amp;lt;/code&amp;gt;. All others are ignored by the processor, but should be included for reference, remember that you can add some custom fields like &amp;lt;code&amp;gt;Links&amp;lt;/code&amp;gt; too.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Dll&amp;lt;/code&amp;gt; field can remain empty in many cases where no dlls are called directly. This header must be defined.&lt;br /&gt;
&lt;br /&gt;
=== Other Sections ===&lt;br /&gt;
Other sections, in order of appearance, are as follows.&lt;br /&gt;
&lt;br /&gt;
==== Variables ====&lt;br /&gt;
All global variables needed to be declared in the UDF are defined in this section. They should follow the variable rules for globals. Individual variables do not need to be documented, as it is assumed they are for internal use only. Any globals designed to be accessible for the user should instead be wrapped by a function (or multiple functions if globals must be retrieved and set). The template for this section is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #VARIABLES# ===================================================================================================================&lt;br /&gt;
Global $__g_vMyGlobal = 0&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no globals are needed then this section may be ommitted. Please consider the use of global variables carefully, and read through the section on global variables.&lt;br /&gt;
&lt;br /&gt;
==== Constants ====&lt;br /&gt;
Any global constant values are defined in this section. This should be constants only designated for use within the library itself. Constants that may be needed by the user should be defined in a separate file, named &amp;lt;code&amp;gt;UDFConstants.au3&amp;lt;/code&amp;gt; where &amp;lt;code&amp;gt;UDF&amp;lt;/code&amp;gt; is the name of the parent file. For example &amp;lt;code&amp;gt;File.au3&amp;lt;/code&amp;gt; uses constants defined in &amp;lt;code&amp;gt;FileConstants.au3&amp;lt;/code&amp;gt;. The exception to that rule is control UDFs which miss out the prepended &#039;GUI&#039; when naming constant files, so &amp;lt;code&amp;gt;GUIButton.au3&amp;lt;/code&amp;gt; uses constants from &amp;lt;code&amp;gt;ButtonConstants.au3&amp;lt;/code&amp;gt;. The template for this section is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #CONSTANTS# ===================================================================================================================&lt;br /&gt;
Global Const $__MYUDFCONSTANT_FOOBAR = 42&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no constants are needed in this section, either because none are used or because they are stored in a separate file, then it may be ommitted. Please read the section on global constants for specific info on naming and definition of constants.&lt;br /&gt;
&lt;br /&gt;
==== Listing ====&lt;br /&gt;
This defines all functions and structures currently used in the library. It MUST be the second defined header item after [[#Index]]. It is a simple list with each function on a line where the functions and structures appear in the same order as they do in the code, which is alphabetical order and structures first. A simple way to generate this list is to create a small script that searches for function definitions and outputs them in the correct format, an example of which is [http://www.autoitscript.com/forum/topic/120820-function-name-lister/ here]. In addition there is a second section that lists functions and structures for internal use only, this does not need to appear if none are defined.&lt;br /&gt;
&lt;br /&gt;
The template for these sections are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #CURRENT# =====================================================================================================================&lt;br /&gt;
;$tagSTRUCT&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
;$tagINTERNALSTRUCT&lt;br /&gt;
;__MyUDF_InternalFunction&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This section still needs to be defined for files that only define constants. It should also be noted that there MUST NOT be a space between the &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; and the function/structure name.&lt;br /&gt;
&lt;br /&gt;
==== Undocumented Listing ====&lt;br /&gt;
There is a final kind of listing that lists functions for which no documentation exists, or they have been deprecated and are only included for backwards compatibility. These are listed in a section with the header &amp;lt;code&amp;gt;NO_DOC_FUNCTION&amp;lt;/code&amp;gt;. This is very rarely used, and is reserved only for functions that can be utilised by the user, or that would have been in the past, as opposed to those for internal use only.&lt;br /&gt;
&lt;br /&gt;
Template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #NO_DOC_FUNCTION# =============================================================================================================&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Renamed Functions ====&lt;br /&gt;
Although it should not be the case in new UDFs, many of the older ones (particularly to do with controls) have had script breaking name changes to functions. These are documented in the UDF to ensure updating old scripts is as easy as possible. The basic format for this is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #NO_DOC_FUNCTION# =============================================================================================================&lt;br /&gt;
;_MyUDF_OldFunction                        ; --&amp;gt; _MyUDF_NewFunction&lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The space padding is optional. This section is ignored as far as the docs are concerned, and is usually omitted.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== Naming ===&lt;br /&gt;
Function names must start with an underscore, and the first word is the library name. There is then usually another underscore before the rest of the function name. The library name should be consistent across all the functions in the library, and can be shortened if a logical abbreviation is available (e.g. &amp;lt;code&amp;gt;Window&amp;lt;/code&amp;gt; ==&amp;gt; &amp;lt;code&amp;gt;Win&amp;lt;/code&amp;gt;). Each word should be capitalized, but no underscores are placed in the rest of the name, for example &amp;lt;code&amp;gt;_WinAPI_GetWindowLong&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For control libraries, the first part of the function name is changed slightly. For example the UDF for listviews would use &amp;lt;code&amp;gt;_GUICtrlListview_*&amp;lt;/code&amp;gt;. When a function wraps a dll call, then the second part should closely resemble the function name as it appears in other languages. This also applies to functions acting as a wrapper to &amp;lt;code&amp;gt;SendMessage&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Functions are defined in alphabetical order by name, which is the same as using &amp;lt;code&amp;gt;Tidy&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;/sf&amp;lt;/code&amp;gt; flag set.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
Parameters should follow the variable naming scheme ([[#Naming_2|here]]). All parameters must be checked to ensure they are valid, and return unique and documented error codes if they are not. For functions involving a specific type of control, this includes checking the class name using &amp;lt;code&amp;gt;_WinAPI_IsClassName&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Parameters that are optional or byref should be documented as such, and the effect these have explicitly stated. For example a byref parameter should detail exactly what the expected output is as well as the input.&lt;br /&gt;
&lt;br /&gt;
=== Headers ===&lt;br /&gt;
All functions have a documentation header that describes the function. This uses the following template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: _WinAPI_GetMousePos&lt;br /&gt;
; Description ...: Returns the current mouse position&lt;br /&gt;
; Syntax.........: _WinAPI_GetMousePos([$bToClient = False[, $hWnd = 0]])&lt;br /&gt;
; Parameters ....: $bToClient   - If True, the coordinates will be converted to client coordinates&lt;br /&gt;
;                  $hWnd        - Window handle used to convert coordinates if $fToClient is True&lt;br /&gt;
; Return values .: Success      - $tagPOINT structure with current mouse position&lt;br /&gt;
;                  Failure      - 0&lt;br /&gt;
; Author ........: Paul Campbell (PaulIA)&lt;br /&gt;
; Modified.......:&lt;br /&gt;
; Remarks .......: This function takes into account the current MouseCoordMode setting when  obtaining  the  mouse  position.  It&lt;br /&gt;
;                  will also convert screen to client coordinates based on the parameters passed.&lt;br /&gt;
; Related .......: $tagPOINT, _WinAPI_GetMousePosX, _WinAPI_GetMousePosY&lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: Yes&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _WinAPI_GetMousePos($bToClient = False, $hWnd = 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The header is 129 characters wide, and any text within it should be wrapped to that length. For example the &amp;lt;code&amp;gt;Remarks&amp;lt;/code&amp;gt; in the above header has been extended to cover two lines. The exception to that rule is the &amp;lt;code&amp;gt;Syntax&amp;lt;/code&amp;gt; line, which should not be wrapped. Some of the parameters in the header are optional, in which case they should remain, but be left empty (for example the &amp;lt;code&amp;gt;Link&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Modified&amp;lt;/code&amp;gt; lines in the above header). In others, they are needed, but can be empty or not used such as &amp;lt;code&amp;gt;Parameters&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Return Values&amp;lt;/code&amp;gt;. In this case the value should be &#039;None&#039;, as they will still be present in the documentation.&lt;br /&gt;
&lt;br /&gt;
There are some flags that can be used within function headers: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; in column 20 is the continuation flag for the previous line (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;|&#039;&#039;&#039; in column 20 is a new line in the right side of the table when the help file is generated (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;-&#039;&#039;&#039; in column 20 will create new row in the table, used for things like Defaults for a style (used in Parameters, Return Values)&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; in column 2 of Remarks is a blank line&lt;br /&gt;
Name&lt;br /&gt;
:Specifies the name of the function. This will be identical to how it appeas in the Func statement in the code itself.&lt;br /&gt;
Description&lt;br /&gt;
:Gives a short summary of what the function does. This should only be a single line, as it is only designed to give a short impression of what is happening. For the standard set of includes distributed with AutoIt3, this value is also used in the SciTE calltips.&lt;br /&gt;
Syntax&lt;br /&gt;
:Describes the syntax of the function call. This differs slightly from what appears in the code itself for optional parameters, which are enclosed in square brackets (&amp;quot;[ ]&amp;quot;). Since subsequent parameters must also be optional, and cannot be defined unless all the previous ones have been given, these brackets are nested in the form: Function([param1[, param2[,param3]]]). Note that the opening bracket appears before the comma seperator.&lt;br /&gt;
Parameters&lt;br /&gt;
:This is a list of the arguments accepted by the function. Each is listed, followed by a dash (&amp;quot;-&amp;quot;) and a description of what it is. The dash can be padded for neatness, although the amount of padding depends on how long the parameter names are. If the parameter is optional then the meaning of the default value should be given, similarly if it&#039;s used to pass data back to the program in the form of byref then the changes made should also be detailed. For more information on parameters see Parameters.&lt;br /&gt;
Return values&lt;br /&gt;
:Details what is returned by the function. This often comes in the form of Success and Failure values, but this is not always the case. Any setting of the @error of @extended flags should be detailed, along with their meanings, in some cases it is enough to say that @error is set to non-zero in the event of an error, in most cases though a list of values for @error should be given.&lt;br /&gt;
Author&lt;br /&gt;
:This is the original writer of the function. It should contain the username, so that any queries about the code can be made through the forum, but you can give as much or little information as you feel appropriate.&lt;br /&gt;
Modified&lt;br /&gt;
:This is a list of modifications made. At it&#039;s most basic this is just a list of users who have made changes, but ideally it includes some information about what they did, in which cases it follows the same form as other multi-value lines, with the username and description of modifications seperated by a dash.&lt;br /&gt;
Remarks&lt;br /&gt;
:This is anything the user should know about a function in order to use it. For example exceptional cases and recommended ways to handle the function should all be detailed here, as well as additional info about possible reasons for failure and how to deal with them.&lt;br /&gt;
Related&lt;br /&gt;
:A comma seperated list of functions or structures related to the function.&lt;br /&gt;
Link&lt;br /&gt;
:A link to additional information about the function. For many system function wrappers, this will be &amp;lt;code&amp;gt;@@MsdnLink@@ FunctionName&amp;lt;/code&amp;gt;, which represents that the user should search MSDN for the function.&lt;br /&gt;
Example&lt;br /&gt;
:A simple yes or no value specifying whether the function has an example. If this is no then your UDF is not ready to be released. The [[#Examples]] section has more information on the format and location of examples.&lt;br /&gt;
&lt;br /&gt;
The easiest way to generate the header is to copy and paste the following blank template in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Syntax.........: &lt;br /&gt;
; Parameters ....: &lt;br /&gt;
; Return values .: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Modified.......: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are also a number of plugins for SciTE that will generate a header and maybe fill in certain known values for you such as Name, Syntax and Parameters. The most complete one that conforms to these standards is [http://code.google.com/p/m-a-t/wiki/UDFHeaderGenerator here], but there are two others [http://www.autoitscript.com/forum/topic/28270-lua-script-for-udf-header/ here] and [http://www.autoitscript.com/forum/topic/28270-lua-script-for-udf-header/page__view__findpost__p__200823 here].&lt;br /&gt;
&lt;br /&gt;
=== Internal use only ===&lt;br /&gt;
Functions can also be marked for use only within the library and not to be documented for use by the user. These are named according to the same rules as normal functions but begin with a double underscore (&amp;quot;__&amp;quot;). The header is exactly the same except with the first line replaced, to make the blank template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Syntax.........: &lt;br /&gt;
; Parameters ....: &lt;br /&gt;
; Return values .: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Modified.......: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; Link ..........: &lt;br /&gt;
; Example .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Structures ==&lt;br /&gt;
Structures are defined as global constants, and follow the naming pattern &amp;lt;code&amp;gt;$tagSTRUCTNAME&amp;lt;/code&amp;gt;. The struct name should be as it appears on MSDN if it&#039;s used in the windows API, or follow a similar pattern if not. It should go without saying that they must work for both 32 and 64 bit machines, including resolving any alignment issues. Elements should also be named as they appear on MSDN if they are taken from there, which includes the hungarian notation prefix. Although many standard UDFs do not follow that rule, importantly &amp;lt;code&amp;gt;StructureConstants.au3&amp;lt;/code&amp;gt;, the rule still stands.&lt;br /&gt;
&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Structures need a header similar to functions, but with some minor differences. The same rules apply in terms of wrapping and line length however. The header follow this standard template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: $tagPOINT&lt;br /&gt;
; Description ...: Defines the x and y coordinates of a point&lt;br /&gt;
; Fields ........: X - Specifies the x-coordinate of the point&lt;br /&gt;
;                  Y - Specifies the y-coordinate of the point&lt;br /&gt;
; Author ........: Paul Campbell (PaulIA)&lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Global Const $tagPOINT = &amp;quot;long X;long Y&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is essentially a shortened header, with the only thing new is the Fields line, which effectively replaces the Parameters field in terms of usage. All the same rules apply as listed [[#Function Header Fields|here]].&lt;br /&gt;
&lt;br /&gt;
The blank template is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Fields ........: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Structures may also be marked for internal use only. In this case the header ramains the same, but the sections first line changes. The blank template is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;; #INTERNAL_USE_ONLY# ===========================================================================================================&lt;br /&gt;
; Name...........: &lt;br /&gt;
; Description ...: &lt;br /&gt;
; Fields ........: &lt;br /&gt;
; Author ........: &lt;br /&gt;
; Remarks .......: &lt;br /&gt;
; Related .......: &lt;br /&gt;
; ===============================================================================================================================&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
For code readability, there are special rules dealing with variables, particularly naming. All variables should be declared at the beginning of their scope, which usually means at the start of the function in which they are used, but could mean the top of the UDF itself in the [[#Variables|Variables section]].&lt;br /&gt;
&lt;br /&gt;
=== Naming ===&lt;br /&gt;
A variable&#039;s first letter signifies the expected scope and type of the variable. See [[Best_coding_practices#Names_of_Variables|Names of Variables]]&lt;br /&gt;
&lt;br /&gt;
=== Globals ===&lt;br /&gt;
The use of globals in a UDF is generally frowned upon, and byref parameters and static variables should be used where possible instead. However, in cases where this is not possible and a global must be used they should be defined using the following naming pattern: &amp;lt;code&amp;gt;$__g_&amp;amp;lt;VARNAME&amp;amp;gt;&amp;lt;/code&amp;gt; where &amp;lt;code&amp;gt;&amp;amp;lt;VARNAME&amp;amp;gt;&amp;lt;/code&amp;gt; is the name as it would usually appear according to the variable naming rules above. This ensures there will never be a conflict with user variables of other UDF globals. They should be declared at the top of the UDF in the Variables section.&lt;br /&gt;
&lt;br /&gt;
Globals are always private. If they need to be accessed by the user then functions need to be written wrapping that operation and values should be checked. Notable exceptions are debug variables, which are designed for developer purposes and may be used by some users in extreme cases. These are named &amp;lt;code&amp;gt;$Debug_&amp;amp;lt;UDF&amp;amp;gt;&amp;lt;/code&amp;gt; although the &amp;lt;code&amp;gt;&amp;amp;lt;UDF&amp;amp;gt;&amp;lt;/code&amp;gt; part is often shortened so &amp;lt;code&amp;gt;GUIEdit.au3&amp;lt;/code&amp;gt; uses &amp;lt;code&amp;gt;$Debug_Ed&amp;lt;/code&amp;gt;. It is not required that a UDF has debugging symbols, but they are allowed to remain in releases.&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
There are two types of constants, internal and public. Public constants are designed to be utilised by the user, and are referenced in functions that use them. They include styles and flags. Internal constants are designed for use only within the library, so that values used fairly often can be held in one place to allow for easy updating. Both kinds of constant are always typed in all upper case. Constants taken from the windows API should appear exactly as they are defined there, but internal constants follow the naming pattern: &amp;lt;code&amp;gt;$__&amp;amp;lt;UDF&amp;amp;gt;CONSTANT_&amp;amp;lt;NAME&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;lt;code&amp;gt;Dim&amp;lt;/code&amp;gt; statement ===&lt;br /&gt;
Should not be used.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
All functions and structures that are made public to the user need to have a good quality example. This means that it should:&lt;br /&gt;
&lt;br /&gt;
* Be simple. Ideally the only functions used are basic functions like ConsoleWrite and MsgBox and the function that the example is written for. Writing a single example that covers a wide range of functions is not nearly as easy to use as writing an example per function that clearly demonstrates its use.&lt;br /&gt;
* Be readable. Everything should be explained step by step in comments.&lt;br /&gt;
* Be correct. In addition to passing the same Au3Check flags as the UDF itself (&amp;lt;code&amp;gt;-q -d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7&amp;lt;/code&amp;gt;) it should always be written with best practice being the main consideration. This takes preference over the first point, just because code is shorter and looks easier doesn&#039;t mean it&#039;s right.&lt;br /&gt;
* Examples should represent all the functionality. If there is more than one way of using a function then include more than one example of how to use it.&lt;br /&gt;
* Not make any permanent changes to the users computer. For example, if demonstrating a File function, be sure to delete the file after it has been used. The same applies for any function that makes a change to the environment: the changes MUST be undone.&lt;br /&gt;
&lt;br /&gt;
Always remember, the readability of code in an example is MORE important than the readability of code inside the UDF itself.&lt;br /&gt;
&lt;br /&gt;
Examples are stored in script files called &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;.au3&amp;lt;/code&amp;gt;. The files should be kept in a folder called &amp;lt;code&amp;gt;Examples&amp;lt;/code&amp;gt;. To remain correct all examples should be wrapped in functions, such that the only code executed in the global scope is calling the function. This is usually named &amp;lt;code&amp;gt;Example&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Constants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Opt(&amp;quot;MustDeclareVars&amp;quot;, 1)&lt;br /&gt;
&lt;br /&gt;
Example()&lt;br /&gt;
&lt;br /&gt;
Func Example()&lt;br /&gt;
	Local $idButton_Run, $idButton_Test, $iMsg, $hGUI_MyApp&lt;br /&gt;
	&lt;br /&gt;
	$hGUI_MyApp = GUICreate(&amp;quot;My GUI Button&amp;quot;) ; Will create a dialog box that when displayed is centered&lt;br /&gt;
&lt;br /&gt;
	$idButton_Run = GUICtrlCreateButton(&amp;quot;Run Notepad&amp;quot;, 4, 4, 80, 30)&lt;br /&gt;
	$idButton_Test = GUICtrlCreateButton(&amp;quot;Button Test&amp;quot;, 4, 38, 80, 30)&lt;br /&gt;
&lt;br /&gt;
	GUISetState() ; will display a dialog box with 2 button&lt;br /&gt;
&lt;br /&gt;
	; Run the GUI until the dialog is closed&lt;br /&gt;
	While 1&lt;br /&gt;
		$iMsg = GUIGetMsg()&lt;br /&gt;
		Select&lt;br /&gt;
			Case $iMsg = $GUI_EVENT_CLOSE&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Case $iMsg = $idButton_Run&lt;br /&gt;
				Run(&amp;quot;Notepad.exe&amp;quot;) ; Will Run/Open Notepad&lt;br /&gt;
			Case $iMsg = $idButton_Test&lt;br /&gt;
				MsgBox($MB_SYSTEMMODAL, &amp;quot;Testing&amp;quot;, &amp;quot;Button 2 was pressed&amp;quot;) ; Will demonstrate Button 2 being pressed&lt;br /&gt;
		EndSelect&lt;br /&gt;
	WEnd&lt;br /&gt;
	GUIDelete($hGUI_MyApp)&lt;br /&gt;
EndFunc   ;==&amp;gt;Example&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multiple Examples ===&lt;br /&gt;
The helpfile now supports multiple examples per function. In order to maintain backwards compatibility with any other tools that use examples, the first file is still named &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;.au3&amp;lt;/code&amp;gt;, but any additional examples are named &amp;lt;code&amp;gt;&amp;amp;lt;FUNCTION&amp;amp;gt;[n].au3&amp;lt;/code&amp;gt; where n is an integer counter starting at 2.&lt;br /&gt;
&lt;br /&gt;
== Template UDF ==&lt;br /&gt;
Here is an example of a UDF called &amp;lt;code&amp;gt;MyUDF.au3&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7&lt;br /&gt;
#include-once&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;MyUDFConstants.au3&amp;quot;&lt;br /&gt;
#include &amp;quot;AnInclude.au3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; #INDEX# =======================================================================================================================&lt;br /&gt;
; Title .........: MyUDF&lt;br /&gt;
; AutoIt Version : 3.3.10.2&lt;br /&gt;
; Language ......: English&lt;br /&gt;
; Author(s) .....: &lt;br /&gt;
; Modifiers .....: &lt;br /&gt;
; Forum link ....: a link to the main forum topic (if aplicable)&lt;br /&gt;
; Description ...: An example UDF that does very little.&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #CURRENT# =====================================================================================================================&lt;br /&gt;
;$tagMYSTRUCT&lt;br /&gt;
;_MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
; #STRUCTURE# ===================================================================================================================&lt;br /&gt;
; Name...........: $tagMYSTRUCT&lt;br /&gt;
; Description ...: An example of a structure.&lt;br /&gt;
; Fields ........: hFoo       - A handle to foo that does something.&lt;br /&gt;
;                  iBar       - An integer that does something.&lt;br /&gt;
; Author ........: Matt Diesel (Mat)&lt;br /&gt;
; Remarks .......:&lt;br /&gt;
; Related .......: _MyUDF_Function&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Global Const $tagMYSTRUCT = &amp;quot;ptr hFoo; int iBar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name...........: _MyUDF_Function&lt;br /&gt;
; Description ...: A function that does something.&lt;br /&gt;
; Syntax.........: _MyUDF_Function(ByRef $avAnArray, $iAnInt[, $hAHandle = 0[, $nSomeNumber = 42]])&lt;br /&gt;
; Parameters ....: $avAnArray       - [byref] An array of anything. The value of anything is changed and passed out using this&lt;br /&gt;
;                                     parameter. The array should only have one dimension&lt;br /&gt;
;                  $iAnInt          - An integer that does very little.&lt;br /&gt;
;                  $hAHandle        - [optional] A handle. Default is zero.&lt;br /&gt;
;                  $nSomeNumber     - [optional] A number of some kind. Default is 42.&lt;br /&gt;
; Return values .: Success          - A MYSTRUCT structure.&lt;br /&gt;
;                  Failure          - Returns zero and sets the @error flag:&lt;br /&gt;
;                                   |1 - The $avAnArray is invalid.&lt;br /&gt;
; Author ........: Matt Diesel (Mat)&lt;br /&gt;
; Modified.......:&lt;br /&gt;
; Remarks .......:&lt;br /&gt;
; Related .......: $tagMYSTRUCT&lt;br /&gt;
; Link ..........:&lt;br /&gt;
; Example .......: No&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _MyUDF_Function(ByRef $avAnArray, $iAnInt, $hAHandle = 0, $nSomeNumber = 42)&lt;br /&gt;
	; 1 - Error Checking for parameters.&lt;br /&gt;
	If Not IsArray($avAnArray) Or UBound($avAnArray, 0) &amp;lt;&amp;gt; 1 Then Return SetError(1, 0, 0) ; The $avAnArray is invalid.&lt;br /&gt;
&lt;br /&gt;
	; 2 - Declaration of locals.&lt;br /&gt;
	Local $tMS = DllStructCreate($tagMYSTRUCT)&lt;br /&gt;
&lt;br /&gt;
	; 3 - Function code&lt;br /&gt;
	DllStructSetData($tMS, &amp;quot;hFoo&amp;quot;, $hAHandle)&lt;br /&gt;
	DllStructSetData($tMS, &amp;quot;iBar&amp;quot;, $iAnInt * $nSomeNumber)&lt;br /&gt;
&lt;br /&gt;
	Return $tMS&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyUDF_Function&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Variables_-_using_Global,_Local,_Static_and_ByRef&amp;diff=13831</id>
		<title>Variables - using Global, Local, Static and ByRef</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Variables_-_using_Global,_Local,_Static_and_ByRef&amp;diff=13831"/>
		<updated>2018-10-16T00:10:28Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]]&lt;br /&gt;
These keywords confuse many coders - this tutorial should help make their use clear.&lt;br /&gt;
&lt;br /&gt;
In most programming languages you can define the scope of variables - this determines the visibility or accessibility of the variable from different parts of the program. &lt;br /&gt;
&lt;br /&gt;
In AutoIt there are two possible scopes: &#039;&#039;Global&#039;&#039; and &#039;&#039;Local&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
- A &#039;&#039;&#039;Global&#039;&#039;&#039; variable is visible throughout your script - any part of the script can both read its value and, importantly, change it.&lt;br /&gt;
&lt;br /&gt;
- A &#039;&#039;&#039;Local&#039;&#039;&#039; variable exists only within the function in which it is declared and is destroyed when the function terminates. It is invisible to any other function unless it is passed as a parameter.&lt;br /&gt;
&lt;br /&gt;
Additionally declaring a variable as &#039;&#039;&#039;Static&#039;&#039;&#039; changes its behaviour slightly. A &#039;&#039;Global Static&#039;&#039; variable serves no useful purpose as it is essentially the same as a normal &#039;&#039;Global&#039;&#039; variable. However, a &#039;&#039;Local Static&#039;&#039; variable exists only within the function in which it is declared, but is NOT destroyed when the function ends and can be reused when the function is next entered. You can assign an initial value to this variable when it is created - if it is already in existence then the assignment is ignored. Note that the order of the keywords is not important.&lt;br /&gt;
&lt;br /&gt;
Why do we need to scope variables? Well, it is often useful to have a single variable used throughout the script - perhaps the name of an Ini file which if declared as &#039;&#039;Global&#039;&#039; can then be read by any function that requires it. And &#039;&#039;Local&#039;&#039; variables allow us to save resources by only using variables as long as we need - for example if we create a large array which is only needed within a single function.&lt;br /&gt;
&lt;br /&gt;
We scope variables by using the &#039;&#039;Global, Local&#039;&#039; and &#039;&#039;Static&#039;&#039; keywords when the variables are first declared - look at the examples below. By default, AutoIt scopes any variables declared in the main body of a script (that is not between a &#039;&#039;Func&#039;&#039; and &#039;&#039;EndFunc&#039;&#039; pair) as &#039;&#039;Global&#039;&#039; and any variables declared within function declarations as &#039;&#039;Local&#039;&#039;. But it is a good idea to explicitly declare your variables to make sure that you get what you want. For example, you can declare a variable as &#039;&#039;Global&#039;&#039; within a function - although you may get a gentle reminder when you run your script within SciTE that this is not recommended. But there is no point declaring any variables in the main body of a script as &#039;&#039;Local&#039;&#039; - they will be &#039;&#039;Global&#039;&#039; regardless. If you use the &#039;&#039;AutoItSetOption(&amp;quot;MustDeclareVars&amp;quot;, 1)&#039;&#039; directive you &#039;&#039;must&#039;&#039; declare the scope of your variables or you will get error messages.&lt;br /&gt;
&lt;br /&gt;
In the Help file pages for &#039;&#039;Global, Local&#039;&#039; and &#039;&#039;Static&#039;&#039; you will also see mention of &#039;&#039;Dim&#039;&#039; and &#039;&#039;ReDim&#039;&#039;. Using &#039;&#039;Dim&#039;&#039; will declare a variable and satisfy the &#039;&#039;AutoItSetOption&#039;&#039; just mentioned, but will let AutoIt scope the variable using the default settings as described above. It is much better practice to use &#039;&#039;Global&#039;&#039; or &#039;&#039;Local&#039;&#039; to set the scope you require explicitly. Despite its similar name, &#039;&#039;ReDim&#039;&#039; is only used to resize arrays without destroying the content and is outside the scope of this tutorial.&lt;br /&gt;
&lt;br /&gt;
Let us now look at a simple example when we read and change &#039;&#039;Global&#039;&#039; variables in a function:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt; ; only required for MsgBox constants&lt;br /&gt;
&lt;br /&gt;
Global $Var_1 = &amp;quot;Variable 1&amp;quot;&lt;br /&gt;
Global $Var_2 = &amp;quot;Variable 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Read the variables&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;In The Main Script&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable 1 = &amp;quot; &amp;amp; $Var_1 &amp;amp; @CRLF &amp;amp; &amp;quot;Variable 2 = &amp;quot; &amp;amp; $Var_2)&lt;br /&gt;
&lt;br /&gt;
; Read the variables in a function&lt;br /&gt;
Function()&lt;br /&gt;
&lt;br /&gt;
; And now read the variables again - see that $iVar_2 has changed&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;Back In The Main Script&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable 1 = &amp;quot; &amp;amp; $Var_1 &amp;amp; @CRLF &amp;amp; &amp;quot;Variable 2 = &amp;quot; &amp;amp; $Var_2)&lt;br /&gt;
&lt;br /&gt;
Func Function()&lt;br /&gt;
	; Read the variables&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;In The Function&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable 1 = &amp;quot; &amp;amp; $Var_1 &amp;amp; @CRLF &amp;amp; &amp;quot;Variable 2 = &amp;quot; &amp;amp; $Var_2)&lt;br /&gt;
	; Now let us change one of the variables WITHIN the function&lt;br /&gt;
	$Var_2 = &amp;quot;Changed Variable 2&amp;quot;&lt;br /&gt;
EndFunc   ;==&amp;gt;Function&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Here is a simple example showing how &#039;&#039;Local&#039;&#039; variables are only visible &#039;&#039;inside&#039;&#039; their own function:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt; ; only required for MsgBox constants&lt;br /&gt;
&lt;br /&gt;
Global $Var_1 = &amp;quot;Variable 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Read the variable&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;In The Main Script&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable 1 = &amp;quot; &amp;amp; $Var_1)&lt;br /&gt;
&lt;br /&gt;
; Now run a function&lt;br /&gt;
Function()&lt;br /&gt;
&lt;br /&gt;
; And now try to read Variable 3 outside the function&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;Back In The Main Script&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable 1 = &amp;quot; &amp;amp; $Var_1 &amp;amp; @CRLF &amp;amp; &amp;quot;Variable 3 = &amp;quot; &amp;amp; $Var_3)&lt;br /&gt;
&lt;br /&gt;
Func Function()&lt;br /&gt;
	; Declare a Local variable&lt;br /&gt;
	Local $Var_3 = &amp;quot;Variable 3&amp;quot;&lt;br /&gt;
	; Read the variables&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;In The Function&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable 1 = &amp;quot; &amp;amp; $Var_1 &amp;amp; @CRLF &amp;amp; &amp;quot;Variable 3 = &amp;quot; &amp;amp; $Var_3)&lt;br /&gt;
EndFunc   ;==&amp;gt;Function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You should have got errors telling you that &#039;&#039;$Var3&#039;&#039; was &amp;quot;&#039;&#039;possibly used before declaration&#039;&#039;&amp;quot; and an &amp;quot;&#039;&#039;undeclared global variable&#039;&#039;&amp;quot;.  This is because &#039;&#039;$Var3&#039;&#039; exists only &#039;&#039;within&#039;&#039; the function - when the function ends it is destroyed.&lt;br /&gt;
&lt;br /&gt;
This means that we can use the same variable name in different functions without causing a problem - very useful for simple variables which are only used temporarily:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgConstants.au3&amp;gt; ; only required for MsgBox constants&lt;br /&gt;
&lt;br /&gt;
Function_1()&lt;br /&gt;
&lt;br /&gt;
Func Function_1()&lt;br /&gt;
	; Declare the variable in this function&lt;br /&gt;
	Local $sString = &amp;quot;Variable in Function One&amp;quot;&lt;br /&gt;
	; Read the value&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;In Function One&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable = &amp;quot; &amp;amp; $sString)&lt;br /&gt;
&lt;br /&gt;
	; Now run Function Two&lt;br /&gt;
	Function_2()&lt;br /&gt;
&lt;br /&gt;
	; Now read the variable again - we still get the variable from this function&lt;br /&gt;
	; The variable in Function 2 has been destroyed now the function has terminated&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;In Function One&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable = &amp;quot; &amp;amp; $sString)&lt;br /&gt;
EndFunc   ;==&amp;gt;Function_1&lt;br /&gt;
&lt;br /&gt;
Func Function_2()&lt;br /&gt;
	; Declare a variable with the same name&lt;br /&gt;
	Local $sString = &amp;quot;Variable in Function Two&amp;quot;&lt;br /&gt;
	; Read this variable - see how we get the value in this function, not the value in Function One&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;In Function Two&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable = &amp;quot; &amp;amp; $sString)&lt;br /&gt;
EndFunc   ;==&amp;gt;Function_2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
AutoIt even allows you to use the same name for &#039;&#039;Global&#039;&#039; and &#039;&#039;Local&#039;&#039; variables, although this is &#039;&#039;not&#039;&#039; recommended as it could easily lead to confusion.  If there is a naming conflict of this kind, AutoIt uses the &#039;&#039;Local&#039;&#039; value as you can see here:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt; ; only required for MsgBox constants&lt;br /&gt;
&lt;br /&gt;
; Declare the variable as Global&lt;br /&gt;
Global $sString = &amp;quot;Global Variable in the Main Script&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Read it&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;In the Main Script&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable = &amp;quot; &amp;amp; $sString)&lt;br /&gt;
&lt;br /&gt;
; Run the functions which declare Local variables with the same name&lt;br /&gt;
Function_1()&lt;br /&gt;
&lt;br /&gt;
; And now see that the Global variable still exists unchanged&lt;br /&gt;
MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;In the Main Script&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable = &amp;quot; &amp;amp; $sString)&lt;br /&gt;
&lt;br /&gt;
Func Function_1()&lt;br /&gt;
	; Declare a variable with the SAME name as Local to this function&lt;br /&gt;
	Local $sString = &amp;quot;Variable in Function One&amp;quot;&lt;br /&gt;
	; Read the value - we get the value of the Local variable in this function, not the Global one&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Reading&amp;quot;, &amp;quot;In Function One&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Variable = &amp;quot; &amp;amp; $sString)&lt;br /&gt;
EndFunc   ;==&amp;gt;Function_1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A good use for &#039;&#039;Static&#039;&#039; variables is when you need to maintain a record of a value within a function even though the function itself ends.  An example might be that you want to do something the first time a function is called, but not subsequently:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Foo()&lt;br /&gt;
Foo()&lt;br /&gt;
Foo()&lt;br /&gt;
&lt;br /&gt;
Func Foo()&lt;br /&gt;
	; Set the flag only on the first entry into the function&lt;br /&gt;
	; This assignment will be ignored on subsequent entries&lt;br /&gt;
	Local Static $bFoo_First_Pass = True&lt;br /&gt;
&lt;br /&gt;
	; Check the flag&lt;br /&gt;
	If $bFoo_First_Pass Then&lt;br /&gt;
		; Immediately clear the flag to prevent running on subsequent passes&lt;br /&gt;
		$bFoo_First_Pass = False&lt;br /&gt;
		; Run on first pass because flag is set&lt;br /&gt;
		ConsoleWrite(&amp;quot;First pass&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
	Else&lt;br /&gt;
		; Flag remains cleared for subsequent passes&lt;br /&gt;
		ConsoleWrite(&amp;quot;Not first pass&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;Foo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
As the &#039;&#039;Local&#039;&#039; part of their declaration implies, you can use the same name for &#039;&#039;Static&#039;&#039; variables in different functions - even though they are not destroyed when the functions end:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
For $i = 1 To 5&lt;br /&gt;
	Function_1()&lt;br /&gt;
	Function_2()&lt;br /&gt;
Next&lt;br /&gt;
&lt;br /&gt;
Func Function_1()&lt;br /&gt;
	; Declare the variable as Static - remember this only happens once&lt;br /&gt;
	Local Static $vVar = 0&lt;br /&gt;
	; Increase the value of the variable each time we enter the function&lt;br /&gt;
	$vVar += 10&lt;br /&gt;
	; And show that it has retained its value as the function exits&lt;br /&gt;
	ConsoleWrite(&amp;quot;In Function_1: &amp;quot; &amp;amp; $vVar &amp;amp; @CRLF)&lt;br /&gt;
EndFunc   ;==&amp;gt;Function_1&lt;br /&gt;
&lt;br /&gt;
Func Function_2()&lt;br /&gt;
	; Use the same variable name&lt;br /&gt;
	Local Static $vVar = 0&lt;br /&gt;
	$vVar += 100&lt;br /&gt;
	ConsoleWrite(&amp;quot;In Function_2: &amp;quot; &amp;amp; $vVar &amp;amp; @CRLF)&lt;br /&gt;
EndFunc   ;==&amp;gt;Function_2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
As a general rule, try to have as few &#039;&#039;Global&#039;&#039; variables as you can.  Remember that you can share &#039;&#039;Local&#039;&#039; variables between functions - and even change their values - by passing them as parameters as we will see in the &#039;&#039;ByRef&#039;&#039; section below.  And declaring a variable as &#039;&#039;Static&#039;&#039; allows you retain its value even though the function in which it is used has ended.&lt;br /&gt;
&lt;br /&gt;
=Passing variables as parameters using ByRef=&lt;br /&gt;
When you call a function in AutoIt, you can pass parameters to the function by including them in the parentheses following the function name like this - &#039;&#039;Function(Parameter_1, Parameter_2)&#039;&#039;.  Passing variables in this way means that you can use variables that have been declared as &#039;&#039;Local&#039;&#039; within other functions. Note that the parameters are automatically declared as &#039;&#039;Local&#039;&#039; variables within the called function and so do not need to be declared again in the code.&lt;br /&gt;
&lt;br /&gt;
Variables can be passed as parameters to a function in 2 ways:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Value&#039;&#039;&#039; - This is the default. The parameter is treated as a &#039;&#039;Local&#039;&#039; variable within the function to which it is passed and any changes made to it are lost when the function ends. So no changes are made to the &#039;&#039;Local&#039;&#039; variable within the original function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Reference&#039;&#039;&#039; - This is used when &#039;&#039;ByRef&#039;&#039; is added &#039;&#039;before&#039;&#039; the variable name in the parameter list of the function declaration. Now any changes to the variable made in the function to which it is passed also affect the &#039;&#039;Local&#039;&#039; variable in the original function.  If you do not understand why this is such a powerful capability, you need to read the &#039;&#039;Global/Local&#039;&#039; section again!&lt;br /&gt;
&lt;br /&gt;
Here is a small example to show how parameters are passed when calling a function:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt; ; only required for MsgBox constants&lt;br /&gt;
&lt;br /&gt;
Func_A()&lt;br /&gt;
&lt;br /&gt;
Func Func_A()&lt;br /&gt;
	; Declare variables&lt;br /&gt;
	Local $iVar_A1 = 10&lt;br /&gt;
	Local $iVar_A2 = 20&lt;br /&gt;
	; And read them&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Read&amp;quot;, &amp;quot;Initial read in Func A:&amp;quot; &amp;amp; @CRLF &amp;amp; &amp;quot;Var A1 = &amp;quot; &amp;amp; $iVar_A1 &amp;amp; @CRLF &amp;amp; &amp;quot;Var A2 = &amp;quot; &amp;amp; $iVar_A2)&lt;br /&gt;
&lt;br /&gt;
	; Now pass these variables to another function - we use the names we have already declared in this function&lt;br /&gt;
	Func_B($iVar_A1, $iVar_A2)&lt;br /&gt;
&lt;br /&gt;
	; We changed the parameters in Func_B - but nothing happened to the variables in this function&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Read&amp;quot;, &amp;quot;Second read in Func A:&amp;quot; &amp;amp; @CRLF &amp;amp; &amp;quot;Var A1 = &amp;quot; &amp;amp; $iVar_A1 &amp;amp; @CRLF &amp;amp; &amp;quot;Var A2 = &amp;quot; &amp;amp; $iVar_A2)&lt;br /&gt;
EndFunc   ;==&amp;gt;Func_A&lt;br /&gt;
&lt;br /&gt;
Func Func_B($iVar_B1, $iVar_B2) ; There is no need to declare the variables as parameters are automatically Local in scope&lt;br /&gt;
	; Now read these variables - note that they have the same value as the variables in Func_A&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Read&amp;quot;, &amp;quot;Initial read in Func B:&amp;quot; &amp;amp; @CRLF &amp;amp; &amp;quot;Var B1 = &amp;quot; &amp;amp; $iVar_B1 &amp;amp; @CRLF &amp;amp; &amp;quot;Var B2 = &amp;quot; &amp;amp; $iVar_B2)&lt;br /&gt;
&lt;br /&gt;
	; Let us change them&lt;br /&gt;
	$iVar_B1 = 100&lt;br /&gt;
	$iVar_B2 = 200&lt;br /&gt;
&lt;br /&gt;
	; And confirm that they have changed&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Read&amp;quot;, &amp;quot;Second read in Func B:&amp;quot; &amp;amp; @CRLF &amp;amp; &amp;quot;Var B1 = &amp;quot; &amp;amp; $iVar_B1 &amp;amp; @CRLF &amp;amp; &amp;quot;Var B2 = &amp;quot; &amp;amp; $iVar_B2)&lt;br /&gt;
&lt;br /&gt;
	; Now return to the other function&lt;br /&gt;
EndFunc   ;==&amp;gt;Func_B&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
As you can see, the &#039;&#039;Local&#039;&#039; variables within &#039;&#039;Func_A&#039;&#039; are read perfectly by &#039;&#039;Func_B&#039;&#039; when passed as parameters, even though they were declared as &#039;&#039;Local&#039;&#039; in &#039;&#039;Func_A&#039;&#039;.  However, although &#039;&#039;Func_B&#039;&#039; changes the value of the variables, the values of the original variables within &#039;&#039;Func_A&#039;&#039; are not changed.&lt;br /&gt;
&lt;br /&gt;
If we want to change the value of the variables in &#039;&#039;Func_A&#039;&#039; from within &#039;&#039;Func_B&#039;&#039;, we need to use the &#039;&#039;ByRef&#039;&#039; keyword as explained above and illustrated here:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt; ; only required for MsgBox constants&lt;br /&gt;
&lt;br /&gt;
Func_A()&lt;br /&gt;
&lt;br /&gt;
Func Func_A()&lt;br /&gt;
	; Declare variables&lt;br /&gt;
	Local $iVar_A1 = 10&lt;br /&gt;
	Local $iVar_A2 = 20&lt;br /&gt;
&lt;br /&gt;
	; And read them&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Read&amp;quot;, &amp;quot;Initial read in Func A:&amp;quot; &amp;amp; @CRLF &amp;amp; &amp;quot;Var A1 = &amp;quot; &amp;amp; $iVar_A1 &amp;amp; @CRLF &amp;amp; &amp;quot;Var A2 = &amp;quot; &amp;amp; $iVar_A2)&lt;br /&gt;
&lt;br /&gt;
	; Now pass these variables to another function - but this time we will pass $iVar_A2 By Reference&lt;br /&gt;
	Func_B($iVar_A1, $iVar_A2)&lt;br /&gt;
&lt;br /&gt;
	; We changed the parameters in Func_B - this time we see that we have changed $iVar_A2&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Read&amp;quot;, &amp;quot;Second read in Func A:&amp;quot; &amp;amp; @CRLF &amp;amp; &amp;quot;Var A1 = &amp;quot; &amp;amp; $iVar_A1 &amp;amp; @CRLF &amp;amp; &amp;quot;Var A2 = &amp;quot; &amp;amp; $iVar_A2)&lt;br /&gt;
EndFunc   ;==&amp;gt;Func_A&lt;br /&gt;
&lt;br /&gt;
Func Func_B($iVar_B1, ByRef $iVar_B2) ; Note the ByRef keyword in the function declaration for the second parameter&lt;br /&gt;
	; Now read these variables - they have the same value as the variables in Func_A&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Read&amp;quot;, &amp;quot;Initial read in Func B:&amp;quot; &amp;amp; @CRLF &amp;amp; &amp;quot;Var B1 = &amp;quot; &amp;amp; $iVar_B1 &amp;amp; @CRLF &amp;amp; &amp;quot;Var B2 = &amp;quot; &amp;amp; $iVar_B2)&lt;br /&gt;
&lt;br /&gt;
	; Let us change them&lt;br /&gt;
	$iVar_B1 = 100&lt;br /&gt;
	$iVar_B2 = 200&lt;br /&gt;
&lt;br /&gt;
	; And confirm that they have changed&lt;br /&gt;
	MsgBox($MB_SYSTEMMODAL, &amp;quot;Read&amp;quot;, &amp;quot;Second read in Func B:&amp;quot; &amp;amp; @CRLF &amp;amp; &amp;quot;Var B1 = &amp;quot; &amp;amp; $iVar_B1 &amp;amp; @CRLF &amp;amp; &amp;quot;Var B2 = &amp;quot; &amp;amp; $iVar_B2)&lt;br /&gt;
&lt;br /&gt;
	; Now return to the other function&lt;br /&gt;
EndFunc   ;==&amp;gt;Func_B&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A couple of more advanced points:&lt;br /&gt;
&lt;br /&gt;
- It was mentioned earlier that when you pass variables to functions AutoIt makes local copies of these variables unless you declare that they are to be passed &#039;&#039;ByRef&#039;&#039;.  In the special case of arrays, which are typically larger than a simple variable, AutoIt will only make a local copy if you change the array inside the function - merely accessing the array will use the original version.  So passing the array &#039;&#039;ByRef&#039;&#039; is only advantageous if you intend to modify the array within the function - however, it does no harm to force the issue by using the keyword.&lt;br /&gt;
&lt;br /&gt;
- If you are dealing with a simple variable of considerable size (the text of a file for example) then passing it &#039;&#039;ByRef&#039;&#039; is a sensible action.  But if you want to make sure that the variable cannot be altered inside the function, you can declare it as &#039;&#039;Const ByRef&#039;&#039; in the function definition as shown here:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Local $sString = &amp;quot;A very large chunk of data which we do not want to change&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Foo($sString)&lt;br /&gt;
&lt;br /&gt;
Func Foo(Const ByRef $sText) ; The data is not copied, but also cannot be changed&lt;br /&gt;
	; Uncomment this line to see what happens when we try&lt;br /&gt;
	;$sText = &amp;quot;New value&amp;quot;&lt;br /&gt;
EndFunc   ;==&amp;gt;Foo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ByRef&#039;&#039; is a very powerful feature - but use it carefully, or you may find that you have changed a variable when you did not want to!&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13830</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=13830"/>
		<updated>2018-10-15T22:30:46Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* How can I debug my script? */   === Other UDF to log/trace/script analyze ===&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of frequently asked questions asked on the forums.&lt;br /&gt;
&lt;br /&gt;
Other FAQs include:&lt;br /&gt;
* The one found in the [http://www.autoitscript.com/autoit3/docs/faq.htm AutoIt HelpFile].  Much of it is about the transition from V2 to V3, but most is still relevant and should be a port of call, as well as this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I debug my script?==&lt;br /&gt;
&lt;br /&gt;
=== In SciTE ===&lt;br /&gt;
This one has a myriad of answers, but the most effective is to begin by using the [http://www.autoitscript.com/autoit3/scite/ SciTE4AutoIt3 Editor] to create or edit scripts. This program is useful in debugging for the following reasons:&lt;br /&gt;
&lt;br /&gt;
* Syntax highlighting allows for immediate viewing of any mistakes from unended script tags or quotes. This allows the scripter to visibly see the difference between the following portions of code.&lt;br /&gt;
[[File:FAQ_Q1_2.jpg|center|Incorrect code]]&lt;br /&gt;
And the correct version: &lt;br /&gt;
[[File:FAQ_Q1_3.jpg|center||Correct Code]]&lt;br /&gt;
* Global syntax check built directly into the tools menu allows you to check an entire script for problems all at once.&lt;br /&gt;
* Built-in code tidying program that correctly indents untidy code and repairs messy scripts to allow them to be more readable. It also corrects problems with incorrectly capitalised function names and variables.&lt;br /&gt;
* Per-line trace insertion allows you to log every line of code executed to debug errors.&lt;br /&gt;
* Debug MsgBoxes or ConsoleWrites are able to be added anywhere in the script directly from SciTE. ConsoleWrite lines are less intrusive and prevent the added annoyance to the user of MsgBoxes.&lt;br /&gt;
&lt;br /&gt;
You can also use AutoIt3Wrapper directive:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#AutoIt3Wrapper_Run_Debug_Mode=Y&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FAQ_Q1_4.jpg|center|Picture of SciTE4AutoIt3]]&lt;br /&gt;
&lt;br /&gt;
=== Using more code to check @error value ===&lt;br /&gt;
Nearly all functions will return something.  Most of the time when a function fails, it returns 0 and sets @error.  You can use this information not only to create scripts that handle for different errors but to debug and find out exactly why you are having problems.  Check the help file for specific functions and their return values.&lt;br /&gt;
&lt;br /&gt;
=== Via the Tray icon===&lt;br /&gt;
You can add this line at the top of your script (1 is on, 0 is off) to enable debugging from the tray icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;AutoItSetOption (&amp;quot;TrayIconDebug&amp;quot;, 1);0-off&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then if you run the script (uncompiled as an AU3 file), you can mouse over the AutoIt icon in the system tray (down by the clock) to display debugging information.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_1.jpg|center|Example output for TrayIconDebug]]&lt;br /&gt;
&lt;br /&gt;
=== OutputDebugString native call ===&lt;br /&gt;
You can also debug a script on any computer by adding the following code to your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _MyDebug($sMessage, $iError = @error, $iExtended = @extended)&lt;br /&gt;
	If $iError Or $iExtended Then&lt;br /&gt;
		$sMessage &amp;amp;= &#039;[ @error = &#039; &amp;amp; $iError &amp;amp; &#039; @extended = &#039; &amp;amp; $iExtended &amp;amp; &#039; ]&#039;&lt;br /&gt;
	EndIf&lt;br /&gt;
	DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;OutputDebugString&amp;quot;, &amp;quot;str&amp;quot;, $sMessage)&lt;br /&gt;
	Return SetError($iError, $iExtended, &#039;&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_MyDebug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then, when you need to add a debug line, call it as necessary. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;_MyDebug(&amp;quot;The value of Variable 1 at this time is &amp;quot; &amp;amp; $var1)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This debugging is completely transparent to the user, and is only viewable with a program such as DebugView from SysInternals. This method of debugging has the added advantage of being available to the developer in situations where is not acceptable or feasable to install SciTE on a client&#039;s unit.&lt;br /&gt;
&lt;br /&gt;
=== Graphical debugger ===&lt;br /&gt;
Stumpii created a [http://www.autoitscript.com/forum/index.php?showtopic=21834 Graphical AutoIt Debugger], similar to Dev-C++&#039;s debugging style.&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q1_5.jpg|center|Stumpii&#039;s Graphical AutoIt Debugger]]&lt;br /&gt;
&lt;br /&gt;
=== Another debugger for AutoIt ===&lt;br /&gt;
Heron created a [http://www.autoitscript.com/forum/index.php?showtopic=103142 Another debugger for AutoIt].&lt;br /&gt;
&lt;br /&gt;
The latest version by asdf8 is here:&lt;br /&gt;
https://www.autoitscript.com/forum/topic/103142-another-debugger-for-autoit/?do=findComment&amp;amp;comment=1303208&lt;br /&gt;
&lt;br /&gt;
=== Other UDF to log/trace/script analyze ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - Logs program activities and errors to different output locations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
==How can I run something that is not an exe file [.txt, .msi, .pdf,.jpg etc.] [or] How can I open a webpage in the default browser?==&lt;br /&gt;
It was for this reason that the ShellExecute function was created. Here is one example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;edit&amp;quot;, @SW_MAXIMIZE)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also specify a web address this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;http://www.autoitscript.com/forum&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;open&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you normally are able to right-click the file and select print, then you can also print the file from AutoIt using this function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\boot.ini&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;print&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to open the file with the default program, you can do as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;ShellExecute(&amp;quot;C:\autoitscripts\test.au3&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish your script to wait until the process is finished, you can use the ShellExecuteWait function with the same parameters.&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The default verb is the verb configured in the registry. If no verb is set as default in the registry then the &amp;quot;open&amp;quot; verb is used. If the &amp;quot;open&amp;quot; verb is not present then the first verb listed in the registry is used.&lt;br /&gt;
&lt;br /&gt;
==How can I prevent more than one copy of my script from running at once, or detect another copy of my script running?==&lt;br /&gt;
&lt;br /&gt;
=== _Singleton function ===&lt;br /&gt;
There are a few different ways to go about this. You can use a function called _Singleton to detect multiple instances of your script. An example of how to use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
_Singleton(&amp;quot;TheNameOfMyScript&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this instance, the script will bring up some messages explaining to the user of the occurring events. &lt;br /&gt;
This example will show you how the above function can be used in a real world application.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _Singleton(&amp;quot;MyScriptName&amp;quot;, 1) = 0 Then&lt;br /&gt;
    ; If successful, running our script a second time should cause us to fall through here&lt;br /&gt;
    MsgBox($MB_ICONERROR, &amp;quot;User Generated Error Message&amp;quot;, &amp;quot;Error: This script is already running!&amp;quot;)&lt;br /&gt;
Else&lt;br /&gt;
    ; We have detected that we are the only instance running, now we will run a second instance to display _Singleton&#039;s function!&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We are the first instance of this script, press OK to run another instance and trigger the error message!&amp;quot;)&lt;br /&gt;
    Switch @Compiled&lt;br /&gt;
        Case 1&lt;br /&gt;
            Run(FileGetShortName(@ScriptFullPath));when running an app, it&#039;s usually better to use its short name&lt;br /&gt;
        Case 0&lt;br /&gt;
            Run(FileGetShortName(@AutoItExe) &amp;amp; &#039; /AutoIt3ExecuteScript &#039; &amp;amp; FileGetShortName(@ScriptFullPath))&lt;br /&gt;
    EndSwitch&lt;br /&gt;
    Sleep(1000)&lt;br /&gt;
    MsgBox($MB_ICONINFORMATION, &amp;quot;Information!&amp;quot;, &amp;quot;We ran a second instance, you should have recieved an error message!&amp;quot;, 5)&lt;br /&gt;
EndIf&lt;br /&gt;
Exit&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===_MutexExists function ===&lt;br /&gt;
Another method is to use _MutexExists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If _MutexExists(&amp;quot;MydeswswScriptName&amp;quot;) Then&lt;br /&gt;
	; We know the script is already running. Let the user know.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;Script Name&amp;quot;, &amp;quot;This script is already running. Using multiple copies of this script at the same time is unsupported!&amp;quot;)&lt;br /&gt;
	Exit&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
;Function Author- Martin&lt;br /&gt;
Func _MutexExists($sOccurenceName)&lt;br /&gt;
	Local $ERROR_ALREADY_EXISTS = 183, $handle, $lastError&lt;br /&gt;
	$sOccurenceName = StringReplace($sOccurenceName, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;); to avoid error&lt;br /&gt;
	$handle = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;CreateMutex&amp;quot;, &amp;quot;int&amp;quot;, 0, &amp;quot;long&amp;quot;, 1, &amp;quot;str&amp;quot;, $sOccurenceName)&lt;br /&gt;
	$lastError = DllCall(&amp;quot;kernel32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetLastError&amp;quot;)&lt;br /&gt;
	Return $lastError[0] = $ERROR_ALREADY_EXISTS&lt;br /&gt;
EndFunc;==&amp;gt;_MutexExists&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I run my script as a service?==&lt;br /&gt;
This is also a question with multiple answers, and none of them are the only way to do it. The first question to ask yourself is whether or not you wish to install the service on other computers besides your own.&lt;br /&gt;
&lt;br /&gt;
=== On your own computer - One time only ===&lt;br /&gt;
The easiest way to do this is to use Pirmasoft RunAsSvc. This program makes services easy to install and easy to remove when necessary.&lt;br /&gt;
&lt;br /&gt;
=== On all computers that run your script===&lt;br /&gt;
To do this you can use SRVANY.EXE and [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3]. You can then use this code to install your script as a service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_CreateService(&amp;quot;&amp;quot;, $servicename, &amp;quot;My AutoIt Script&amp;quot;, &amp;quot;C:\Path_to_\srvany.exe&amp;quot;, &amp;quot;LocalSystem&amp;quot;, &amp;quot;&amp;quot;, 0x110)&lt;br /&gt;
RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\&amp;quot; &amp;amp; $servicename &amp;amp; &amp;quot;\Parameters&amp;quot;, &amp;quot;Application&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the following code to delete this service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;ServiceControl.au3&amp;quot;&lt;br /&gt;
$servicename = &amp;quot;MyServiceName&amp;quot;&lt;br /&gt;
_DeleteService(&amp;quot;&amp;quot;, $servicename)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is one caveat to setting up AutoIt as a service. If the service is not installed using the above code, it must have the &amp;quot;allow service to interact with the desktop&amp;quot; setting or else automation functions such as Control* or Win* functions will not function. To assure the service does indeed have this setting, use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SYSTEM\CurrentControlSet\Services\[ServiceName]&amp;quot;, &amp;quot;Type&amp;quot;, &amp;quot;REG_DWORD&amp;quot;, 0x110)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I create/start/stop or otherwise control a service?==&lt;br /&gt;
There are two include libraries that are designed specifically to interact with services. These are the following:&lt;br /&gt;
&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 ServiceControl.au3] made by SumTingWong. Functionality:&lt;br /&gt;
** _StartService()&lt;br /&gt;
** _StopService()&lt;br /&gt;
** _ServiceExists()&lt;br /&gt;
** _ServiceRunning()&lt;br /&gt;
** _CreateService()&lt;br /&gt;
** _DeleteService()&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22165 _NTServices.au3] made by CatchFish. Functionality:&lt;br /&gt;
** _ServiceStart()&lt;br /&gt;
** _ServiceStop()&lt;br /&gt;
** _ServiceStatus()&lt;br /&gt;
** _ServicePause()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I display a progress bar while copying files or directories?==&lt;br /&gt;
There are a many different topics on how to do this.  For more, just search the forums for [http://www.autoitscript.com/forum/index.php?act=Search&amp;amp;CODE=show&amp;amp;searchid=22030d4d4effe5e32da23fdb69ed772f&amp;amp;search_in=posts&amp;amp;result_type=topics&amp;amp;highlite=%2BCopy%2B Progress Copy + Progress].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11313 Copy with progress dialog]... By ezztabi&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=11888 Yet another copy with progress]... By SumTingWong&lt;br /&gt;
* [http://www.autoit.de/index.php?page=Thread&amp;amp;postID=58875 _MultiFileCopy]... By Oscar (German Forums)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19370&amp;amp;st=45&amp;amp;p=186198&amp;amp;#entry186198 _FileCopy]... By Jos&lt;br /&gt;
&lt;br /&gt;
[[File:FAQ_Q6_1.jpg|center|Copy progress dialog by ezztabi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make a hotkey that only works in my GUI?==&lt;br /&gt;
It used to be quite tedious setting hotkeys to only work in your GUI.  Now there is an easier way with the function GUISetAccelerators.&lt;br /&gt;
&lt;br /&gt;
(From Helpfile example)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; A simple custom messagebox that uses the MessageLoop mode&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GUICreate(&amp;quot;Custom Msgbox&amp;quot;, 210, 80)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Please click a button!&amp;quot;, 10, 10)&lt;br /&gt;
$YesID = GUICtrlCreateButton(&amp;quot;Yes&amp;quot;, 10, 50, 50, 20)&lt;br /&gt;
$NoID = GUICtrlCreateButton(&amp;quot;No&amp;quot;, 80, 50, 50, 20)&lt;br /&gt;
$ExitID = GUICtrlCreateButton(&amp;quot;Exit&amp;quot;, 150, 50, 50, 20)&lt;br /&gt;
&lt;br /&gt;
; Set accelerators for Ctrl+y and Ctrl+n&lt;br /&gt;
Dim $AccelKeys[2][2]=[[&amp;quot;^y&amp;quot;, $YesID], [&amp;quot;^n&amp;quot;, $NoID]]&lt;br /&gt;
GUISetAccelerators($AccelKeys)&lt;br /&gt;
&lt;br /&gt;
GUISetState(); display the GUI&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
	$msg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case $msg = $YesID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		Case $msg = $NoID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;No&amp;quot;)&lt;br /&gt;
		Case $msg = $ExitID&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Exit&amp;quot;)&lt;br /&gt;
		Case $msg = $GUI_EVENT_CLOSE&lt;br /&gt;
			MsgBox($MB_OK, &amp;quot;You clicked on&amp;quot;, &amp;quot;Close&amp;quot;)&lt;br /&gt;
	EndSelect&lt;br /&gt;
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I perform an action while a key is held down?==&lt;br /&gt;
You can use the _IsPressed() function to determine when a key is held down. The values that can be specified in this function are listed in the AutoIt Help File under User Defined Functions -&amp;gt; Misc Management -&amp;gt; _IsPressed. The following example will press the left mouse button while the k key is held down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
$pressed = 0&lt;br /&gt;
While 1&lt;br /&gt;
	If _IsPressed(&amp;quot;4B&amp;quot;) Then&lt;br /&gt;
		If Not $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;K Key being held down&amp;quot;)&lt;br /&gt;
			MouseDown(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 1&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		If $pressed Then&lt;br /&gt;
			ToolTip(&amp;quot;&amp;quot;)&lt;br /&gt;
			MouseUp(&amp;quot;left&amp;quot;)&lt;br /&gt;
			$pressed = 0&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(250)&lt;br /&gt;
WEnd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I run my script on a remote computer over the network?==&lt;br /&gt;
The answer to this question depends on how much experience you have in networking. If the target system is a Windows system to which you have administrator access then you may use one of the following programs:&lt;br /&gt;
&lt;br /&gt;
* PsExec from SysInternals&lt;br /&gt;
* BeyondExec from BeyondLogic&lt;br /&gt;
&lt;br /&gt;
With either of these programs it is possible to launch any process on a remote system and even copy your script to the target computer before starting it. Neither these programs nor any others will work with Windows XP Home Edition unless you create a custom &amp;quot;command listener&amp;quot; that you manually install on the target system.&lt;br /&gt;
&lt;br /&gt;
NOTE: Those of you with more advanced programming skills and a little imagination can figure out how to use the service control libraries and srvany.exe to do this same thing without either of the above mentioned programs.&lt;br /&gt;
&lt;br /&gt;
==How can I make a User Defined Function with optional parameters like the ones I see in the Help File?==&lt;br /&gt;
You can specify optional parameters by giving them a default value in the Func declaration. An example of how this is done:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Func testme($param1, $param2 = &amp;quot;nothing&amp;quot;, $param3 = 5)&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;&amp;quot;, &amp;quot;Parameter one is required. The value of Parameter 1 is &amp;quot; &amp;amp; $param1 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 2 is optional. The value of Parameter 2 is &amp;quot; &amp;amp; $param2 &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Parameter 3 is optional. The value of Parameter 3 is &amp;quot; &amp;amp; $param3)&lt;br /&gt;
EndFunc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If testme() is called with only one parameter [I.E. testme(&amp;quot;test&amp;quot;)] then the output is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is nothing&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
However, if the function is called with more than one parameter like this testme(&amp;quot;test&amp;quot;, &amp;quot;something&amp;quot;), then the output is&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Parameter one is required. The value of Parameter 1 is test&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 2 is optional. The value of Parameter 2 is something&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter 3 is optional. The value of Parameter 3 is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I make my script start every time windows starts?==&lt;br /&gt;
You can use one of the following codes to allow your script to start with Windows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;RegWrite(&amp;quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&amp;quot;, &amp;quot;MyProgramName&amp;quot;, &amp;quot;REG_SZ&amp;quot;, @ScriptFullPath)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;FileCreateShortcut(@ScriptFullPath, @StartupCommonDir &amp;amp; &amp;quot;\MyProgramName.lnk&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or place a Shortcut in the Startup folder, or the entire Executable.  For Win8+ systems, use the Win+R keys to open a Run box, then &amp;quot;Shell:Startup&amp;quot; to access the Startup folder. Due to Windows User Account Control (UAC) restrictions, your script may require [https://www.autoitscript.com/autoit3/docs/keywords/RequireAdmin.htm #RequireAdmin].&lt;br /&gt;
&lt;br /&gt;
==How can I have the script delete itself?==&lt;br /&gt;
The following function will delete the running script or .exe once it has finished execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: Make a copy of your script before calling this function!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func _SelfDelete($iDelay = 0)&lt;br /&gt;
	Local $sCmdFile&lt;br /&gt;
	FileDelete(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;)&lt;br /&gt;
	$sCmdFile = &#039;ping -n &#039; &amp;amp; $iDelay &amp;amp; &#039; 127.0.0.1 &amp;gt; nul&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;:loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot;&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;if exist &amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; goto loop&#039; &amp;amp; @CRLF _&lt;br /&gt;
			 &amp;amp; &#039;del %0&#039;&lt;br /&gt;
	FileWrite(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, $sCmdFile)&lt;br /&gt;
	Run(@TempDir &amp;amp; &amp;quot;\scratch.bat&amp;quot;, @TempDir, @SW_HIDE)&lt;br /&gt;
EndFunc;==&amp;gt;_SelfDelete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I create a clickable website hyperlink in my gui?==&lt;br /&gt;
[[File:FAQ_Q13_1.jpg|center|Example GUI using Gary&#039;s UDF.]]&lt;br /&gt;
&lt;br /&gt;
Gary Frost has made great advances in this area and has provided a [http://www.autoitscript.com/forum/index.php?showtopic=23111&amp;amp;st=0 UDF here] (&#039;&#039;&#039;the UDF was removed from the post&#039;&#039;&#039;) to help with doing this.&lt;br /&gt;
&lt;br /&gt;
==How can I change the screen resolution / refresh rate / color depth?==&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=20121 ChangeResolution.au3] is a library function created to make changes to these settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I get the screen resolution in multiple monitor setups?==&lt;br /&gt;
The following code was worked out by Larry to determine the total screen resolution of multiple monitors:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$aTSR = _GetTotalScreenResolution()&lt;br /&gt;
MsgBox($MB_OK, &amp;quot;Total Screen Resolution&amp;quot;, &amp;quot;Width = &amp;quot; &amp;amp; $aTSR[0] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Height = &amp;quot; &amp;amp; $aTSR[1])&lt;br /&gt;
&lt;br /&gt;
;Original code by Larry.&lt;br /&gt;
;Edited by BrettF&lt;br /&gt;
Func _GetTotalScreenResolution()&lt;br /&gt;
	Local $aRet[2]&lt;br /&gt;
	Global Const $SM_VIRTUALWIDTH = 78&lt;br /&gt;
	Global Const $SM_VIRTUALHEIGHT = 79&lt;br /&gt;
	$VirtualDesktopWidth = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALWIDTH)&lt;br /&gt;
	$aRet[0] = $VirtualDesktopWidth[0]&lt;br /&gt;
	$VirtualDesktopHeight = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALHEIGHT)&lt;br /&gt;
	$aRet[1] = $VirtualDesktopHeight[0]&lt;br /&gt;
	Return $aRet&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  How can I register a file type with my program [or] How can I make files with a certain extension open in my program?==&lt;br /&gt;
[[File:FAQ_Q16_1.jpg|center|Example of how a file type can be registered.]]&lt;br /&gt;
File registration can be a tricky business for those who have not done it before. The first thing to be done is to modify your script to allow it to accept files from the command line. Here is one example of how to do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;$cmdline[0] is the number of parameters passed&lt;br /&gt;
If $cmdline[0] &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
	$filename = $cmdline[1]&lt;br /&gt;
;Do something with the file here&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;The file name passed to the command line is &amp;quot;&#039; &amp;amp; $filename &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
Else&lt;br /&gt;
; We did not get any command line parameters.&lt;br /&gt;
; If this is a command line only program, you would want to&lt;br /&gt;
; alert the user that the command line parameters were incorrect.&lt;br /&gt;
; If this is a GUI program (like a notepad program), you would&lt;br /&gt;
; want to simply continue from here without opening a file.&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;UXYFixer&amp;quot;, &#039;Command line parameters incorrect.&#039; &amp;amp; @CRLF &amp;amp; &#039;Command line usage: &amp;quot;&#039; &amp;amp; @ScriptName &amp;amp; &#039;&amp;quot; &amp;quot;file to process&amp;quot;&#039;)&lt;br /&gt;
 EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After your script is ready to accept files, you can begin to register the file type you need with your program. To prevent errors, this-is-me has created a UDF that will allow you to do this easily:&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to register and unregister a file extension using this UDF:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;quot;FileRegister.au3&amp;quot;&lt;br /&gt;
;================================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileRegister($ext, $cmd, $verb [, $def [, $icon = &amp;quot;&amp;quot; [, $desc = &amp;quot;&amp;quot; ]]])&lt;br /&gt;
;			   Registers a file type in Explorer&lt;br /&gt;
;&lt;br /&gt;
; Parameter(s): $ext -  File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;		$cmd -  Program path with arguments eg. &#039;&amp;quot;C:\test\testprog.exe&amp;quot; &amp;quot;%1&amp;quot;&#039;&lt;br /&gt;
;			 (%1 is 1st argument, %2 is 2nd, etc.)&lt;br /&gt;
;		$verb - Name of action to perform on file&lt;br /&gt;
;			 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;		$def -  Action is the default action for this filetype&lt;br /&gt;
;			 (1 for true 0 for false)&lt;br /&gt;
;			 If the file is not already associated, this will be the default.&lt;br /&gt;
;		$icon - Default icon for filetype including resource # if needed&lt;br /&gt;
;			 eg. &amp;quot;C:\test\testprog.exe,0&amp;quot; or &amp;quot;C:\test\filetype.ico&amp;quot;&lt;br /&gt;
;		$desc - File Description eg. &amp;quot;Zip File&amp;quot; or &amp;quot;ProgramName Document&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;================================================&lt;br /&gt;
&lt;br /&gt;
 FileRegister(&amp;quot;uxy&amp;quot;, &#039;&amp;quot;&#039; &amp;amp; @ScriptFullPath &amp;amp; &#039;&amp;quot; &amp;quot;%1&amp;quot;&#039;, &amp;quot;Open in UXYFixer&amp;quot;, 1, @ScriptFullPath &amp;amp; &#039;,0&#039;, &amp;quot;UXYFixer Document&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;========================================&lt;br /&gt;
;&lt;br /&gt;
; Description:	FileUnRegister($ext, $verb)&lt;br /&gt;
;			   UnRegisters a verb for a file type in Explorer&lt;br /&gt;
; Parameter(s):  $ext - File Extension without period eg. &amp;quot;zip&amp;quot;&lt;br /&gt;
;			   $verb - Name of file action to remove&lt;br /&gt;
;					 eg. &amp;quot;Open with ProgramName&amp;quot; or &amp;quot;Extract Files&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
;========================================&lt;br /&gt;
&lt;br /&gt;
 FileUnRegister(&amp;quot;uxy&amp;quot;, &amp;quot;Open in UXYFixer&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download here:&#039;&#039;&#039;&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=26378 FileRegister.au3]&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my combobox (GUICtrlCreateCombo) show a dropdown list when clicked?==&lt;br /&gt;
When using GUICtrlCreateCombo be sure to enter the desired height for your combobox list in the &amp;quot;height&amp;quot; parameter. Windows XP automatically selects an appropriate height for combo boxes, but other versions of Windows usually do not.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,20)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Would correctly be changed to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;$combo = GUICtrlCreateCombo(&amp;quot;&amp;quot;,10,10,200,200)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why isn&#039;t my thread getting any replies?==&lt;br /&gt;
&lt;br /&gt;
=== Asking the right question right ===&lt;br /&gt;
Did you give a good description of the problem? If your title or explanation of the issue is not descriptive, users are likely to bypass your issue instead of helping. Post titles such as &amp;quot;Help Me&amp;quot;, &amp;quot;I Have A Problem&amp;quot;, &amp;quot;Question&amp;quot;, &amp;quot;Help me fix my code&amp;quot;, &amp;quot;This code doesn&#039;t work&amp;quot; or similarly worded titles will not readily draw forum users to your post. Experienced users (which are your best hope of resolving the issue) will often skip your post altogether in cases like this. An example of a post title descriptive enough to attract users to assist you is &amp;quot;Problem with WinWaitClose&amp;quot; or &amp;quot;Loop never ends&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Example for reproduction ===&lt;br /&gt;
Did you post example code? If you have not posted an example of the code you are having an issue with, then you will not recieve support. When posting a non-working script, please do so in the smallest amount of stand-alone code possible. If the code you post cannot run by itself on another person&#039;s computer, they will not be able to recreate the issue.&lt;br /&gt;
&lt;br /&gt;
=== Information about Environment ===&lt;br /&gt;
Did you provide any information about your AutoIt Development Environment ? &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Misc.au3&amp;gt;&lt;br /&gt;
; Version: 1.00. AutoIt: V3.3.8.1&lt;br /&gt;
; Retrieve the recommended information of the current system when posting a support question.&lt;br /&gt;
Local $sSystemInfo = &#039;I have a valid AutoIt support question and kindly provided the details of my system:&#039; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;AutoIt Version: V&#039; &amp;amp; @AutoItVersion &amp;amp; &#039; [&#039; &amp;amp; (@AutoItX64 ?&#039;X64&#039;:&#039;X32&#039;) &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Windows Version: &#039; &amp;amp; @OSVersion &amp;amp; &#039; [&#039; &amp;amp; @OSArch &amp;amp; &#039;]&#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
          &#039;Language: &#039; &amp;amp; _GetOSLanguage() &amp;amp; &#039; (&#039; &amp;amp; @OSLang &amp;amp; &#039;)&#039; &amp;amp; @CRLF &amp;amp; @CRLF&lt;br /&gt;
ClipPut($sSystemInfo)&lt;br /&gt;
MsgBox(4096, &#039;This info has been copied to the clipboard. Use Ctrl + V to retrieve it.&#039;, $sSystemInfo)&lt;br /&gt;
&lt;br /&gt;
Func _GetOSLanguage()&lt;br /&gt;
     Local $aString[20] = [19, &amp;quot;0409 0809 0C09 1009 1409 1809 1C09 2009 2409 2809 2C09 3009 3409&amp;quot;, &amp;quot;0404 0804 0C04 1004 0406&amp;quot;, &amp;quot;0406&amp;quot;, &amp;quot;0413 0813&amp;quot;, &amp;quot;0425&amp;quot;, _&lt;br /&gt;
               &amp;quot;040B&amp;quot;, &amp;quot;040C 080C 0C0C 100C 140C 180C&amp;quot;, &amp;quot;0407 0807 0C07 1007 1407&amp;quot;, &amp;quot;040E&amp;quot;, &amp;quot;0410 0810&amp;quot;, _&lt;br /&gt;
               &amp;quot;0411&amp;quot;, &amp;quot;0414 0814&amp;quot;, &amp;quot;0415&amp;quot;, &amp;quot;0416 0816&amp;quot;, &amp;quot;0418&amp;quot;, _&lt;br /&gt;
               &amp;quot;0419&amp;quot;, &amp;quot;081A 0C1A&amp;quot;, &amp;quot;040A 080A 0C0A 100A 140A 180A 1C0A 200A 240A 280A 2C0A 300A 340A 380A 3C0A 400A 440A 480A 4C0A 500A&amp;quot;, &amp;quot;041D 081D&amp;quot;]&lt;br /&gt;
     Local $aLanguage[20] = [19, &amp;quot;English&amp;quot;, &amp;quot;Chinese&amp;quot;, &amp;quot;Danish&amp;quot;, &amp;quot;Dutch&amp;quot;, &amp;quot;Estonian&amp;quot;, &amp;quot;Finnish&amp;quot;, &amp;quot;French&amp;quot;, &amp;quot;German&amp;quot;, &amp;quot;Hungarian&amp;quot;, &amp;quot;Italian&amp;quot;, _&lt;br /&gt;
               &amp;quot;Japanese&amp;quot;, &amp;quot;Norwegian&amp;quot;, &amp;quot;Polish&amp;quot;, &amp;quot;Portuguese&amp;quot;, &amp;quot;Romanian&amp;quot;, &amp;quot;Russian&amp;quot;, &amp;quot;Serbian&amp;quot;, &amp;quot;Spanish&amp;quot;, &amp;quot;Swedish&amp;quot;]&lt;br /&gt;
     For $i = 1 To $aString[0]&lt;br /&gt;
          If StringInStr($aString[$i], @OSLang) Then&lt;br /&gt;
               Return $aLanguage[$i]&lt;br /&gt;
          EndIf&lt;br /&gt;
     Next&lt;br /&gt;
     Return $aLanguage[1]&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetOSLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Speak English and speak it right ===&lt;br /&gt;
Did you use proper English? Here are guidelines for posting properly in the English language:&lt;br /&gt;
* Use proper case.  THIS IS CONSIDERED YELLING. If you post in ALL UPPERCASE or all lowercase then you will not be taken seriously.&lt;br /&gt;
* Use proper punctuation. Complete sentences need only one trailing punctuation mark. Twelve exclamation points after every sentence &amp;lt;b&amp;gt;will not&amp;lt;/b&amp;gt; get you an answer more quickly (just the opposite) Writing a sentence without simple punctuation such as commas reflects badly on your attention to detail, and is considered a good judge of the poster&#039;s coding style. If you cannot summon the intellect to write a sentence with correct punctuation, you will most likely miss simple coding mistakes such as unterminated quotes.&lt;br /&gt;
&lt;br /&gt;
=== Breaking forum rules, law, modesty, or common sense ===&lt;br /&gt;
Show common sense by following the forum rules, http://www.autoitscript.com/forum/topic/169097-forum-rules/, as well as generally accepted forum etiquette. Repeated failure to do so will result in sanctions by the Moderation team as it ruins the experience for everyone.&lt;br /&gt;
&lt;br /&gt;
==Why does the Ctrl key get stuck down after I run my script?==&lt;br /&gt;
&lt;br /&gt;
=== Keys virtually stuck ===&lt;br /&gt;
It could equally be the Shift or the Alt key.&lt;br /&gt;
&lt;br /&gt;
If you use Send in a script and you have a problem with keys being stuck down then Send is the most likely culprit. A similar problem can occur with BlockInput. The solution is generally quite simple. If there is a key like Shift or Alt held down at the start of the Send sequence, but that key is released by the time the Send sequence finishes then the key will get &#039;stuck&#039; down. As an example of a solution, you could replace the Send function in your script with the _SendEx function below.&lt;br /&gt;
&lt;br /&gt;
The _SendEx function waits for the Shift, Alt and Ctrl keys to be released or pops up a warning if the $warn parameter is not an empty string. Therefore it is not intended to be used when one of these modifier keys has been set to be down using any combination of {ALTDOWN}, {SHIFTDOWN} and {ALTDOWN}.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt; Misc.au3 &amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
;Send the string $ss after the Shift Alt and Ctrl keys are released. Optionally give a warning after 1 sec if any of those keys are still down.&lt;br /&gt;
;Requires misc.au3 to be included in the script for the _IsPressed function.&lt;br /&gt;
&lt;br /&gt;
Func _SendEx($ss, $warn = &amp;quot;&amp;quot;)&lt;br /&gt;
	Local $iT = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	While _IsPressed(&amp;quot;10&amp;quot;) Or _IsPressed(&amp;quot;11&amp;quot;) Or _IsPressed(&amp;quot;12&amp;quot;)&lt;br /&gt;
		If $warn &amp;lt;&amp;gt; &amp;quot;&amp;quot; And TimerDiff($iT) &amp;gt; 1000 Then&lt;br /&gt;
			MsgBox($MB_TOPMOST, &amp;quot;Warning&amp;quot;, $warn)&lt;br /&gt;
		EndIf&lt;br /&gt;
		Sleep(50)&lt;br /&gt;
	WEnd&lt;br /&gt;
	Send($ss)&lt;br /&gt;
EndFunc;==&amp;gt;_SendEx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General unstuck method ===&lt;br /&gt;
Shilbiz also discovered that the following can &#039;clear&#039; locked down keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt; ControlSend(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;text&amp;quot;, 0)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use Pixel functions?==&lt;br /&gt;
&lt;br /&gt;
=== Using a color change as an event ===&lt;br /&gt;
The following is an example of using the pixel to check if the colour has changed in a specific region.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $PixelCheck = 0, $NewCheck&lt;br /&gt;
$PixelCheck = PixelCheckSum(40, 50, 60, 70); Get the checksum for this area.&lt;br /&gt;
While 1; Keep going&lt;br /&gt;
	$NewCheck = PixelCheckSum(40, 50, 60, 70)&lt;br /&gt;
	If $PixelCheck &amp;lt;&amp;gt; $NewCheck Then&lt;br /&gt;
		; The old pixel checksum and the new one are different.&lt;br /&gt;
		$PixelCheck = $NewCheck; Update the $PixelCheck to the new value&lt;br /&gt;
		; Let us know it has changed.  Change this to what you want to happen when the colour in the region changes.&lt;br /&gt;
		Msgbox($MB_ICONWARNING,&amp;quot;PixelChecksum&amp;quot;,&amp;quot;Pixel region has changed !&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
	Sleep(50); Just to give the CPU a bit of a break.&lt;br /&gt;
Wend&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Searching for a specific pixel color ===&lt;br /&gt;
This is an example of searching for a specific pixel (red), both pure red (0xFF0000) and red in a few different shades.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
; Find a pure red pixel in the range 0,0-20,300&lt;br /&gt;
&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Find a pure red pixel or a red pixel within 10 shades variations of pure red&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox($MB_OK, &amp;quot;X and Y are:&amp;quot;, $coord[0] &amp;amp; &amp;quot;,&amp;quot; &amp;amp; $coord[1])&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t my script work on a locked workstation?==&lt;br /&gt;
On a locked station any window will never be active (active is only dialog with text &amp;quot;Press Ctrl+Alt+Del&amp;quot;).  In Windows locked state applications run hidden (behind that visible dialog) and do not have focus and active status.  So generally don&#039;t use Send() MouseClick() WinActivate() WinWaitActive() WinActive() etc.  Instead use ControlSend() ControlSetText() ControlClick() WinWait() WinExists() WinMenuSelectItem() etc.  Doing so allows you to interact with an application regardless of whether it is active or not. It&#039;s possible to run such a script from scheduler on locked Windows stations.&lt;br /&gt;
&lt;br /&gt;
==Where can I learn AutoIt? Are there any tutorials?==&lt;br /&gt;
AutoIt is a constantly growing and evolving language with a diverse and engaged community of volunteers. This wiki, along with the official forum, will always be your best place for answers to questions as well as examples and tutorials. With this in mind, below are a few resources that can also help you as you become familiar with the language:&lt;br /&gt;
&lt;br /&gt;
AutoIt 1-2-3, an interactive classroom by Valuater:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=21048 http://www.autoitscript.com/forum/index.php?showtopic=21048]&lt;br /&gt;
&lt;br /&gt;
BrettF&#039;s updated AutoIt tutorial:&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=84960 http://www.autoitscript.com/forum/index.php?showtopic=84960]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Learn To Program Using FREE Tools with AutoIt&amp;quot; PDF Book by Jfish&lt;br /&gt;
[https://www.autoitscript.com/forum/files/file/351-learn-to-program-using-free-tools-with-autoit/ Learn To Program Using FREE Tools with AutoIt]&lt;br /&gt;
&lt;br /&gt;
YouTube has a number of videos available:&lt;br /&gt;
[http://www.youtube.com/results?search_query=autoit+tutorial&amp;amp;search_type=&amp;amp;aq=0&amp;amp;oq=AutoIt YouTube AutoIt tutorials list]&lt;br /&gt;
&lt;br /&gt;
As always, when asking questions about a video or script you saw on an external source, please ensure you are adhering to the [[FAQ#Breaking_forum_rules.2C_law.2C_modesty.2C_or_common_Sense|forum rules]].&lt;br /&gt;
&lt;br /&gt;
==Why does my script no longer decompile?==&lt;br /&gt;
Decompilation is no longer supported, and is only available for the older versions of AutoIt (Version 3.2.5.1 and earlier compiled scripts).&lt;br /&gt;
&lt;br /&gt;
Please &#039;&#039;&#039;do not&#039;&#039;&#039; post on this topic; see the [[Decompiling FAQ]] for more information. Topics discussing decompilation of scripts will be locked immediately. Posting the source of a decompiled script with lead to immediate sanctions from the Moderation team, as it directly violates AutoIt EULA (End-User-License-Agreement).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt;You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.&amp;lt;/i&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How can I get a window handle when all I have is a PID?==&lt;br /&gt;
Refer to the following example showing converting and use when manipulating the window. The function is based on work by Smoke_N/Hubertus and Helge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Run process&lt;br /&gt;
$iPID = Run(&amp;quot;Notepad.exe&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;Allow window to initialize...&lt;br /&gt;
Sleep (500)&lt;br /&gt;
&lt;br /&gt;
;Get HWND.&lt;br /&gt;
$hWnd = _GetHwndFromPID($iPID)&lt;br /&gt;
&lt;br /&gt;
;Maximize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MAXIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Minimize&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_MINIMIZE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Restore window&lt;br /&gt;
WinSetState($hWnd, &amp;quot;&amp;quot;, @SW_RESTORE)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Move top left corner of screen, and resize to 800x600&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, 0, 0, 800, 600)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Calculate Center of screen.&lt;br /&gt;
$x = (@DesktopWidth / 2) - 400; Desktop width divided by 2, then minus half the width of the window&lt;br /&gt;
$y = (@DesktopHeight / 2) - 300; Desktop height divided by 2, then minus half the height of the window&lt;br /&gt;
&lt;br /&gt;
;Move to center of screen&lt;br /&gt;
WinMove($hWnd, &amp;quot;&amp;quot;, $x, $y)&lt;br /&gt;
&lt;br /&gt;
;Wait 2 seconds&lt;br /&gt;
Sleep(2000)&lt;br /&gt;
&lt;br /&gt;
;Close notepad&lt;br /&gt;
WinClose($hWnd)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Function for getting HWND from PID&lt;br /&gt;
Func _GetHwndFromPID($PID)&lt;br /&gt;
	$hWnd = 0&lt;br /&gt;
	$winlist = WinList()&lt;br /&gt;
	Do&lt;br /&gt;
		For $i = 1 To $winlist[0][0]&lt;br /&gt;
			If $winlist[$i][0] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$iPID2 = WinGetProcess($winlist[$i][1])&lt;br /&gt;
				If $iPID2 = $PID Then&lt;br /&gt;
					$hWnd = $winlist[$i][1]&lt;br /&gt;
					ExitLoop&lt;br /&gt;
				EndIf&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
	Until $hWnd &amp;lt;&amp;gt; 0&lt;br /&gt;
	Return $hWnd&lt;br /&gt;
EndFunc;==&amp;gt;_GetHwndFromPID&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I use single or double quotes in strings?==&lt;br /&gt;
It is a fairly simple concept once you get the basics down.  Basically there are a few different ways to go about mixing quotes in strings.&lt;br /&gt;
&lt;br /&gt;
A string in AutoIt can be encased in either single(&#039;) or double (&amp;quot;) quotes.  So if you want to add only one type of quote into your string, your first port of call is to use the other type of quote to encase the string.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &amp;quot;I am a &#039;quote&#039; inside the string&amp;quot;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&lt;br /&gt;
$var = &#039;I wish I could be a &amp;quot;quote&amp;quot; inside the string!&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have to have both types of quotes in the string, the easiest way is to escape the quote ending the string as so to speak.  To do this, use two quotes instead of one.  Like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$var = &#039;I am a single &#039;&#039;quote&#039;&#039; inside the string made using &amp;quot;single quote!&amp;quot;&#039;&lt;br /&gt;
MsgBox ($MB_OK, &amp;quot;Test 1&amp;quot;, $var)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==When should I bump my threads?==&lt;br /&gt;
As a courtesy to other users you should only bump your post once in a 24 hour period.  Doing this allows all users the chance to get helped equally.  Also refer to [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;view=findpost&amp;amp;p=688050 Why isn&#039;t my thread getting any replies?], as this will help you get replies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How can I protect my code from decompilation?==&lt;br /&gt;
The fact of the matter is &#039;&#039;&#039;you can&#039;t fully protect your code&#039;&#039;&#039;.  AutoIt is an  interpreted language, so all scripts are interpreted, and that script has to get stored somewhere.  There is still hope though.  You can take certain measures to make the decompiled code less usable to the person that decompiled it.  The first step is to obfuscate your code.  This causes the code to become less readable.  Basically variables and functions are renamed, making it very hard to make head or tail of what is what.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Decompiling FAQ]] for more information.&lt;br /&gt;
&lt;br /&gt;
==How can I decompile my AutoIt EXEs?==&lt;br /&gt;
You cannot decompile your AutoIt compiled scripts unless it was compiled with AutoIt 3.2.5.1 or earlier.&lt;br /&gt;
&lt;br /&gt;
In order to be able to recover your script from the compiled executable, you can use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;;Original Author SmokeN&lt;br /&gt;
If $CMDLINE[0] Then&lt;br /&gt;
	If $CMDLINE[1] == &amp;quot;/SOURCE&amp;quot; AND $CMDLINE[2] == &amp;quot;MYPASSWORD&amp;quot; Then&lt;br /&gt;
		FileInstall(&amp;quot;ThisSCript.au3&amp;quot;, @ScriptDir &amp;amp; &amp;quot;\DecompiledScript.au3&amp;quot;)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndIf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then if you run the compiled script with the following command line parameters your source will be extracted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;myscript.exe /SOURCE MYPASSWORD&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What is proper forum etiquette?  What rules are there for the forum?==&lt;br /&gt;
Proper forum etiquette will ensure you will stay a member of these forums.  So try to follow these rules.  Also see this [http://www.autoitscript.com/forum/index.php?showtopic=95704&amp;amp;st=15&amp;amp;p=688050&amp;amp;#entry688050 FAQ post], as you should follow what is outlined there as well.&lt;br /&gt;
&lt;br /&gt;
* Use proper English.  MSN speak and the like makes it very hard to understand what you want.  Keep posts in proper case because UPPERCASE is considered yelling and lowercase makes you look stupid.  Don&#039;t use more punctuation marks than necessary. For example ?!!!? and ????? is completely unnecessary.&lt;br /&gt;
* Before posting help with a script, make sure you follow these steps:&lt;br /&gt;
*# Search for your issue.&lt;br /&gt;
*#* There are many thousands of posts on this forum, and chances are your question has been asked before.  Make sure to use a variety of terms to maximize your results.&lt;br /&gt;
*# Read the helpfile&lt;br /&gt;
*#* Most if not all things in the help file will have an example (native functions) or two.  Give them a go to try see how the functions work.  Most of the time it helps!&lt;br /&gt;
*# Give it a go&lt;br /&gt;
*#* Seriously, if you can&#039;t be bothered to give it a go, then why should we be bothered to help you?  If you feel you can&#039;t do it and you don&#039;t try then how will you ever know?  We always prefer that you give it a go because you can learn from your mistakes and hopefully understand it better.&lt;br /&gt;
*# Post your problem&lt;br /&gt;
*#* Make sure you post in the correct forum.&lt;br /&gt;
*#** &amp;lt;b&amp;gt;AutoIt Specific&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/2-autoit-general-help-and-support/ General Help and Support] (Most support questions)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/10-autoit-gui-help-and-support/ GUI Support] (Support for the Graphical User Interface)&lt;br /&gt;
*#*** [https://www.autoitscript.com/forum/forum/14-autoitx-help-and-support/ AutoItX Support] (Support for the COM, DLL, PowerShell and .NET add-ons for AutoIt)&lt;br /&gt;
*#** &amp;lt;b&amp;gt;Non-AutoIt&amp;lt;/b&amp;gt;&lt;br /&gt;
*#*** Chat&lt;br /&gt;
*#*** Developer Chat&lt;br /&gt;
*#* Include a detailed description in the content of the post, and a detailed title&lt;br /&gt;
*#** Titles such as &#039;Help&#039; and &#039;What&#039;s wrong?&#039; are not acceptable.  To get the most help with your problem, be as descriptive as you can in the title, but keep in mind your title cannot be too long.&lt;br /&gt;
*#** Make sure you also include a descriptive question.  Just saying &#039;what is wrong with the following&#039; is also not acceptable, as we will have no idea what the problem is.  Describe what you think is wrong and what is not working.  It makes our job easier.&lt;br /&gt;
*#* Always include your code&lt;br /&gt;
*#** It shows us that you have tried and gives us a head start with something to play with.&lt;br /&gt;
* Usually asking for a script is not taken too well, within reason.  Keep in mind that this is a support forum, so please acknowledge that. We are here to help you with your scripts, not to spoon-feed code to you.  If you do need something written for you, maybe try  [http://www.rentacoder.com/ RentACoder], as they are more suited to requests.&lt;br /&gt;
* Don&#039;t PM other members asking for them to look at threads of to help you unless they request it.  It is actually quite rude and annoying to receive PMs of that nature.&lt;br /&gt;
* Lurk a little before you dive right in. Read a number of posts, or check out the group&#039;s archives. Get a feel for the tone of the forum so you can participate accordingly.&lt;br /&gt;
* Say online exactly what you would say in person. In other words, if you wouldn&#039;t say it to the person&#039;s face in front of your Grandmother, you shouldn&#039;t type it here.&lt;br /&gt;
* Remember your face doesn&#039;t show. Words alone can convey sentiment, but without benefit of inflection or facial expression, they can be misconstrued. Use descriptive wording, emoticons or .gifs to ensure your meaning is clear. By the same token, don&#039;t jump to conclusions about another person&#039;s intent in posting an unclear comment. When in doubt, ask for clarification.&lt;br /&gt;
* Be respectful. Internet etiquette is similar to standard etiquette in this area. Appreciate that your opinion is one of many. You can disagree with another person without being disrespectful or rude to other people.&lt;br /&gt;
* Ignore Trolls. If you engage in conversation with one, you&#039;ll raise your blood pressure and empower the troll. You can&#039;t win a flame war, and you can&#039;t sway a troll&#039;s opinion. Often, they don&#039;t even care about the subject.  They live for the conflict and nothing more. Trolls are common and not worthy of your time. Ignore their posts no matter how inflammatory and eventually they&#039;ll get bored and move on.&lt;br /&gt;
* When you have found an answer for your question:&lt;br /&gt;
*# Do not edit your post to be blank or to have worthless information.  People may be searching for the same issue you have, so be courteous to them by leaving your question there.&lt;br /&gt;
*# It is also optional to add the word [SOLVED] into the title, as well as selecting the post that best answered your question. It can make the lives of people searching easier.&lt;br /&gt;
* Finally follow the rules:&lt;br /&gt;
** [http://www.autoitscript.com/forum/topic/169097-forum-rules/ Forum rules]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=54168 Rules for the Chat forum]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=65889 Rules for asking for source code]&lt;br /&gt;
** [http://www.autoitscript.com/forum/index.php?showtopic=37739 General policies and forum settings]&lt;br /&gt;
&lt;br /&gt;
Some general points taken from [http://www.ehow.com/how_2106033_use-proper-forum-etiquette.html here].&lt;br /&gt;
&lt;br /&gt;
==Are there forums available in my local language?==&lt;br /&gt;
Yes there are some available.  Some forum members here participate in multiple forums.&lt;br /&gt;
* [http://www.autoit.de/ German Forums]&lt;br /&gt;
* [http://www.autoit.fr/  French Forums]&lt;br /&gt;
* [http://www.autoit.es/ Spanish Forums]&lt;br /&gt;
* [http://autoit-script.ru/ Russian Forums]&lt;br /&gt;
* [http://forum.autoitbrasil.com/ Portuguese Forums]&lt;br /&gt;
&lt;br /&gt;
Please note that these are independent, community-run message boards and not just a translation of this board.&lt;br /&gt;
&lt;br /&gt;
==How can I control (click, edit etc) an external (html) application?==&lt;br /&gt;
You can use the control* functions of autoit see helpfile&lt;br /&gt;
of use specific udf libraries&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ IUIAutomation for multiple applications]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/154439-chrome-udf/ chrome chrome.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/149526-librariesieau3/ Internet explorer ie.au3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ firefox ff.au3] (End of life)&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166830-java-object-automation-and-simple-spy/ java]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?&amp;amp;q=Selenium Selenium]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/191990-webdriver-udf-w3c-compliant-version/ WebDriver UDF (IE, Chrome, FireFox)]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should use spy applications to identify objects like&lt;br /&gt;
* au3inf part of AutoIT&lt;br /&gt;
* [http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/ simplespy in the zip]&lt;br /&gt;
* jabsimplespy in examples section of the AutoIt forum&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/126716-control-viewer-autoit-window-info-tool/ control viewer]&lt;br /&gt;
* inspect as part of windows SDK&lt;br /&gt;
* VisualUIAVerifyNative.exe as part of windows SDK (8.1)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If above spy tools are not identifying your object you could try commercial tools (trials) like&lt;br /&gt;
* ranorex spy&lt;br /&gt;
* Testcomplete&lt;br /&gt;
* HP UFT&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And your last recognition can be bitmaps&lt;br /&gt;
* search for GDI&lt;br /&gt;
* search for findBMP&lt;br /&gt;
* search for imagesearch&lt;br /&gt;
&lt;br /&gt;
==Does AutoIt support database connections, such as SQL?==&lt;br /&gt;
Yes! UDFs exist for several popular SQL solutions, including SQLite, Firebird, MySQL, MSSQL and ODBC connections for PostGreSQL and others.&lt;br /&gt;
&lt;br /&gt;
For an illustrative list, see this link:&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/wiki/User_Defined_Functions#Databases_and_web_connections Database and Web Connections]&lt;br /&gt;
&lt;br /&gt;
A DBF UDF also exists&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/145142-dbf-udf-dbase-database-read-and-write-with-dll/ DBF UDF dBase with DLL]&lt;br /&gt;
&lt;br /&gt;
==How can I include some files into my compiled Autoit&#039;s EXE?==&lt;br /&gt;
Use FileInstall() or ResourcesEx UDF from the forum Examples.  Additional resources can also be included at compile time, click the &amp;quot;Res Add Files&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
==How can I test if checkbox / radiobutton is checked?==&lt;br /&gt;
Use this small function: If IsChecked($checkbox1) Then ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Zedna&lt;br /&gt;
Func IsChecked($control)&lt;br /&gt;
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED&lt;br /&gt;
EndFunc   ;==&amp;gt;IsChecked&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use the {enter} key as a Tab?==&lt;br /&gt;
Use &lt;br /&gt;
[https://www.autoitscript.com/autoit3/docs/functions/GUISetAccelerators.htm Accelerator keys]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; by Melba23&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;MsgBoxConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPI.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$hGUI = GUICreate(&amp;quot;Test&amp;quot;, 500, 500)&lt;br /&gt;
&lt;br /&gt;
$cInput_1 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 10, 200, 20)&lt;br /&gt;
$cInput_2 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 50, 200, 20)&lt;br /&gt;
$cInput_3 = GUICtrlCreateInput(&amp;quot;&amp;quot;, 10, 90, 200, 20)&lt;br /&gt;
&lt;br /&gt;
$cButton_1 = GUICtrlCreateButton(&amp;quot;Button 1&amp;quot;, 250, 10, 80, 30)&lt;br /&gt;
$cButton_2 = GUICtrlCreateButton(&amp;quot;Button 2&amp;quot;, 250, 50, 80, 30)&lt;br /&gt;
$cButton_3 = GUICtrlCreateButton(&amp;quot;Button 3&amp;quot;, 250, 90, 80, 30)&lt;br /&gt;
&lt;br /&gt;
$cEnter = GUICtrlCreateDummy()&lt;br /&gt;
&lt;br /&gt;
GUISetState()&lt;br /&gt;
&lt;br /&gt;
Local $aAccelKeys[2][2] = [[&amp;quot;{ENTER}&amp;quot;, $cEnter], [&amp;quot;{TAB}&amp;quot;, $cEnter]] ; Make {TAB} an accelerator&lt;br /&gt;
GUISetAccelerators($aAccelKeys)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $cEnter&lt;br /&gt;
			Switch _WinAPI_GetFocus()&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_1)&lt;br /&gt;
					; Check the input content&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						; Correct so move to next input&lt;br /&gt;
						GUICtrlSetState($cInput_2, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
					; Not correct so stay in current input&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_2)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						GUICtrlSetState($cInput_3, $GUI_FOCUS)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case GUICtrlGetHandle($cInput_3)&lt;br /&gt;
					If checkEntry() = True Then&lt;br /&gt;
						ConsoleWrite(&amp;quot;End&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
					EndIf&lt;br /&gt;
				Case Else&lt;br /&gt;
					GUISetAccelerators(0) ; Remove accelerator link&lt;br /&gt;
					ControlSend($hGUI, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;{TAB}&amp;quot;) ; Send {TAB} to the GUI&lt;br /&gt;
					GUISetAccelerators($aAccelKeys) ; Reset the accelerator&lt;br /&gt;
&lt;br /&gt;
			EndSwitch&lt;br /&gt;
	EndSwitch&lt;br /&gt;
&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func checkEntry()&lt;br /&gt;
&lt;br /&gt;
	; Random chance of correct answer or fail&lt;br /&gt;
	If Mod(@SEC, 2) = 0 Then&lt;br /&gt;
		MsgBox($MB_SYSTEMMODAL, &amp;quot;Test Fail&amp;quot;, &amp;quot;Press Enter to close this message box&amp;quot;)&lt;br /&gt;
		Return False&lt;br /&gt;
	EndIf&lt;br /&gt;
	Return True&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;checkEntry&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why are my number sort results wrong?==&lt;br /&gt;
AutoIt by default uses an alpha sort algorithm. This means that ABC is sorted correctly, but it sorts numbers as 1,10,2,22,3,31 where the user expects 1,2,3,10,22,31.&lt;br /&gt;
This can be remedied by using a custom sort function. An example of such a custom number sort by Valuater appears below.  Search the Forum for [https://www.autoitscript.com/forum/topic/95383-sorting-numbers/ Number Sort] and [https://www.autoitscript.com/forum/topic/83626-natural-order-string-comparison/ Natural Order String Comparison] &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Valuater&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$Array = StringSplit(&amp;quot;2,5,3,4,6,1,8,9,7&amp;quot;, &amp;quot;,&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
_ArraySortNum($Array)&lt;br /&gt;
&lt;br /&gt;
_ArrayDisplay($Array, &amp;quot;Sorted Array&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Func _ArraySortNum(ByRef $n_array, $i_descending = 0, $i_start = 1)&lt;br /&gt;
	Local $i_ub = UBound($n_array)&lt;br /&gt;
	For $i_count = $i_start To $i_ub - 2&lt;br /&gt;
		Local $i_se = $i_count&lt;br /&gt;
		If $i_descending Then&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;lt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $x_count = $i_count To $i_ub - 1&lt;br /&gt;
				If Number($n_array[$i_se]) &amp;gt; Number($n_array[$x_count]) Then $i_se = $x_count&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
		Local $i_hld = $n_array[$i_count]&lt;br /&gt;
		$n_array[$i_count] = $n_array[$i_se]&lt;br /&gt;
		$n_array[$i_se] = $i_hld&lt;br /&gt;
	Next&lt;br /&gt;
EndFunc   ;==&amp;gt;_ArraySortNum&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I include AutoIt functions in a C# / C++ / VB programme? AutoItX==&lt;br /&gt;
AutoIt is also supplied as 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;
[https://www.autoitscript.com/site/autoit/ Info on AutoItX] &lt;br /&gt;
&lt;br /&gt;
From AutoItX.chm:&lt;br /&gt;
AutoItX is a DLL version of AutoIt v3 that provides a subset of the features of AutoIt via an ActiveX/COM and DLL interface. This means that you can add AutoIt-like features to your favourite scripting and programming languages, e.g. VB, VBScript, Delphi, C, C++, Kixtart, and most other languages that support the use of DLLs.&lt;br /&gt;
&lt;br /&gt;
Here are some C++ source code samples from various projects by [https://www.autoitscript.com/forum/profile/1-jon/ Jon]. Most are free to use but check any license files that accompany the downloads for details.  All code was created in Microsoft Visual C (6 and 7) but most would probably compile under mingw32 as well.&lt;br /&gt;
[https://www.autoitscript.com/site/code/ Download C++ examples for AutoItX] &lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to regsvr it if you are using the c# library. The c# library uses the non-COM part of the DLL so it just needs to be in the same folder as the exe and add the assembly.dll to your project. From the documenation:&lt;br /&gt;
&lt;br /&gt;
Using the Assembly from VB/C# within in Visual Studio is very easy:&lt;br /&gt;
* Add a reference to AutoItX3.Assembly.dll to your project&lt;br /&gt;
* Add a using AutoIt; statement in the files you want to use AutoIt functions&lt;br /&gt;
* Distribute your final executable with the files AutoItX3.Assembly.dll, AutoItX3.dll, AutoItX3_x64.dll.&lt;br /&gt;
* Write code like this C# example:&lt;br /&gt;
    using AutoIt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; by Jon&lt;br /&gt;
   // Wow, this is C#!&lt;br /&gt;
    AutoItX.Run(&amp;quot;notepad.exe&amp;quot;);&lt;br /&gt;
    AutoItX.WinWaitActive(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.Send(&amp;quot;I&#039;m in notepad&amp;quot;);&lt;br /&gt;
    IntPtr winHandle = AutoItX.WinGetHandle(&amp;quot;Untitled&amp;quot;);&lt;br /&gt;
    AutoItX.WinKill(winHandle);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the AutoItX Help File (included in the default AutoIt install):&lt;br /&gt;
AutoItX can be used as a standard DLL from any language capable of calling functions in external DLLs.&lt;br /&gt;
&lt;br /&gt;
The following files are provided to allow you to use the DLL in C++:&lt;br /&gt;
&lt;br /&gt;
* AutoItX3_DLL.h - C language header file showing the exported functions and parameters&lt;br /&gt;
* AutoItX3_DLL.lib - Microsoft format import library (x86)&lt;br /&gt;
* AutoItX3_x64_DLL.lib - Microsoft format import library (x64)&lt;br /&gt;
* AutoItX3.dll - The main AutoItX DLL (x86)&lt;br /&gt;
* AutoItX3_x64.dll - The main AutoItX DLL (x64)&lt;br /&gt;
&lt;br /&gt;
==How can I search an image in another image? ==&lt;br /&gt;
You can use the Pixel* functions of AutoIt. See the help file for more information and examples.&lt;br /&gt;
You can also use one of the UDFs below; most of which use GDI:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/158264-bmpsearch-search-for-bitmap-within-bitmap-assembly-version/ FASM example]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/140478-bitmap-processing-using-raw-code/ asm bitmap processing]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/66545-find-bmp-in-another-bmp-imagesearch/ find bitmap in bitmap]&lt;br /&gt;
* [https://www.autoitscript.com/forum/search/?type=all&amp;amp;q=_GDIPlus_BitmapLockBits/ GDI bitmaps]&lt;br /&gt;
Other libraries can be found that make use of a specific external dll but those above are considered &amp;quot;native&amp;quot; as no external dlls are required.&lt;br /&gt;
&lt;br /&gt;
==Multithreading==&lt;br /&gt;
Multithreading basically is running multiple scripts/programs that have acces to the same variables, normally by sharing memory. &lt;br /&gt;
&lt;br /&gt;
The AutoIt language is not threadsafe and multithreading is firmly on the &amp;lt;b&amp;gt;NOT TO DO&amp;lt;/b&amp;gt; list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multitasking and Multi&amp;lt;i&amp;gt;processing&amp;lt;/i&amp;gt; are closely related, however, and multiple solutions have been explored:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25350-multithread/ Multithread technical discussion]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/25494-threaded-dll-sample/ Multithread with external DLL]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/146794-multi-thread-autoit/ Multithread with external DLL 2]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/64390-how-to-multi-process-in-autoit/ Multi process]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/187334-using-net-libary-with-autoit-possible/ Using C# - Host .NET]&lt;br /&gt;
&lt;br /&gt;
==Test automation==&lt;br /&gt;
Many people are looking for freeware tools to do test automation and cannot afford the commercial tools like HP LeanFT, Ranorex, Squish etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
So how can AutoIt help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Out of the box install the base full zip package and start Scite.Exe as a simple IDE.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to do more these links will help you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 31 for the basic stuff on which technologies are readable and which spying tools there are&amp;lt;br /&amp;gt;&lt;br /&gt;
Read FAQ 38 for the bitmap stuff&amp;lt;br /&amp;gt;&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/136766-isn-autoit-studio/ Alternative project IDE]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/188158-net-common-language-runtime-clr-framework/ .NET stuff]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/84133-winhttp-functions/ WinHTTP]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/185401-restwhich-udf-to-use-webdriver-of-edge/ webdriver]&lt;br /&gt;
Android can be reached thru ADB and Webdriver&amp;lt;br /&amp;gt;&lt;br /&gt;
iOS is limited to normal webdriver stuff thru WinHTTP library. So most likely you have to install additional iOS webdriver solutions&amp;lt;br /&amp;gt;&lt;br /&gt;
And after reading FAQ just ask your questions in the support forum&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DPI Awareness==&lt;br /&gt;
The following few links are related to DPI Awareness :&lt;br /&gt;
&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/166479-writing-dpi-awareness-app-workaround/ Writing DPI Awareness App - workaround]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/182423-wrong-screen-resolution-displayed-by-autoit-macros/ Wrong Screen Resolution Displayed by Autoit Macros]&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/192529-dpi-awareness-any-suggestion/ DPI Awareness - question]&lt;br /&gt;
&lt;br /&gt;
==AutoIt+SciTE Portable Developer Environment==&lt;br /&gt;
Recent discussion can be found here:&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/119572-autoit3-portable/?do=findComment&amp;amp;comment=1391105 How to make AutoIt+SciTE portable ]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13826</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=13826"/>
		<updated>2018-10-14T20:41:58Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: counter fixed should be 318 instead 317&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (318 UDFs on 2018/10/14), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - UDF to log program activities and errors to different output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - 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=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13825</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=13825"/>
		<updated>2018-10-14T20:38:15Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Script Coding/Analyzing/Debugging */&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (317 UDFs on 2018/10/14), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Script Coding/Analyzing/Debugging ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195882 ErrorLog (by mLipok)] - UDF to log program activities and errors to different output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156196 Log4a (by zorphnog)] - Logging library loosely based upon the log4j and NLog libaries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195862 Loga (by Danyfirex)] - Simple logging library to keep track of code with an integrated console.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - 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=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13822</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=13822"/>
		<updated>2018-10-03T06:18:34Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: counter changed from 314 to 315&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (315 UDFs on 2018/10/03), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - 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=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13821</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=13821"/>
		<updated>2018-10-03T06:18:04Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Hardware */ added VISA/GPIB (by Angel)&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (314 UDFs on 2018/09/27), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=8188 VISA/GPIB (by Angel)] - VISA/GPIB library for AutoIt3&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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - 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=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13820</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=13820"/>
		<updated>2018-09-27T05:10:21Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: counter changed from 313 to 314&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (314 UDFs on 2018/09/27), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate 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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - 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=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13819</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=13819"/>
		<updated>2018-09-27T05:09:45Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Encryption and hash */ added _Base64Encode, _Base64Decode (by trancexx)&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (313 UDFs on 2018/09/14), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
&lt;br /&gt;
===Browsers===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154439 Chrome (by seangriffin)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now supplied with a standard AutoIt install.&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=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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
===Other Applications===&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=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;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=119238 Excel file generation UDF (by jerome)] - Excel file generation (multi-sheet workbook) without the need to have Excel installed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81332 _Base64Encode, _Base64Decode (by trancexx)] - Fast _Base64Encode, _Base64Decode (calling functions &amp;quot;CryptBinaryToString&amp;quot; and &amp;quot;CryptStringToBinary&amp;quot; in Crypt32.dll)&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate 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;
* [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;
== 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&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=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&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=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - 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=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=SciTE4AutoIt3&amp;diff=13812</id>
		<title>SciTE4AutoIt3</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=SciTE4AutoIt3&amp;diff=13812"/>
		<updated>2018-09-02T22:49:16Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Stripping Excess Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SciTE4AutoIt3&#039;&#039;&#039; is a specialist editor package based on the excellent [http://www.scintilla.org/SciTE.html SciTE] editor.  &lt;br /&gt;
SciTE has been set up to compile AutoIt scripts and has been extended with a multitude of Lua scripts.  &lt;br /&gt;
SciTE4AutoIt3 may be downloaded here: [http://www.AutoItscript.com/site/AutoIt-script-editor/ SciTE4AutoIt3].&lt;br /&gt;
Keep in mind that SciTE4AutoIt3 is not an official package.&lt;br /&gt;
Direct any bug reports or feature requests to the AutoIt3 forum and not the bug tracker.&lt;br /&gt;
&lt;br /&gt;
== Syntax Highlighting ==&lt;br /&gt;
&lt;br /&gt;
[[File:Syntax_Highlighting.JPG|right|A demonstration of syntax highlighting using the default theme.]]&lt;br /&gt;
&lt;br /&gt;
SciTE4AutoIt3 comes with a customized AutoIt3 lexer which enables syntax highlighting.&lt;br /&gt;
Syntax highlighting enables the colorization of various code elements such as variables, strings, operators, comments etc.&lt;br /&gt;
Syntax highlighting allows one to differentiate the various code elements such as keywords, variables, strings, control flow structures etc. quickly without having to specifically identify the element.&lt;br /&gt;
To load a custom theme a user may press [Ctrl] + [1] to bring up [[SciTEConfig]].&lt;br /&gt;
When the &#039;&#039;Color Settings&#039;&#039; tab is selected a button labeled &#039;New Scheme&#039; will appear at the bottom. &lt;br /&gt;
Alternatively, the colors may be customized individually.&lt;br /&gt;
&lt;br /&gt;
Some options that are available for customization include: White Space, Comment Line, Comment Block, Number, Function, Keyword, Macro and String.&lt;br /&gt;
&lt;br /&gt;
== Quick Tips ==&lt;br /&gt;
&lt;br /&gt;
For anyone not familiar with SciTE, here are a few tips and tricks to help easily customize the installation. &lt;br /&gt;
For any advanced info, visit the [http://www.scintilla.org/SciTEDoc.html SciTE home page].&lt;br /&gt;
&lt;br /&gt;
=== Help Files ===&lt;br /&gt;
&lt;br /&gt;
To access the AutoIt3 helpfile the user may press [F1].  For the full article see: [[Documentation]]&lt;br /&gt;
To quickly access help information on a specific function, simply click or highlight the desired function and press the [F1] key to bring up the help file on the relevant page.&lt;br /&gt;
To access the SciTE4AutoIt3 helpfile the user may press [ctrl] + [F1].&lt;br /&gt;
&lt;br /&gt;
=== Properties Files ===&lt;br /&gt;
&lt;br /&gt;
Minor editing of SciTE&#039;s configuration files will be required to make use of the information in this section.&lt;br /&gt;
It is important to be familiar with the hierarchy of SciTE&#039;s configuration files.&lt;br /&gt;
&lt;br /&gt;
There are four properties files used:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| SciTE.properties || Local properties file which may be present in the same directory as the file being edited. This file overrides any other properties files settings below. This file is user created.&lt;br /&gt;
|-&lt;br /&gt;
| SciTEDirectory.properties || Directory properties file which may be present in the same or in a parent directory as the file being edited.&lt;br /&gt;
This file overrides all properties setting of the files below, but not the local properties settings aka &#039;&#039;SciTE.properties&#039;&#039;. &lt;br /&gt;
This file is user created.&lt;br /&gt;
|-&lt;br /&gt;
| SciTEUser.properties || User properties file, this file&#039;s settings override only the global properties settings aka &#039;&#039;SciTEGlobal.properties&#039;&#039;.&lt;br /&gt;
This file is found under the current logged on users profile directory.&lt;br /&gt;
|-&lt;br /&gt;
| SciTEGlobal.properties || All settings in this file can be overridden by any of the above files. &lt;br /&gt;
Typically this file should not be edited. &lt;br /&gt;
Use any of the above methods to implement a setting change.&lt;br /&gt;
This file can be found in SciTE&#039;s installation directory.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Inline Errors ===&lt;br /&gt;
&lt;br /&gt;
[[File:InlineError.JPG|234px|thumb|right|Intentional error prone code used to display the &amp;quot;Inline Error&amp;quot; feature.]]&lt;br /&gt;
&lt;br /&gt;
In the latest version of SciTE, there exists a new feature called &amp;quot;Inline Errors&amp;quot;.  &lt;br /&gt;
Inline Error marks are error messages that will appear in the source code within the Scintilla window.&lt;br /&gt;
&lt;br /&gt;
The feature may be toggled and customized by using SciTEConfig.&lt;br /&gt;
&lt;br /&gt;
=== Selection Highlighting ===&lt;br /&gt;
&lt;br /&gt;
Selection highlighting is a new feature which highlights other instances of the currently highlighted word or string.  &lt;br /&gt;
Due to the colors, sometimes it is hard to tell the selection apart.&lt;br /&gt;
The default colors may be changed.&lt;br /&gt;
&lt;br /&gt;
The feature may be toggled and customized by using SciTEConfig.&lt;br /&gt;
&lt;br /&gt;
=== Colors in the Output Pane ===&lt;br /&gt;
&lt;br /&gt;
SciTE has a console window which can be used to output information from running scripts.  &lt;br /&gt;
The function {{Help File|ConsoleWrite}} may be used in an AutoIt script to output text to the console.  &lt;br /&gt;
The colors of the text may be altered by prepending a string with special characters.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;AutoIt&amp;quot;&amp;gt;&lt;br /&gt;
ConsoleWrite(&amp;quot;This is plain text&amp;quot; &amp;amp; @LF)&lt;br /&gt;
ConsoleWrite(&amp;quot;&amp;gt; This text will have a different color.&amp;quot; &amp;amp; @LF)&lt;br /&gt;
ConsoleWrite(&amp;quot;+ This text will have a different color.&amp;quot; &amp;amp; @LF)&lt;br /&gt;
ConsoleWrite(&amp;quot;- This text will have a different color.&amp;quot; &amp;amp; @LF)&lt;br /&gt;
ConsoleWrite(&amp;quot;! This text will have a different color.&amp;quot; &amp;amp; @LF)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AutoIt3Wrapper ==&lt;br /&gt;
&lt;br /&gt;
AutoIt3Wrapper directives allow for in depth control of the compilation and interpretation of AutoIt scripts.  &lt;br /&gt;
Some of these can be very useful under different circumstances.&lt;br /&gt;
See [[AutoIt3Wrapper Directives]] for a full list of directives and their descriptions.&lt;br /&gt;
&lt;br /&gt;
== Au3Stripper ==&lt;br /&gt;
&lt;br /&gt;
[[Au3Stripper]] may be used to strip away unused [[Function|functions]] and [[Global|global]] [[Variable|variables]] from the script prior to compilation.  &lt;br /&gt;
Functions and variables may be renamed to shorter three character names to save space and to provide some measure of obscurity.  &lt;br /&gt;
&lt;br /&gt;
=== Stripping Excess Code ===&lt;br /&gt;
&lt;br /&gt;
For instance, in a script that has several includes Au3Stripper can often strip thousands of lines from the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;AutoIt&amp;quot;&amp;gt;&lt;br /&gt;
#AutoIt3Wrapper_Run_Au3Stripper=y&lt;br /&gt;
#Au3Stripper_Parameters=/sf /sv /rm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a medium sized script, results are often like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;Running Au3Stripper (1.2.0.6)  from:C:\Program Files\AutoIt3\SciTE cmdline:&lt;br /&gt;
 - Iteration 1 Strip Functions result: Output  2580 lines and stripped 6741 lines&lt;br /&gt;
 - Iteration 2 Strip Variables result: Output  1585 lines and stripped 950 lines&lt;br /&gt;
 - Iteration 3 Strip Variables result: Output  1566 lines and stripped 19 lines&lt;br /&gt;
 - Iteration 4 Start the actual Obfuscation.&lt;br /&gt;
 +&amp;gt; Source    26190 lines 1447980 Characters.&lt;br /&gt;
 +&amp;gt; Stripped  7710 Func/Var lines and  16862 comment lines, Total 1373871 Characters.&lt;br /&gt;
 +&amp;gt; Saved     93% lines 94% Characters.&lt;br /&gt;
 +&amp;gt; Au3Stripper v1.0.27.0 finished obfuscating 1566 lines, created:C:\MyScript_stripped.au3&lt;br /&gt;
&lt;br /&gt;
== Run_After and Run_Before Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Running the exe On Build ===&lt;br /&gt;
&lt;br /&gt;
Often a build is performed as a testing procedure and so to have to continually open up Windows Explorer to find the exe is repetitive. &lt;br /&gt;
Furthermore, if the script writes to the console using the function {{Help File|ConsoleWrite}} then the messages will not be written to SciTE&#039;s console pane.  The solution is simple:&lt;br /&gt;
&lt;br /&gt;
 #AutoIt3Wrapper_Run_After=&amp;quot;%out%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will run the program and read the console output to the SciTE debug frame.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Version Directory ===&lt;br /&gt;
&lt;br /&gt;
When compiling, it is very possible that you want to go back to a previous version. &lt;br /&gt;
If so, then it is neat to have a directory which will store all previous builds, without the need for you to manually copy and paste every time.&lt;br /&gt;
Make sure you add these directives in last (after adding resources) as they might not be included in the copied result.&lt;br /&gt;
&lt;br /&gt;
 #AutoIt3Wrapper_Run_After=md &amp;quot;%scriptdir%\Versions\%fileversion%&amp;quot;&lt;br /&gt;
 #AutoIt3Wrapper_Run_After=copy &amp;quot;%in%&amp;quot; &amp;quot;%scriptdir%\Versions\%fileversion%\%scriptfile%%fileversion%.au3&amp;quot;&lt;br /&gt;
 #AutoIt3Wrapper_Run_After=copy &amp;quot;%out%&amp;quot; &amp;quot;%scriptdir%\Versions\%fileversion%\%scriptfile%%fileversion%.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Using ResHacker ===&lt;br /&gt;
&lt;br /&gt;
ResHacker is a very important programming tool for extracting and adding resources into executables. &lt;br /&gt;
It has a very simple command line interface that allows it to be used easily using the &amp;quot;Run_After&amp;quot; directive. &lt;br /&gt;
Adding a picture to an executable could be done like this:&lt;br /&gt;
&lt;br /&gt;
 #AutoIt3Wrapper_Run_After=ResHacker.exe -add %out%, %out%, MyPicture.bmp, BITMAP, RESOURCENAME, 0&lt;br /&gt;
&lt;br /&gt;
NB: Reshacker.exe &#039;&#039;must&#039;&#039; be copied into the script directory for this to work.&lt;br /&gt;
&lt;br /&gt;
If you then want to use the resources in your code, there is an excellent [http://www.AutoItscript.com/forum/index.php?showtopic=51103 Resources UDF] which will allow you to access the resources from within the exe.&lt;br /&gt;
&lt;br /&gt;
==== Adding Original Source Code ====&lt;br /&gt;
&lt;br /&gt;
When using the above tip on stripping excess code, the new source is not readable. &lt;br /&gt;
As a result, using the standard directive for saving the source:&lt;br /&gt;
&lt;br /&gt;
 #AutoIt3Wrapper_Res_SaveSource=y&lt;br /&gt;
&lt;br /&gt;
Would add the obfuscated code to the exe, which is not the desired result. &lt;br /&gt;
The solution is to add it in manually. &lt;br /&gt;
This code does not require any editing, so you can just copy and paste it in:&lt;br /&gt;
&lt;br /&gt;
 #AutoIt3Wrapper_Run_After=ResHacker.exe -add %out%, %out%, %scriptfile%.au3, RCDATA, SOURCE, 0&lt;br /&gt;
 &lt;br /&gt;
==== Extended Reshacker Info ====&lt;br /&gt;
&lt;br /&gt;
ResHacker doesn&#039;t always return with a return code (rc) of not 0 if it fails, to get that info you need to read the ResHacker.log file that is created. This is also pretty simple to do:&lt;br /&gt;
&lt;br /&gt;
 #AutoIt3Wrapper_Run_After=ResHacker.exe -add %out%, %out%, MyPicture.bmp, BITMAP, RESOURCENAME, 0&lt;br /&gt;
 #AutoIt3Wrapper_Run_After=TYPE ResHacker.log&lt;br /&gt;
&lt;br /&gt;
The new output now looks like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;Running:ResHacker.exe -add C:\MyScript.exe, C:\MyScript.exe, MyPicture.bmp, BITMAP, RESOURCENAME, 0&lt;br /&gt;
 &amp;gt;ResHacker.exe -add C:\MyScript.exe, C:\MyScript.exe, MyPicture.bmp, BITMAP, RESOURCENAME, 0 Ended   rc:0&lt;br /&gt;
 &amp;gt;Running:TYPE ResHacker.log&lt;br /&gt;
 [19 Jan 2010, 21:26:22]&lt;br /&gt;
 ResHacker.exe  -add C:\MyScript.exe, C:\MyScript.exe, MyPicture.bmp, BITMAP, RESOURCENAME, 0&lt;br /&gt;
  Added: BITMAP,RESOURCENAME,0&lt;br /&gt;
 &lt;br /&gt;
 Commands completed&lt;br /&gt;
 &amp;gt;TYPE ResHacker.log Ended   rc:0&lt;br /&gt;
&lt;br /&gt;
And an example of it showing an error:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;ResHacker.exe -add C:\MyScript.exe, C:\MyScript.exe, MyPicture.bmp, BITMAP, RESOURCENAME, 0 Ended   rc:0&lt;br /&gt;
 &amp;gt;Running:TYPE ResHacker.log&lt;br /&gt;
 [19 Jan 2010, 21:32:10]&lt;br /&gt;
 ResHacker.exe  -add C:\MyScript.exe, C:\MyScript.exe, MyPicture.bmp, BITMAP, RESOURCENAME, 0&lt;br /&gt;
 Error: &amp;quot;MyPicture.bmp&amp;quot; does not exist&lt;br /&gt;
 &amp;gt;TYPE ResHacker.log Ended   rc:0&lt;br /&gt;
&lt;br /&gt;
As you can see, Reshacker on its own returns rc: 0, usually indicating no error. This would have gone completely unnoticed except for the log file, which shows the error and an explanation.&lt;br /&gt;
&lt;br /&gt;
=== Other Run_After and Run_Before Commands ===&lt;br /&gt;
&lt;br /&gt;
You can use any commands you like in the Run_After and Run_Before directives. Examples such as &amp;quot;TYPE&amp;quot; have been shown above. &lt;br /&gt;
&lt;br /&gt;
For a more complete list the following website is very useful: [http://ss64.com/nt An A-Z Index of the Windows CMD Line]&lt;br /&gt;
&lt;br /&gt;
== Other Wiki Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Adding_utilities_to_the_SciTE_Tools_menu|Adding Utilities to the SciTE Tools Menu]]&lt;br /&gt;
&lt;br /&gt;
[[Adding_UDFs_to_AutoIt_and_SciTE|Adding UDFs to AutoIt and SciTE]]&lt;br /&gt;
&lt;br /&gt;
== Useful Lua links and scripts ==&lt;br /&gt;
&lt;br /&gt;
[http://www.scintilla.org/SciTELua.html SciTELua]&lt;br /&gt;
&lt;br /&gt;
[http://www.lua.org Lua Website]&lt;br /&gt;
&lt;br /&gt;
[http://www.lua.org/pil/1.html Programming in Lua]&lt;br /&gt;
&lt;br /&gt;
[http://lua-users.org/wiki/ lua-users wiki]&lt;br /&gt;
&lt;br /&gt;
[http://lua-users.org/wiki/SciTEScripts SciTEScripts]&lt;br /&gt;
&lt;br /&gt;
[http://lua-users.org/wiki/SampleCode SampleCode]&lt;br /&gt;
&lt;br /&gt;
[http://www.AutoItscript.com/forum/topic/140881-mouse-hover-call-tips-update-03182013/ AutoIt3 Forum: MouseHoverCallTips]&lt;br /&gt;
&lt;br /&gt;
[http://www.AutoItscript.com/forum/topic/152960-SciTE-lua-tool-to-make-string-variable-from-selected-text/ AutoIt3 Forum: SciTE lua Tool To Make String Variable From Selected Text]&lt;br /&gt;
&lt;br /&gt;
[https://www.autoitscript.com/forum/topic/174110-scite-show-hex-color-value-in-the-script/ AutoIt3 Forum: SciTE - show hex color value in the script]&lt;br /&gt;
[[Category:SciTE]]&lt;br /&gt;
&lt;br /&gt;
[https://www.autoitscript.com/forum/topic/186123-scite-fold-within-regions/ AutoIt3 Forum: Scite fold within Regions]&lt;br /&gt;
[[Category:SciTE]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13811</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=13811"/>
		<updated>2018-09-02T19:58:10Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: counter changed from 311 to 312&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (312 UDFs on 2018/09/02), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&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)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now 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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - 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=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13810</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=13810"/>
		<updated>2018-09-02T19:57:32Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Social Media and other Website API */ added Cex.io  UDF by AquilesCrespo&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (311 UDFs on 2018/08/17), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&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)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now 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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=159254 Cex.io (by AquilesCrespo)] - UDF script for using with the web api from https://cex.io/ server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - 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=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13801</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=13801"/>
		<updated>2018-08-17T05:23:05Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: counter changed to 311&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (311 UDFs on 2018/08/17), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&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)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now 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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - 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=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=13800</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=13800"/>
		<updated>2018-08-17T05:22:28Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Internet protocol suite */  added STUN (by j0kky)&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.&amp;lt;br /&amp;gt;&lt;br /&gt;
This list is probably not complete (310 UDFs on 2018/08/04), 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;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
The listed UDFs might have been written for older versions of AutoIt. So there is no guarantee that every UDF works smoothly with newer versions.&amp;lt;br /&amp;gt;&lt;br /&gt;
None of the UDFs has been tested by the maintainers of this list so you as a user need to make sure that they deliver the expected results.&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)] - Automate the most common tasks in Chrome with this 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=167661 Firefox (by Danp2)] - Modified newer version of Stilgar Firefox UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/224-firefox-profile-backup/ FireFox Profile Backup 1.0 (by careca)] - Backup or restore your firefox profile. The application searches for the profile in home drive that will be the one to backup.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _FF_AutoLogin (by Stilgar)] - This is a auto-login function and login-function-generator for FireFox and the FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92035 _FF_DM (by Stilgar)] - UDF to control the FireFox Download-Manager (not the download-window).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91650 _FF_FoxBox (by Stilgar)] - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91665 _FF_Screengrab (by Stilgar)] - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124330 _HTML (by Stilgar)] - Get informations from any HTML (XML) source, without any browser.&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=167035 IEEx (by SmOke_N)] - IE extended library with some Javascript options&lt;br /&gt;
* Internet Explorer (by DaleHohm et al.) - IE library that is now 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,)] - Automate the most common tasks in Opera with this UDF.&lt;br /&gt;
* [https://www.autoitscript.com/forum/index.php?showtopic=191990 WebDriver (by Danp2)] - W3C compliant Webriver UDF.&lt;br /&gt;
&lt;br /&gt;
===Microsoft Office===&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=178783 Microsoft Office PowerPoint (by water)] - Automate Microsoft PowerPoint.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 Microsoft Office 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/LibreOffice===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151530 OOo/LibO Calc (by GMK)] - OpenOfficeCalc UDF (works also for Libre Office).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185932 OpenOffice/LibreOffice Spell Checker (by GMK)] - Function to validate words, and show spell alternatives.&lt;br /&gt;
&lt;br /&gt;
== Databases and web connections ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180850 ADO (by mLipok)] - A modifed version of the _SQL UDF to access all kind of databases (MSSQL, MySQL, PostgreSQL, SQLite, MS ACCESS, XLS, TXT, and many other which use ADO and ODBC).&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=176895 AXML (by Aipion)] - This is a Wrapper for Pugixml, made with C++ by Aipion.&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=143866 Excel XML UDF (by FireFox)] - UDF to work with SpreadsheetML (Open XML file formats).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155905 EXml (by jdelaney)] - Create Excel file (SpreadsheetML) through &amp;quot;Microsoft.XMLDOM&amp;quot;.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116072 EzMySql (by Yoriz)] - EzMySql - Use MySQL Databases with AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94920 FireBird (by eltorro)] - FireBird, Interbase DLL UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127101 MS SQL (by TheLuBu)] - MSSQL.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51952 MS SQL (by ChrisL)] - _SQL. ADODB Connection.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20814 MySQL (by cdkid)] - MySQL relational database management system UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=85617 MySQL (by ProgAndy)] - MySQL UDFs (without ODBC - working with libmysql.dll).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=122360 MySQL (by James)] - MySQL ODBC Connector.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187223 romaSQL (rynow)] - This autoIt UDF is built on the concept of Laravel Query &amp;amp; doctrine. Connection string is based on ADODB / ODBC.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143331 Sharepoint 2007/2010 UDF (by schoppet)] - UDF to access the SOAP-Webservices of Sharepoint 2007/2010.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=17099 SQLite (by ptrex)] - 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=142977 SQLite Array Functions (by SmOke_N)] - SQLite Array Functions - a faster method for unique arrays and sorting methods.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140521 SQLite - Database UDF (by PhoenixXL)] - UDF for SQLite so that beginners will also be able to do the stuff.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157853 SQLiteEx UDF (by 57ar7up)] - SQLiteEx UDF v0.5.1 - Simplest work with SQLite.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163633 Xbase I/O UDF (by RTFC)] - Transfer data between Xbase Data file (*.dbf) and AutoIt array written in pure AutoIt (no SQL, no ADO, no dlls, no external dependencies).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=19848 XML DOM Wrapper (by eltorro)] - Supports CRUD operations on XML. Including XSL and XPath.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=176895 XML (by mLipok)] - New version of XML DOM Wrapper, with many new features.&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 rasim)] - Extensive library that uses a external DLL that must be provided with the script.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=92958 gZip (by Zinthose)] - Based on the parsing of gZip.exe output. It can work with memory, it doesn&#039;t work with files. &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 Ward)] - LZMA Compression UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166634 MessagePack (by Ward)] - Efficient binary serialization format to exchange data among multiple languages like JSON - but faster and smaller.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138838 Package (by Yashied)] - Package UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129529 pZip (by asdf8)] - PureZIP_L library UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76176 UnRAR (by rasim)] - UnRAR.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=44524 Zip plugin (by eltorro)] - Zip plugin.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=73425 ZIP (by torels)] - ZIP UDF in pure AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116565 zip (by wraithdu)] - Create ZIP files and unpack ZIP files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135565 ZIP (by joakim)] - ZIP STRUCTS UDF (from scratch).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128962 zLib (by Ward)] - zLib (Deflate/Inflate/GZIP) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=87284 ZLib (by monoceres)] - Based on ZLib.dll. It can compress/uncompress data in memory, it doesn&#039;t work with files.&lt;br /&gt;
&lt;br /&gt;
== Encryption and hash ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=78745 AES Rijndael (by Ward)] - Very fast AES UDF. Supports ECB/CBC/CFB/OFB block cipher mode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=153246 Base91 and Base128 (by Beege)] - Base91 and Base128 functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=76976 MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward)] - Several encryption and hash functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=107784 TrueCrypt (by FuryCell)] - TrueCrypt UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140737 WinTrust (by kasty)] - verify the integrity of a file with its embedded signature or a given catalog.&lt;br /&gt;
&lt;br /&gt;
== GUI Additions ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97241 3D Pie chart (by WideBoyDixon)] - 3D Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173924 Chart_UDF (by Kanashius)] - This UDF can be used to Display bar charts in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96258 ContextHelp (by Yashied)] - 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=109096 ExtMsgBox (by Melba23)] - A very customisable replacement for MsgBox.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105582 GUICtrlOnChangeRegister (by Mat)] - Call a function when an edits content is changed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145149 GUIExtender (by Melba23)] - 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=119505 GUIFrame (by Melba23 &amp;amp; Kip)] - Divide a GUI into adjustable frames.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=144207 GUI Panel (by FireFox)] - Manage child GUIs as panel ctrls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113723 GUI Scrollbars (by Melba23)] - Automatically sized scrollbars with a single command.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161184 MetroGUI (by BBs19)] - Windows 10 style buttons, toggles, radios etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=20967 Modern tray menu (by Holger)] - 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=136149 Notify (by Melba23)] - Small notifications on the edge of the display.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161750 Pie chart (by Andreik)] - Pie chart.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75429 Real Vista Aero Glass (by James)] - Real Vista Aero Glass UDF - you can apply glass effect to your GUI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=71811 SetOnEvent (by martin)] - Provides an easy way for an event to call functions with parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=103871 _SysTray (by wraithdu)] - Get info about and manipulate Systray icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108445 Toast (by Melba23)] - Small message GUIs which pop out of the Systray.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=132864 Uskin (by JScript)] - 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=32494 XSkin (by Valuater)] - A large library that allows skinning of your GUI and to apply custom skins.&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=146406 Calendar (by jmon)] - Calendar UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125293 ChooseFileFolder (byMelba23)] - Single and multiple selections from specified path treeview listing.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=96464 Colorpicker (by Yashied)] - Create a button for the user to select a color.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=123409 Explorer Frame UDF (by Beege)] - Takes any frame created by GUIFrame and turns it into a MS-Windows like Explorer window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173929 GDIPlus Slider UDF (by Kanashius)] - This UDF can be used to create a slider with an imagebackground and an image to move.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=79412 Graph control (by andybiochem)] - Easily create and show bar chart and line charts.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104399 GraphGDIPlus UDF (by andybiochem)] - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105682 GUICtrlCreateFinder (by Mat)] - 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=107965 GUIHotkey (by Mat)] - UDF for using native hotkey controls.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182492 GUIListViewEx (by Melba23)] - Insert, delete, move, drag, sort, edit and colour ListView items.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111438 GUIPager (by Mat)] - Create and control native pager controls.&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=166594 GUITreeViewEx (by Melba23)] - Check/clear parent and child checkboxes in a TreeView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=90598 Hotkey input control (by Yashied)] - Hotkeys Input Control UDF Library (Non-native).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173932 ListView Edit UDF (by Kanashius)] - This UDF can be used to simply edit an Listview.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=109355 ListView - Explorer like ListView UDF (by Beege)] - This UDF simplify creating MS Explorer-like ListViews.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143711 Marquees (by Melba23)] - Make tickertape info bars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=143380 Predict Text UDF (by PhoenixXL)] - It sub classes the edit control and matches the current word through the Database &amp;amp; sets selection in accordance.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74649 Progressbar with GDIplus (by ProgAndy)] - You even can use full textured images.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151636 RestrictEdit_SRE UDF (by PhoenixXL)] - Restrict the text that can be entered in an editbox through a String Regular Expression.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128242 Ribbon (by trancexx)] - UDF for Windows Ribbon framework.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114034 StringSize (by Melba23)] - Automatically size controls to fit the text you want to put in them.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126958 Syslink (by Yashied)] - Provides a convenient way to embed hypertext links in a window.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=105814 Table (by andybiochem)] - Table UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=190659 Virtual Listview (by LarsJ)] - Virtual Listview for large amounts of data with a large number of rows.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=195053 Windows Message Monitor (by LarsJ)] - Monitor Windows Messages of a window or control.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118317 Battery UDF (by Yashied)] - Retrieves a various information and current status of the battery(s).&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/155674-commapi-serial-and-parallel-communication-with-windows-api/ CommAPI (by therealhanuta)] - 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 weaponx)] - Device Management API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97487 DirectShow (by monoceres)] - DirectShow UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164700 DirectSound (by eukalyptus)] - DirectSound UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164701 Direct2D (by eukalyptus)] - Direct2D UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138989 FritzBox (by Allow2010)] - _FB_Tools - manage your FritzBox from Autoit.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121084 I/O Port Functions (by Ascend4nt)] - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154350 Monitor Configuration (by jaberwacky)] - Monitor Configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155469 Mouse (by AlmarM)] - AutoIt powered mouse events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=147325 MouseTrapEvent (by ozmike)] - MouseTrapEvent UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149083 NetInfo (by Nessie)] - UDF for test internet download speed and upload speed.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155539 Network configuration (by jguinch)] - Network configuration UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155485 Printers management with WMI (by jguinch)] - Allows to manage printers: add/delete printer, driver, port, or obtain configuration, set default printer ...&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=128546 Serial Port/COM (by martin)] - Serial Port /COM Port UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27755 SMARTDRIVE (by ptrex)] - SMART drive Analysis.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158640 SPI Hardware Interface (by Blinky)] - Communicate 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;
== Internet protocol suite ==&lt;br /&gt;
* [https://www.autoitscript.com/forum/topic/178871-dllcall-with-c-example/#comment-1285754 SMSApi (by mLipok)] - UDF for SMSAPi which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=178589 BulkSMS (by Skysnake)] - UDF for BulkSMS which provides SMS services.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=137456 cURL (by seangriffin)] - A UDF for transferring data with URL syntax.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173067 cURL (by Ward)] - AutoIt binary code version of libcurl with SSL support.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=187718 HTTP lib (by Jefrey)] - HTTP lib (GET, POST and upload) UDF to simplify HTTP requests, mainly when dealing about POST data or file uploads.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=40243 IMAP (by mikeytown2)] - IMAP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108422 IMAP4 (by Tipulatoid)] - IMAP4 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=43515 IRC (by McGod)] - A lightweight library for communicating with IRC servers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=159285 IRC (by rcmaehl)] - IRC UDF - Updated Version of Chips&#039; IRC UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=104150 JSON (by Gabriel13)] - RFC4627 compliant JSON encode/decode.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=148114 JSON (by Ward)] - JSMN - A Non-Strict JSON UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=156794 JSON (by ozmike)] - Bridge to Native Windows JSON plus OO extension for AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173797 JSONgen: JSON generator (by Jefrey)] - UDF to generate JSON.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=22838 POP3 (by Apzo)] - 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 (by mLipok)] - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.autoitscript.com/forum/index.php?showtopic=64051 POP3 SSL (by Fox2)] - A POP3 library that&#039;s compatible with Gmail. It uses an external executable that must be supplied with your script.&amp;lt;/strike&amp;gt; No code attached to the thread.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154530 Prowl (by mrflibblehat)] - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173129 Request (by Ward)] - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=138095 SFTP (by Lupo73)] - UDF to support SFTP protocol using PSFTP.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154054 Socket UDF (by funkey)] - Socket UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=23860 SMTP (by Jos)] - Smtp Mailer That Supports Html And Attachments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167292 SMTP Mailer UDF (by mLipok)] - Smtp Mailer That Supports Html And Attachments - Modified Version with support to save EML files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81687 SNMP (by enaiman)] - SNMP_UDF for SNMPv1 and SNMPv2c.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70759 SNMP - MIB protocol (by ptrex)] - Reading toner status from SNMP device with WMI.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166579 SSH (by jeanphile)] - Use the SSH protocol very easily in your code.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=185329 STUN (by j0kky)] - STUN is a protocol that permits you to know your external IP but, more interesting, your external port associated to your internal port.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169774 TCPServer (by Jefrey)] - Multi client, event-based, able to bind console app to socket.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=57022 UPnP Protocol (by ptrex)] - UPnP - Read and Control your devices in side out.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84133 WinHTTP (by trancexx)] - 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 -Ultima-)] - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=191954 WSA_NBTCP (by ripdad)] - Non-Blocking Transmission Control Protocol&lt;br /&gt;
&lt;br /&gt;
== Maths ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170658 Advanced Math UDF (by scintilla4evr)] - Advanced mathematical functions (primes, number sequences, interpolate, calculate values of functions like Riemann zeta etc.).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=102686 Advanced rounding (by Mat)] - Support for different measures of accuracy and 8 ways to resolve tie breaks.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83529 Big number (by eukalyptus)] - 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=106551 Decimal To fraction (by Malkey)] - Converts any decimal number to a fraction. Example: 1.2 to 6/5.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/319-eigen4autoit/ Eigen4AutoIt (by RFTC)] - This library allows you to perform fast matrix operations on large numerical data sets, and much more ....&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=140789 MathsEx UDF (by PhoenixXL)] - Functions for Carrying Out More Advanced Mathematical Calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81189 Number base conversion (by james3mg)] - From, to and between positive bases less than 63 (decimals supported).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117156 NumToWord (by Mat)] - Convert numerals to a human readable string.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=108803 Polynomials (by Mat)] - Functions for using polynomials.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83091 Primes (by jennico)] - Many functions dealing with prime number generation and calculations.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94770 Roman Numerals (by AZJIO)] - Roman Numerals.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98160 Root function (by Mat)] - Working out real roots of numbers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163899 StringAPL (by minx)] - inline APL interpreter.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=82722 Trigonometric and math functions (by trancexx)] - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().&lt;br /&gt;
&lt;br /&gt;
== Media ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=95357 FreeImage library (by ProgAndy)] - Various operations on images, such as rotate, resize, flip.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127263 HtmlHelp (by Geodetic)] - HtmlHelp UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyperCam (by seangriffin)] - HyperCam (Screen Recording) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=182535 HyCam2 (by willichan)] - Automation for HyCam2 screen recording utility.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50608 OCR (by ptrex)] - Real OCR in AU3 - MODI with MS Office 2003.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=89542 OCR (by seangriffin)] - Tesseract (Screen OCR) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51054 Printer controller (by martin)] - 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 GRS)] - Printing from AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161831 RTF_Printer (by mLipok)] - Printing RichEdit in the background.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=94834 Simple DirectMedia Layer (by AdmiralClaws)] - Adds support for joysticks, CDs, 2D graphics, timers. See [http://www.libsdl.org/ SDL website] for more information.&lt;br /&gt;
&lt;br /&gt;
===Graphics and image===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113881 au3Irrlicht2 (by JRowe)] - Combining Irrlicht and AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=130263 AVI writing udf (by monoceres)] -  UDF for creating uncompressed avi:s from bitmap files (support for compressing the video, may or may not appear).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27362 Bitmap Library (by evilertoaster)] - Bitmap Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=13096 ImageGetInfo (by Lazycat)] - 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=70506 IrrLicht (by A. Percy)] - A 3D graphics engine suitable for creating games.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=151011 OpenGL (by LarsJ)] - 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 minx)] - 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 seangriffin)] - VLC (Media Player) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=91316 VLC Media Player (by ptrex)] - VLC Media Player.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=27352 WMP (by ConsultingJoe)] - Windows Media Player UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=44008 WMP - Media Controls (by CFire)] - Another Windows Media Player UDF.&lt;br /&gt;
&lt;br /&gt;
===Sound===&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83481 BASS Function Library (by BrettF)] - 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=173808 libZPlay (by Danyfirex)] - Multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=37072 MIDI (by eynstyne)] - MIDI UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114742 SAPIListBox (by seangriffin)] - SAPIListBox (Speech Recognition) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=100439 TTS (by Beege)] - Text-to-Speech UDF.&lt;br /&gt;
&lt;br /&gt;
== PDF ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162195 Acrobat Reader - ActiveX Viewer (by mLipok)] - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object &amp;quot;AcroPDF.PDF.1&amp;quot;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164469 Debenu PDF Viewer SDK (by mLipok)] - 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=160875 Debenu Quick PDF Library (by mLipok)] - A collection of functions for Debenu Quick PDF Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75832 FoxIt Reader (by ptrex)] - PDF Reader in AU3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=118827 MPDF (by taietel)] - Create PDF from your application.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=42776 PDFCreator (by ptrex)] - Automation of PDFCreator allows you to create and manipulate PDF files.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=170550 PDFCreator (by mLipok)] - UDF for PDFCreator v1.x.x with working EVENTs Handler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=32261 _StringToPDF (by Tam0r)] - Write a string to a PDF file and specify font size, type etc.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150819 VirusTotal (by Danyfirex)] - 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=169333 CrowdinAPI (by mLipok)] - Uses the [https://crowdin.com/page/api crowdin.net website API] for some functions (create projects, add and update files, download translations or integrate localization).&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/290-dropbox-authenticator/ Dropbox authenticator (by Gimerly)] - Dropbox authenticator.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158106 Easypost (by dcat127)] - Print USPS Postage Labels.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=114801 eBay (by seangriffin)] - eBay UDF (functions GetItemStatus and GetSingleItem from the &amp;quot;Shopping API&amp;quot;).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=141340 Gmail (by PhoenixXL)] - Remote Gmail (UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=98504 Google Functions (by Beege)] - Google Functions (Suggestions, Definitions, Translate, Convert).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=115437 Google Maps (by seangriffin)] - Google Maps UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=70675 iTunes (by torels)] - iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101802 iTunes (by Beege)] - Another iTunes UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150985 No-IP (by Nessie)] - With this UDF you can simply update your no-ip hostname(s) and retrieve the ip address of an no-ip address.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=150838 PasteBin (by mrflibblehat)] - Pastebin UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121767 Skype (by FireFox)] - Skype4COM provides an ActiveX interface to the Skype API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113234 Teamspeak 3 (by chipDE)] - Teamspeak 3 UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186944 TeamViewer API (by mLipok)] - A collection of function for use with TeamViewer API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186381 Telegram Bot UDF (by LinkOut)] - UDF for [https://core.telegram.org/api Telegram messenger API].&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=166547 TVmaze.com API (by BBs19)] - TVmaze.com API UDF (TV-Series).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=116600 Twitter (by seangriffin)] - Twitter UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149247 Yahoo Weather (by Nessie)] - YWeather UDF - Yahoo Weather API.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=112775 Youtube Uploader (by BrettF)] - AYTU - AutoIt Youtube Uploader.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50880 ACL (by ptrex)] - Set ACL on windows Objects.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134508 ACL (by FredAl)] - Do most everything with the DACL and ownership on all types of objects: Files or folders, Registry keys, services, Kernel and WMI objects, etc.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=184937 CertUtil UDF (by mLipok)] - Wrapper for windows certutil.exe (command-line program that is installed in Windows as part of Certificate Services).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=113560 FileSystemMonitor (by seangriffin)] - FileSystemMonitor UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145158 Firewall (by JLogan3o13)] - Windows Firewall UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=194015 Firewall policy2 (by Bilgus)]- Provides access to the firewall policy for Windows Vista+&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111018 ITaskBarList (by Beege)] - ITaskBarList UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=74118 Local account (by engine)] - Local account UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161193 Magnifier Functions (by Ascend4nt)] - Exposes most of the useful Magnifier API functions available since Windows Vista.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=75250 Registry (by engine)] - Windows Registry UDFs.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50551 Registry (by seanhart)] - RegWriteAllUsers / RegDeleteAllUsers.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=124508 Startup (by guinness)] - Create Startup entries in the Startup Folder or Registry.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164756 SCCM (by JLogan3o13)] - Systems Center Configuration Manager Library.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=134628 System restore (by FredAI)] - System restore UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186111 SubstWrapper UDF (by mLipok)] - Wrapper for windows subst.exe command - (Associates a path with a drive letter).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135994 Taskplanner/Taskscheduler COM (by Allow2010)] - an UDF for using the Windows Taskplaner / Task Scheduler.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=83355 Task Scheduler (by dbzfanatic)] - Task Scheduler UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173934 TTS UDF (by Kanashius)] - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=158377 UAC (by AdamUL)] - User Account Control (UAC) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=175719 Utter (by Surya)] - Utilizing more of SAPI (Speech Recognition UDF).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=127075 WIMGAPI (by Homes32)] - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=28436 Windows Events (by Emperor)] - Create your own Windows events.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=6487 Windows Service Control functions (by SumTingWong)] - Some limited functions to control services (create, start, stop, delete, check ...).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81880 Windows Services (by engine)] - Windows Services UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163178 WRMF (by Luigi)] - WRMF - Windows Registry Monitor Call Function.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=145099 _AdlibEnhance (by JScript)] - Enhance Adlib to call functions with parameters, pause and resume.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=160936 Android (by Moriba)] - Android UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=97826 Animated tray icons (by Yashied)] - Make animated tray icons easily.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=155442 ArrayMultiColSort (by Melba23)] - Function to sort a 2D array on several columns.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=180467 ArrayWorkshop (by czardas)] - Multidimensional array functions.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=59174 Associative array functions (by Nutster)] - The functions can be used to manage a version of associative arrays in single AutoIt variables. &lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163577 Atom Table (by Ascend4nt)] - Store (add, find, delete, and query) strings locally (at program level) or globally (at OS level) with unique numerical identifiers.&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;
* [http://www.autoitscript.com/forum/index.php?showtopic=131037 Binary (by Ward)] - Binary UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162366 BinaryCall (by Ward)] - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=81267 Clipboard History (by wraithdu)] - Save and restore the entire clipboard contents. Inspired by AHK&#039;s ClipboardAll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=169610 CmdLine (by Jefrey)] - Collection of functions to parse command line arguments.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126569 Console (by Shaggi)] - Functions and features to work wiht Console input/output.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=121833 Copy (by Yashied)] - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=154684 Date / Time convert (by Melba23)] - UDF to transform date/time formats.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=55994 DDEML (by doudou)] - 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=99106 _DLLStructDisplay (by Ascend4nt)] - Show Struct in ListView.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=111613 FASM (by Ward)] - The Embedded Flat Assembler (FASM) UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157689 _FileGetMimeType (by Wiliat87)] - _FileGetMimeType UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=117033 File locking with cooperative semaphores (by willichan)] - Simple file locking without a server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=157241 FindMimeFromData (by twbradio)] - FindMimeFromData using urlmon.dll.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=181997 Font Icon UDF (by J2TeaM)] - This is an UDF that helps you use Font Awesome in your AutoIt project.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=68422 HotString UDF (by jvanegmond)] - Similar to the HotKey function but trigger on a string, instead of a key or key combination.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=86672 Inline Assembly (by Ward)] - Assembles the code to binary machine code and runs it.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=161628 LFN (by orbs)] - LFN UDF - overcome MAX_PATH limit of 256 chars.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=173946 LASM - Light Assembler (by minxomat)] - This is the Inline UDF for an Assembler&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=77463 MemoryDll (by Ward)] - Embed DLLs in script and call functions from memory.&lt;br /&gt;
* [http://www.autoitscript.com/forum/files/file/147-mruau3 MRU (by Yashied)] - Most Recently Used (MRU) List Automation UDF Library for AutoIt3.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=186853 _Multiprocess (by jguinch)] - Run several external programs at the same time and retrieve the exit code of each process.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=188158 .NET Common Language Runtime (CLR) Framework (by Danyfirex, Junkew, Larsj, ptrex, Trancexx)] - Allows AutoIt to access .NET Class Libraries.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=101733 NoFocusLines (by Melba23)] - Remove the dotted focus lines from buttons, sliders, radios and checkboxes.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=149176 NotifyIcon (by FireFox)] - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=63318 PixelGetColor (by Manadar)] - Get or Read Pixel from Memory UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=167024 RDC (by Yashied)] - ReadDirectoryChanges Wrapper.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51103 Resources (by Zedna)] - Resources UDF.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162499 ResourcesEx (by guinness)] - 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=111215 Restart UDF (by Yashied)] - Allows to restart a script from any location with full restoration of the original command line parameters.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=51547 SciLexer (by Kip)] - SciLexer UDF (SciLexer is part of SciTE).&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=162033 Spell Checker (by iCode)] - Spell Checker UDF - Hunspell.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=164444 Synology filestation (by nend)] - UDF for users of Synology NAS server.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=163328 TimeConvert UDF (by orbs)] - Convert UTC to/from local time, and/or reformat the string representation.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=125251 TVExplorer (by Yashied)] - Allows to create TreeView (TV) Explorer controls that display a tree of files and folders.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=129196 WinSnap UDF (by Beege)] - Automatic Window Alignment UDF to easily apply that &amp;quot;snappy edge&amp;quot; effect to your GUI.&lt;br /&gt;
[[Category:UDF]]&lt;/div&gt;</summary>
		<author><name>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12981</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=12981"/>
		<updated>2015-04-24T22:00:32Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Microsoft Office Automation */ Microsoft Office Word moved over Microsoft Office Excel&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 ... )] - 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 Word - A UDF is included in AutoIt. Link to the [[Word_UDF|documentation]] pages.&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 PowerPoint Wrapper (by Toady )] - Automate Microsoft PowerPoint.&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>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12980</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=12980"/>
		<updated>2015-04-24T21:59:44Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Microsoft Office Automation */ ===Microsoft Office Automation=== supplemented with information about the authors&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 ... )] - 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 PowerPoint Wrapper (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>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12979</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=12979"/>
		<updated>2015-04-24T21:52:19Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Social Media and other Website API */ CrowdinAPI&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 ... )] - 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] - 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 (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>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12978</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=12978"/>
		<updated>2015-04-24T21:51:48Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Social Media and other Website API */ CrowdinAPI UDF description FIXED&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 ... )] - 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] - 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 (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] - 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>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12977</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=12977"/>
		<updated>2015-04-24T21:50:41Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* GUI Additions */ some UDF Desc FIXED&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 ... )] - 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] - 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 (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] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API (by ... )] 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>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12976</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=12976"/>
		<updated>2015-04-24T21:49:25Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Media */ Simple DirectMedia Layer UDF FIXED&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 ... )] - 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] - 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 (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 (by ... )])&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 (by ... )])&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] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API (by ... )] 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>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12975</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=12975"/>
		<updated>2015-04-24T21:48:15Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Hardware */ CommAPI Fixed&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 ... )] - 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] - 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 (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 (by ... )] 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 (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 (by ... )])&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 (by ... )])&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] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API (by ... )] 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>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12974</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=12974"/>
		<updated>2015-04-24T21:47:27Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Automation */ Active Directory FIXED&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 ... )] - 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] - 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 (by ... )] - OpenOfficeCalc UDF&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI (by ... )] (by ... )] - 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 (by ... )] 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 (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 (by ... )])&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 (by ... )])&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] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API (by ... )] 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>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12973</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=12973"/>
		<updated>2015-04-24T21:46:30Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Microsoft Office Automation */ fixed&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 ... )] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation (by ... )] (by ... )] 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] - 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 (by ... )] - OpenOfficeCalc UDF&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[CommAPI (by ... )] (by ... )] - 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 (by ... )] 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 (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 (by ... )])&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 (by ... )])&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] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API (by ... )] 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>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12972</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=12972"/>
		<updated>2015-04-24T21:44:08Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: /* Social Media and other Website API */&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 ... )] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation (by ... )] (by ... )] 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 ... )] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel - A UDF is included in AutoIt. Link to the [[Excel_UDF|documentation (by ... )] (by ... )] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by ... )] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by ... )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation (by ... )] (by ... )] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 PowerPoint Wrapper (by ... )] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word - A UDF is included in AutoIt. Link to the [[Word_UDF|documentation (by ... )] (by ... )] 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 (by ... )] (by ... )] - 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 (by ... )] 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 (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 (by ... )])&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 (by ... )])&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] - This is UDF for connect with [https://crowdin.com/page/api crowdin.net website API (by ... )] 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>Mlipok</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_Defined_Functions&amp;diff=12971</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=12971"/>
		<updated>2015-04-24T21:42:42Z</updated>

		<summary type="html">&lt;p&gt;Mlipok: added mass string &amp;quot;(by ...)&amp;quot;&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 ... )] - Extensive library to control and manipulate the Windows active directory. Link to the [[Active_Directory_UDF_-_General|documentation (by ... )] (by ... )] 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 ... )] - Automate Microsoft Access.&lt;br /&gt;
* Microsoft Office Excel - A UDF is included in AutoIt. Link to the [[Excel_UDF|documentation (by ... )] (by ... )] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=135312 Microsoft Office Excel Charts (by ... )] - Creating charts using Microsoft Excel.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=126305 Microsoft Office Outlook (by ... )] - Automate Microsoft Outlook. Link to the [[OutlookEX_UDF_-_General|documentation (by ... )] (by ... )] pages.&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=50254 PowerPoint Wrapper (by ... )] - Automate Microsoft PowerPoint.&lt;br /&gt;
* Microsoft Office Word - A UDF is included in AutoIt. Link to the [[Word_UDF|documentation (by ... )] (by ... )] 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 (by ... )] (by ... )] - 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 (by ... )] 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 (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 (by ... )])&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 (by ... )])&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 (by ... )] 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>Mlipok</name></author>
	</entry>
</feed>