<?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=JonTest</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=JonTest"/>
	<link rel="alternate" type="text/html" href="https://www.autoitscript.com/wiki/Special:Contributions/JonTest"/>
	<updated>2026-04-30T05:00:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Function_list&amp;diff=10817</id>
		<title>Function list</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Function_list&amp;diff=10817"/>
		<updated>2012-08-05T02:00:31Z</updated>

		<summary type="html">&lt;p&gt;JonTest: Removed a couple of outdated functions and added more new functions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This function list should be a duplicate of the one found on the [http://www.autoitscript.com/autoit3/docs/functions.htm function list] found in the standard documentation. If the content differs, then the other page takes precidence. Some effort has been made to add value to the contents of this page over that one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Functon name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Abs]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Calculates the absolute value of a number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ACos]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Calculates the arcCosine of a number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[AdlibUnregister]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Unregisters an Adlib function.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[AdlibRegister]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Registers an Adlib function.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Asc]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the ASCII code of a character.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[AscW]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the unicode code of a character.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ASin]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Calculates the arcSine of a number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Assign]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Assigns a variable by name with the data.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ATan]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Calculates the arcTangent of a number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[AutoItSetOption]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the operation of various AutoIt functions/parameters.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[AutoItWinGetTitle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the title of the AutoIt window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[AutoItWinSetTitle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the title of the AutoIt window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Beep]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Plays back a beep to the user.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Binary]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a binary representation of an expression.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[BinaryLen]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the number of bytes in a binary variant.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[BinaryMid]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extracts the number of bytes from a binary variant.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[BinaryToString]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Converts a binary variant into a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[BitAND]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Performs a bitwise AND operation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[BitNOT]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Performs a bitwise NOT operation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[BitOR]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Performs a bitwise OR operation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[BitRotate]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Performs a bit shifting operation with rotation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[BitShift]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Performs a bit shifting operation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[BitXOR]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Performs a bitwise exclusive OR operation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[BlockInput]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Disables/Enables user input.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Break]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Enable/Disable the user&#039;s ability to exit a script from the tray icon menu.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Call]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Calls a user-defined function contained in a string parameter.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[CDTray]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Opens or closes the CD tray.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Ceiling]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a number rounded up to the next integer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Chr]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a character corresponding to an ASCII code.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ChrW]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a character representation to a unicode code.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ClipGet]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves text from clipboard.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ClipPut]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Writes text to clipboard.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ConsoleRead]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Read from STDIN stream of the AutoIt script process.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ConsoleWrite]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Writes to the STDOUT stream.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ConsoleWriteError]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Writes data to the STDERR stream.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlClick]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends a mouse click command to a given control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlCommand]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends a command to a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlDisable]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Disables a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlEnable]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Enables a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlFocus]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets input focus to a given control on a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlGetFocus]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the ControlRef# of the control that has keyboard focus within a specified window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlGetHandle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the internal handle of a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlGetPos]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the position and size of a control relative to it&#039;s window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlGetText]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves text from a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlHide]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Hides a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlListView]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends a command to a ListView32 control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlMove]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moves a control within a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlSend]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends a string of characters to a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlSetText]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets text of a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlShow]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Unhides a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ControlTreeView]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends a command to a TreeView32 control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Cos]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Calculates the Cosine of a value.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Dec]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a numeric representation of a hexadecimal string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DirCopy]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Copy a directory.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DirCreate]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Create a directory.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DirGetSize]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the size in bytes of a given directory.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DirMove]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Move/Rename a directory.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DirRemove]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Delete a directory.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllCall]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Dynamically calls a function in a DLL.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllCallAddress]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Dynamically calls a function at a specific memory address.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllCallbackFree]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Frees a previously created handle created with DLLCallbackRegister.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllCallbackGetPtr]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the pointer to a callback function that can be passed to the Win32 API.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllCallbackRegister]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a user-defined DLL Callback function.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllClose]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Closes a previously opened DLL.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllOpen]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Opens a DLL file for use in DllCall.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllStructCreate]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a C/C++ style structure to be used in DllCall.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllStructGetData]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;returns the data of an element of the struct.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllStructGetPtr]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the pointer to the struct or an element in the struct.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllStructGetSize]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the size of the struct in bytes.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DllStructSetData]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the data of an element in the struct.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveGetDrive]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns an array containing the enumerated drives.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveGetFileSystem]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns File System Type of drive.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveGetLabel]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns Volume Label of a drive.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveGetSerial]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns Serial Number of a drive.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveGetType]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns drive type.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveMapAdd]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Maps a network drive.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveMapDel]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Disconnects a network drive.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveMapGet]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the details of a mapped drive.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveSetLabel]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the Volume Label of a drive.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveSpaceFree]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the free disk space of a path in Megabytes.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveSpaceTotal]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the total disk space of a path in Megabytes.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[DriveStatus]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the status of the drive as a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EnvGet]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves an environment variable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EnvSet]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Writes an environment variable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EnvUpdate]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Refreshes the OS environment.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Eval]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the value of the variable defined by a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Execute]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Execute an expression.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Exp]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Calculates &#039;&#039;&#039;&amp;lt;i&amp;gt;e&amp;lt;/i&amp;gt;&#039;&#039;&#039; to the power of a number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileChangeDir]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the current working directory.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileClose]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Closes a previously opened text file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileCopy]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Copies one or more files.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileCreateNTFSLink]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates an NTFS hardlink to a file or directory.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileCreateShortcut]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a shortcut (.lnk) to a file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileDelete]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Delete one or more files.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileExists]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a file or directory exists.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileFindFirstFile]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a search &amp;quot;handle&amp;quot; according to file search string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileFindNextFile]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a filename according to a previous call to FileFindFirstFile.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileGetAttrib]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a code string representing a file&#039;s attributes.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileGetEncoding]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Determines the text encoding used in a file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileGetLongName]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the long path + name of the path + name passed.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileGetPos]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the current file position.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileGetShortcut]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves details about a shortcut.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileGetShortName]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the 8.3 short path+name of the path+name passed.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileGetSize]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;returns the size of a file in bytes.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileGetTime]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the time and date information for a file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileGetVersion]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the &amp;quot;File&amp;quot; version information.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileInstall]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Include and install a file with the compiled script.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileMove]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moves one or more files.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileOpen]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Opens a text file for reading or writing.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileOpenDialog]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Initiates a Open File Dialog.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileRead]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Read in a number of characters from a previously opened text file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileReadLine]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Read in a line of text from a previously opened text file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileRecycle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends a file or directory to the recycle bin.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileRecycleEmpty]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Empties the recycle bin.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileSaveDialog]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Initiates a Save File dialog.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileSelectFolder]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Initiates a Browse For Folder dialog.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileSetAttrib]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the attributes of one or more files.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileSetTime]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the timestamp of one or more files.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileWrite]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Append a line of text to the end of a previously opened text file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FileWriteLine]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Append a line of text to the end of a previously opened text file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Floor]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a number rounded down to the nearest integer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[FtpSetProxy]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the internet proxy to use for ftp access.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICreate]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a GUI window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateAvi]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates an AVI video control for the GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateButton]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a Button control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateCheckbox]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a Checkbox control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateCombo]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creats a ComboBox control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateContextMenu]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a context menu for a GUI or an underlying control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateDate]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a date control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateDummy]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a Dummy control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateEdit]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates an Edit control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateGraphic]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a Graphic control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateGroup]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a Group control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateIcon]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates an icon within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateInput]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates an Input control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateLabel]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a static Label control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateList]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a List control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateListView]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a ListView control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateListViewItem]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a ListView item.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateMenu]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a Menu control for a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateMenuItem]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a MenuItem control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateMonthCal]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a month calendar control for the GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateObj]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates an ActiveX control for a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreatePic]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a Picture control for a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateProgress]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a Progress control for a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateRadio]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a Radio button control within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateSlider]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a Slider control for the GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateTab]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a Tab control for the GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateTabItem]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a TabItem.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateTreeView]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a TreeView control for a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateTreeViewItem]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a TreeViewItem.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlCreateUpdown]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates an UpDown control for a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlDelete]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Deletes a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlGetHandle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the handle for a control and some special (item) handles.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlGetState]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Gets the current state of a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlRead]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Reads the state or data of a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlRecvMsg]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends a message to a control and retrieves information in lParam.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlRegisterListViewSort]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Registers a user defined function for an internal listview sorting callback function.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSendMsg]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends a message to a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSendToDummy]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends a message to a Dummy control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetBkColor]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the background color of a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetColor]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the text color of a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetCursor]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the mouse cursor icon for a particular control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetData]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Modifies the data for a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetDefBkColor]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the default background color of all controls within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetDefColor]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the default text color of all controls within a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetFont]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the font for a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetGraphic]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Modifies the data for a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetImage]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets a control&#039;s bitmap/icon image.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetLimit]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Limits the number of characters/pixels for a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetOnEvent]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Defines a user-defined function to be called when a control is clicked.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetPos]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the position of a control within the GUI window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetResizing]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Defines the resizing method for a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetState]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the state of a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetStyle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the style of a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUICtrlSetTip]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the tip text associated with a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUIDelete]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Deletes a GUI and all underlying controls.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUIGetCursorInfo]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Gets the mouse cursor position relative to the GUI window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUIGetMsg]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Polls a GUI for an event.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUIGetStyle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;retrieves the styles of a GUI window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUIRegisterMsg]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Register a user defined function for a known Windows Message ID (WM_MSG).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUISetAccelerators]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the accelerator table to be used in a GUI.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUISetBkColor]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the background color of a GUI window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUISetCoord]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the absolute coordinates for the next control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUISetCursor]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sest the mouse cursor icon for a GUI window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUISetFont]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the default font for a GUI window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUISetHelp]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets an executable file that will run when F1 is pressed.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUISetIcon]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the icon used in a GUI window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUISetOnEvent]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Defines a user function to be called when a system button is pressed.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUISetState]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the state of a GUI window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUISetStyle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the styles of a GUI window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUIStartGroup]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Defines that any subsequent controls that are created will be &amp;quot;grouped&amp;quot; together.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[GUISwitch]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Switches the current window used for GUI functions.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Hex]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a string representation of an integer or of a binary type converted to hexadecimal.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[HotKeySet]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets a hotkey that calls a user function.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[HttpSetProxy]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the internet proxy to use for http access.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[HttpSetUserAgent]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the HTTP user-agent string which is sent with all Inet requests.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[HWnd]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Converts an expression into an HWND handle.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[InetClose]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Closes a handle returned from InetGet().&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[InetGet]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Downloads a file from the internet using the http or ftp protocol.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[InetGetInfo]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns detailed data for a handle returned from InetGet().&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[InetGetSize]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the size (in bytes) of a file located on the internet.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[InetRead]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Downloads a file from the internet using the HTTP, HTTPS or FTP protocol.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IniDelete]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Deletes a value from a standard format .ini file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IniRead]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Reads a value from a standard format .ini file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IniReadSection]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Reads all key/value pairs from a section in a standard format .ini file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IniReadSectionNames]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Reads all sections in a standard format .ini file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IniRenameSection]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Renames a section in a standard format .ini file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IniWrite]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Writes a value to a standard format .ini file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IniWriteSection]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Writes a section to a standard format .ini file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[InputBox]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Displays an input box requesting a user input string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Int]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the integer (whole) representation of an expression.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsAdmin]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if the current user has full administrator privileges.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsArray]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable is an array type.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsBinary]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable or expression is a binary type.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsBool]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable&#039;s base type is boolean.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsDeclared]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable has been declared.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsDllStruct]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable is a DllStruct type.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsFloat]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable or expression is a float-type.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsHWnd]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable&#039;s base type is a pointer and window handle.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsInt]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable or expression is an integer type.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsKeyword]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable is a keyword. (e.g. Default)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsNumber]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if variable&#039;s base type is numeric.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsObj]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable or expression is an object type.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsPtr]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable&#039;s base type is a pointer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[IsString]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a variable is a string type.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Log]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Calculates the natural logarithm of a number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[MemGetStats]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves memory related information.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Mod]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Performs the modulus operation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[MouseClick]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Perform a mouse click operation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[MouseClickDrag]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Perform a a mouse click and drag operation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[MouseDown]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Perform a mouse down event at the current mouse position.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[MouseGetCursor]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the cursor ID Number for the current Mouse Cursor.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[MouseGetPos]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the current position of the mouse cursor.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[MouseMove]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moves the mouse pointer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[MouseUp]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Performs a mouse up event at the current mouse position.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[MouseWheel]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moves the mouse wheel up or down. (NT/2k/XP only)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[MsgBox]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Displays a simple message box with optional timeout.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Number]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the numeric representation of an expression.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ObjCreate]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a reference to a COM object from the given classname.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ObjCreateInterface]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a reference to an object from the given classname/object pointer, interface identifier and description string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ObjEvent]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Handles incoming events from the given Object.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ObjGet]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves a reference to a COM object from an existing process or filename.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ObjName]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the name or interface description of an Object.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[OnAutoItExitRegister]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Registers a function to be called when AutoIt exits.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[OnAutoItExitUnregister]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Unregisters a function to be called when AutoIt exits.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Ping]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pings a host and returns the roundtrip-time.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[PixelChecksum]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Generates a checksum for a region of pixels.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[PixelGetColor]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a pixel color according to x,y pixel coordinates.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[PixelSearch]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Searches a rectangle of pixels for the pixel color provided.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ProcessClose]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Terminates a named process.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ProcessExists]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks to see if a specified process exists.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ProcessGetStats]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns an array of information about a running process.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ProcessList]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns an array of currently running processes.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ProcessSetPriority]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the priority of a process.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ProcessWait]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pauses script execution until a given process exists.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ProcessWaitClose]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pauses a script execution until a given process does not exist.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ProgressOff]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Turns Progress window off.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ProgressOn]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a customizable progress bar window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ProgressSet]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the position and/or text of a previously created Progress bar window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Ptr]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Converts an expression into a pointer variant.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Random]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Generates a pseudo-random float-type number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[RegDelete]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Deletes a key or value from the registry.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[RegEnumKey]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Reads the name of a subkey according to it&#039;s instance.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[RegEnumVal]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Reads the name of a value according to it&#039;s instance.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[RegRead]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;reads a value from the registry.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[RegWrite]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a key or value in the registry.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Round]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a number rounded to a specified number of decimal places.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Run]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Runs an external program.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[RunAs]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Runs an external program under the context of a different user.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[RunAsWait]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Runs an external program under the context of a different user and pauses script execution until the program finishes.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[RunWait]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Runs an external program and pauses script execution until the program finishes.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Send]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends simulated keystrokes to the active window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SendKeepActive]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Attempts to keep a specified window active during Send().&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SetError]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Manually set the value of the @error macro.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SetExtended]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Manually set the value of the @extended macro.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ShellExecute]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Runs an external program using the ShellExecute API.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ShellExecuteWait]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Runs an external program using the ShellExecute API and pauses script execution until it finishes.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Shutdown]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Shuts down the system.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Sin]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Calculates the Sine of a number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Sleep]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pause script execution.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SoundPlay]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Play a sound file.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SoundSetWaveVolume]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the system wave volume by percent.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SplashImageOn]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a customizable image popup window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SplashOff]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Turns SplashText or SplashImage off.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SplashTextOn]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a customizable text popup window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Sqrt]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Calculates the square-root of a number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SRandom]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Set Seed for random number generation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StatusbarGetText]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the text from a standard status bar control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StderrRead]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Reads from the STDERR stream of a previously run child process.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StdinWrite]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Writes a number of characters to the STDIN stream of a previously run child process.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StdioClose]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Closes all resources associated with a process previously run with STDIO redirection.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StdoutRead]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Reads from the STDOUT stream of a previously run child process.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[String]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the string representation of an expression.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringAddCR]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Takes a string and prefixes all linefeed characters (Chr(10)) with a carriage return character (Chr(13)).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringCompare]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Compares two strings with options.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringFormat]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a formatted string. (Similar to C&#039;s sprintf() function.)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringFromASCIIArray]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Converts an array of ASCII codes to a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringInStr]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a string contains a given substring.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringIsAlNum]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a string contains only alphanumeric characters.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringIsAlpha]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a string contains only alphabetic characters.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringIsASCII]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a string contains only ASCII characters in the range 0x00 - 0x7f (0-127).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringIsDigit]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a string contains only digit (0-9) characters.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringIsFloat]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a string is a floating point number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringIsInt]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a string is an integer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringIsLower]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a string contains only lowercase characters.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringIsSpace]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a string contains only whitespace characters.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringIsUpper]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a string contains only uppercase characters.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringIsXDigit]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks if a string contains only hexadecimal digit (0-F) characters.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringLeft]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a number of characters from the left-hand side of a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringLen]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the number of characters in a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringLower]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Converts a string to lowercase.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringMid]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extracts a number of characters from a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringRegExp]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Check if a string fits a given regular expression pattern.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringRegExpReplace]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Replace text in a string based on a regular expression.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringReplace]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Replaces substrings in a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringRight]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a number of characters from the right-hand side of a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringSplit]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Splits up a string into substrings depending on the given delimiters.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringStripCR]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Removes all carriage return values (Chr(13)) from a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringStripWS]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Strips whitespace from a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringToASCIIArray]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Converts a string to an array containing the ASCII code of each character.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringToBinary]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Converts a string into binary data.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringTrimLeft]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Trims a number of characters from the left hand side of a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringTrimRight]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Trims a number of characters from the right hand side of a string.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[StringUpper]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Converts a string to uppercase.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Tan]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Calculates the Tangent of a number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TCPAccept]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Permits an incoming connection attempt on a socket.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TCPCloseSocket]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Closes a TCP socket.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TCPConnect]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Create a socket connected to an existing server.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TCPListen]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a socket listening for an incoming connection.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TCPNameToIP]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Converts an Internet name to IP address.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TCPRecv]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Receives data from a connected socket.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TCPSend]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends data on a connected socket.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TCPShutdown]],[[UDPShutdown]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Stops TCP/UDP services.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TCPStartup]],[[UDPStartup]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Starts TCP/UDP services.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TimerDiff]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the difference in time from a previous call to TimerInit().&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TimerInit]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns a timestamp (in milliseconds).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[ToolTip]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a tooltip anywhere on the screen.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TrayCreateItem]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a MenuItem control for the tray.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TrayCreateMenu]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creates a menu control for the tray menu.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TrayGetMsg]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Polls the tray to see if any events have occurred.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TrayItemDelete]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Deletes a menu/item control from the tray menu.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TrayItemGetHandle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the handle for a tray menu(item).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TrayItemGetState]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Gets the current state of a control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TrayItemGetText]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Gets the itemtext of a tray menu/item control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TrayItemSetOnEvent]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Defines a user-defined function to be called when a tray item is clicked.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TrayItemSetState]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the state of a tray menu/item control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TrayItemSetText]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the itemtext of a tray menu/item control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TraySetClick]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the clickmode of the tray icon - what mouseclicks will display the tray menu.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TraySetIcon]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Loads/Sets a specified tray icon.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TraySetOnEvent]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Defines a user function to be called when a special tray action happens.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TraySetPauseIcon]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Loads/Sets a specified tray pause icon.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TraySetState]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the state of the tray icon.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TraySetToolTip]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;(Re)Sets the tooltip text for the tray icon.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[TrayTip]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Displays a balloon tip from the AutoIt Icon.(2k/XP only)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[UBound]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the size of array dimensions.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[UDPBind]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Create a socket bound to an incoming connection.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[UDPCloseSocket]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Close a UDP socket.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[UDPOpen]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Open a socket connected to an existing server.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[UDPRecv]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Receives data from a opened socket.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[UDPSend]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sends data on an opened socket.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[VarGetType]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the internal type representation of a variant.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinActivate]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Activates (gives focus to) a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinActive]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks to see if a specified window exists and is currently active.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinClose]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Closes a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinExists]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Checks to see if a specified window exists.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinFlash]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Flashes a window in the taskbar.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinGetCaretPos]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Returns the coordinates of the caret in the foreground window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinGetClassList]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the classes from a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinGetClientSize]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the size of a given window&#039;s client area.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinGetHandle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the internal handle of a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinGetPos]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the position and size of a given window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinGetProcess]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;retrieves the ProcessID(PID) associated with a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinGetState]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the state of a given window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinGetText]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves the text from a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinGetTitle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrives the full title from a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinKill]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Forces a window to close.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinList]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Retrieves a list of windows.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinMenuSelectItem]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Invokes a menu item of a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinMinimizeAll]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Minimizes all windows.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinMinimizeAllUndo]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Undoes a previous WinMinimizeAll function call.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinMove]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Moves and/or resizes a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinSetOnTop]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes a window&#039;s &amp;quot;Always On Top&amp;quot; attribute.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinSetState]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Shows, hides, minimizes, maximizes, or restores a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinSetTitle]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the title of a window.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinSetTrans]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Sets the transparency of a window. (2k/XP or later)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinWait]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pauses execution of the script until the requested window exists.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinWaitActive]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pauses execution of the script until the requested window is active.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinWaitClose]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pauses the execution of a script until the requested window does not exist.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[WinWaitNotActive]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pauses execution of the script until the requested window is not active.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=10815</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=FAQ&amp;diff=10815"/>
		<updated>2012-08-05T01:19:28Z</updated>

		<summary type="html">&lt;p&gt;JonTest: Spelling, typos, and removal of a somewhat outdated reference.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of frequently asked questions asked on the forums.&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 incorrect 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 MsgBox&#039;s or ConsoleWrite&#039;s 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 MsgBox&#039;s.&lt;br /&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;Func dbg($msg)&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;, $msg)&lt;br /&gt;
 EndFunc&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;dbg(&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;
&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 (BETA ONLY):&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 (except on Windows 2000).&lt;br /&gt;
&lt;br /&gt;
==How can I prevent more than one copy of my script from running at once / 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 immediately exit if there is already one copy running. If you simply want know if another copy is running, you can use code similar to the next example:&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;
If _Singleton(&amp;quot;MyScriptName&amp;quot;, 1) = 0 Then&lt;br /&gt;
	; We know the script is already running. Let the user know.&lt;br /&gt;
	MsgBox(0, &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&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;&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(0, &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;
&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;
&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(0, &amp;quot;You clicked on&amp;quot;, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		Case $msg = $NoID&lt;br /&gt;
			MsgBox(0, &amp;quot;You clicked on&amp;quot;, &amp;quot;No&amp;quot;)&lt;br /&gt;
		Case $msg = $ExitID&lt;br /&gt;
			MsgBox(0, &amp;quot;You clicked on&amp;quot;, &amp;quot;Exit&amp;quot;)&lt;br /&gt;
		Case $msg = $GUI_EVENT_CLOSE&lt;br /&gt;
			MsgBox(0, &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 2000 or Windows XP Pro 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;
&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 &lt;br /&gt;
&lt;br /&gt;
done:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Func testme($param1, $param2 = &amp;quot;nothing&amp;quot;, $param3 = 5)&lt;br /&gt;
	MsgBox(0, &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;
&lt;br /&gt;
&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] 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;&lt;br /&gt;
$aTSR = _GetTotalScreenResolution()&lt;br /&gt;
MsgBox(0, &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;&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(0, &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(0, &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;
=== 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 look like a doofus.&lt;br /&gt;
* Use proper punctuation. Complete sentences need only one trailing punctuation mark -- not three!!! Writing a sentance without simple punctuation such as commas or other punctuation is considered lazy, which is considered a good judge of the poster&#039;s coding style. If you cannot summon the strength 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;
==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;
;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;
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(262144, &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;&lt;br /&gt;
Local $PixelCheck, $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 now it has changed.  Change this to what you want to happen when the colour in the region changes.&lt;br /&gt;
		Msgbox(48,&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;; Find a pure red pixel in the range 0,0-20,300&lt;br /&gt;
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )&lt;br /&gt;
If Not @error Then&lt;br /&gt;
	MsgBox(0, &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(0, &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.  This way you may have your script resistive against another active windows.  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;
To learn AutoIt you have two main options available to you:&lt;br /&gt;
&lt;br /&gt;
AutoIt 1-2-3, an interactive classroom by Valuater. You may find it here:&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;
There is also updated LxP&#039;s AutoIt tutorial by BrettF. You can find it here:&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;
There is also a book; AutoIt v3: Your Quick Guide by Andy Flessner.&lt;br /&gt;
You can buy the book from here:&lt;br /&gt;
[http://oreilly.com/catalog/9780596515126/ http://oreilly.com/catalog/9780596515126/]&lt;br /&gt;
&lt;br /&gt;
On YouTube there are many 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 http://www.youtube.com/results?search_query=autoit+tutorial&amp;amp;search_type=&amp;amp;aq=0&amp;amp;oq=AutoIt]&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, but search the forums for more information.  Posting topics like this will usually get the topic locked.&lt;br /&gt;
&lt;br /&gt;
Also posting the source (if a hacked decompiler was used) of other compiled scripts, or otherwise mentioning these hacked decompilers will probably get you banned.  It is also in violation of the AutoIt EULA (End-User-License-Agreement).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please see the [[Decompiling FAQ]] for more information.&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;$var = &amp;quot;I am a &#039;quote&#039; inside the string&amp;quot;&lt;br /&gt;
MsgBox (0, &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 (0, &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;$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 (0, &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 prevent decompiled code from being usable to the person that decompiled.  The first step is to obfuscate your code.  This causes the code to become unreadable.  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;
If you wish to simulate decompilation for your script, you can do this using the following simple example:&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 exe with the following command line parameters your source will be installed.&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;
&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;
*#** AutoIt Specific&lt;br /&gt;
*#*** General Help and Support (Most support questions)&lt;br /&gt;
*#*** GUI Support (Support for the Graphical User Interface)&lt;br /&gt;
*#** Non-AutoIT&lt;br /&gt;
*#*** Chat&lt;br /&gt;
*#*** Developer Chat (Usually for C++ questions.)&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.   Most of us would rather that you learn rather than just having a script written for 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 likes of [SOLVED] into the title, and redirecting people to the answer that helped you.  It can make the lives of people searching easier.&lt;br /&gt;
* Finally follow the rules:&lt;br /&gt;
** [http://www.autoitscript.com/forum/forum-6/announcement-13-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;
&lt;br /&gt;
Please note that these are independent, community-run message boards and not just a translation of this board.&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Tutorials&amp;diff=10814</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Tutorials&amp;diff=10814"/>
		<updated>2012-08-05T00:39:43Z</updated>

		<summary type="html">&lt;p&gt;JonTest: Minor spelling.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are many tutorials available for AutoIt. This page is an overview of a few known tutorials. More tutorials can possibly be found and will be added to this page in time.&lt;br /&gt;
&lt;br /&gt;
= AutoIt beginner =&lt;br /&gt;
These tutorials describe simple tasks and AutoIt syntax.&lt;br /&gt;
&lt;br /&gt;
* [[Tutorial_Core_Language|Language tutorial]] &#039;&#039;( cheat sheet )&#039;&#039;&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=21048 Welcome to AutoIt 1-2-3]&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showtopic=84960 Learning to script with AutoIt v3]&lt;br /&gt;
* [http://www.edgeofnowhere.cc/viewtopic.php?t=160857 Comi&#039;s Autoit v3 tutorial &amp;amp; guide]&lt;br /&gt;
&lt;br /&gt;
==Autoit-1-2-3==&lt;br /&gt;
&lt;br /&gt;
By Valuater, this tutorial is one of the most popular. Some key features are:&lt;br /&gt;
* Over 19 Interactive GUI&#039;s&lt;br /&gt;
* Over 50 Step-by-Step Scripts&lt;br /&gt;
* Verbal Instructions&lt;br /&gt;
* Complete with Demonstrations and Answers&lt;br /&gt;
* Exe Format for New People&lt;br /&gt;
&lt;br /&gt;
This is the second page you will see when running AutoIt 1-2-3.  It gives important links to necessary downloads and allows you to run demos that are supplied with the program.&lt;br /&gt;
[[image:Autoit-1-2-3.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
You can download AutoIt 1-2-3 from [http://www.autoitscript.com/forum/index.php?act=attach&amp;amp;type=post&amp;amp;id=10824 here], or check out the [http://www.autoitscript.com/forum/index.php?showtopic=21048&amp;amp;hl=tutorials Forum page].&lt;br /&gt;
&lt;br /&gt;
==Learning to script with AutoIt V3==&lt;br /&gt;
&lt;br /&gt;
This tutorial has example AU3 files contained in the text, printable exercise question/answer sheet and more. Originally by lxP and updated by BrettF, this is a great starting point for those who have never scripted before. For people who may have done other languages, this will also be a good back to basics tutorial.&lt;br /&gt;
&lt;br /&gt;
[http://www.autoitscript.com/forum/index.php?showtopic=84960 Download now].&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
These are almost 20 AutoIt video tutorials by 403forbidden. You can view all the tutorials at the link below.  They start at a beginner level and work up from there.&lt;br /&gt;
* [http://www.youtube.com/watch?v=BLU60CD-Poo AutoIt Video Tutorials - Part 1]&lt;br /&gt;
&lt;br /&gt;
= More complicated AutoIt commands and concepts =&lt;br /&gt;
*[[Arrays]]&lt;br /&gt;
*[[GUIRegisterMsg]]&lt;br /&gt;
*[[Interrupting a running function]]&lt;br /&gt;
*[[Variables - using Global, Local and ByRef]]&lt;br /&gt;
*[[Managing Multiple GUIs]]&lt;br /&gt;
*[[Setting Styles]]&lt;br /&gt;
*[[Moving and Resizing PopUp GUIs]]&lt;br /&gt;
*[[Modal MsgBox Styles]]&lt;br /&gt;
*[[Tabs]]&lt;br /&gt;
*[[Recursion]]&lt;br /&gt;
&lt;br /&gt;
= Tips to make your coding easier =&lt;br /&gt;
*[[Adding UDFs to AutoIt and SciTE]]&lt;br /&gt;
*[[Adding utilities to the SciTE Tools menu]]&lt;br /&gt;
&lt;br /&gt;
= Others =&lt;br /&gt;
* [http://www.autoitscript.com/forum/index.php?showannouncement=11&amp;amp;f=2 Game macro tutorial]&lt;br /&gt;
&lt;br /&gt;
= Books =&lt;br /&gt;
[http://www.oreilly.com/catalog/9780596515126/ AutoIt v3: Your Quick Guide (Andy Flesner, O&#039;Reilly)]&lt;br /&gt;
&lt;br /&gt;
This guide teaches you the foundations of the AutoIt v3 language. You will learn about variables and includes, graphical user interfaces, user-defined functions, and conditional and loop statements. You will then apply what you have learned in examples related to the system administration field.&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_talk:JonTest&amp;diff=9137</id>
		<title>User talk:JonTest</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_talk:JonTest&amp;diff=9137"/>
		<updated>2010-09-20T18:03:24Z</updated>

		<summary type="html">&lt;p&gt;JonTest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;H1&amp;gt;&lt;br /&gt;
Isoniazid.Buy cheap Isoniazid online without prescription.Order Isoniazid.&lt;br /&gt;
Buying Isoniazid online no rx cheap.Isoniazid overnight delivery.Isoniazid.&lt;br /&gt;
Discount generic Isoniazid.Buy Isoniazid online no prescription.Get online Isoniazid.&lt;br /&gt;
&amp;lt;/H1&amp;gt;&amp;lt;H3&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
Isoniazid overnight delivery.Isoniazid generic cheap.Buy Isoniazid generic cheap online.&lt;br /&gt;
Discount Isoniazid.Buy Isoniazid online without prescription.Order Isoniazid online.&lt;br /&gt;
Buy Isoniazid.Isoniazid.Order Isoniazid.Discount generic Isoniazid online without prescription.&amp;lt;/H3&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://go.rx-prime.com/go.php?sid=3&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://niqe.ru/newgifbanner.gif&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://go.rx-prime.com/go.php?sid=3&amp;quot;&amp;gt;&amp;lt;H1&amp;gt;Buy Isoniazid here! Click here!**&amp;lt;/H1&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Isoniazid&lt;br /&gt;
Isoniazid online&lt;br /&gt;
Isoniazid USA&lt;br /&gt;
Isoniazid Europe&lt;br /&gt;
buy Isoniazid without a perscription&lt;br /&gt;
acheter Isoniazid&lt;br /&gt;
Isoniazid posologia&lt;br /&gt;
buy Isoniazid pills&lt;br /&gt;
buy generic Isoniazid online&lt;br /&gt;
buy Isoniazid online&lt;br /&gt;
Isoniazid price&lt;br /&gt;
buy cheap Isoniazid&lt;br /&gt;
Isoniazid prix&lt;br /&gt;
Isoniazid prescription&lt;br /&gt;
Isoniazid tabletten&lt;br /&gt;
Isoniazid toronto&lt;br /&gt;
buy Isoniazid c.o.d.&lt;br /&gt;
buy discount Isoniazid&lt;br /&gt;
buy Isoniazid diet pill&lt;br /&gt;
do you know how i can buy Isoniazid&lt;br /&gt;
where to buy online cheap Isoniazid that ships to kentucky&lt;br /&gt;
buy Isoniazid uk&lt;br /&gt;
Isoniazid vancouver&lt;br /&gt;
Isoniazid buy&lt;br /&gt;
online Isoniazid&lt;br /&gt;
que son la ritalina, Isoniazid&lt;br /&gt;
Isoniazid dosage&lt;br /&gt;
buy Isoniazid with mastercard&lt;br /&gt;
buy cheap Isoniazid no perscription&lt;br /&gt;
Isoniazid &lt;br /&gt;
no rx Isoniazid&lt;br /&gt;
how long does Isoniazid stay in your system&lt;br /&gt;
bestalla Isoniazid&lt;br /&gt;
buy Isoniazid overnight delivery&lt;br /&gt;
generic Isoniazid&lt;br /&gt;
where can i buy Isoniazid without prescription&lt;br /&gt;
uk Isoniazid&lt;br /&gt;
Isoniazid drug&lt;br /&gt;
Isoniazid cheap mexican&lt;br /&gt;
Discount generic place to buy Isoniazid&lt;br /&gt;
Isoniazid versus Isoniazid&lt;br /&gt;
Isoniazid buy cod&lt;br /&gt;
buy Isoniazid cheap&lt;br /&gt;
Isoniazid comprar&lt;br /&gt;
Isoniazid prezzi&lt;br /&gt;
Isoniazid sale&lt;br /&gt;
buy Isoniazid pay cod&lt;br /&gt;
Isoniazid mg&lt;br /&gt;
cheap generic Isoniazid&lt;br /&gt;
Isoniazid online&lt;br /&gt;
venta Isoniazid&lt;br /&gt;
Isoniazid mg&lt;br /&gt;
buy Isoniazid online no&lt;br /&gt;
buy cheap Isoniazid without prescription&lt;br /&gt;
doctors in kansas city area who will prescribe Isoniazid&lt;br /&gt;
buy cheap diet Isoniazid pill&lt;br /&gt;
buy in Isoniazid uk&lt;br /&gt;
drug Isoniazid&lt;br /&gt;
buy Isoniazid&lt;br /&gt;
Isoniazid generico&lt;br /&gt;
Isoniazid for sale&lt;br /&gt;
where can i buy fda approved Isoniazid cod&lt;br /&gt;
buy Isoniazid drugs&lt;br /&gt;
buy Isoniazid without a rx&lt;br /&gt;
buy Isoniazid where&lt;br /&gt;
Isoniazid&lt;br /&gt;
Isoniazid tablets&lt;br /&gt;
buy Isoniazid online no prescription&lt;br /&gt;
where can i buy herbal Isoniazid&lt;br /&gt;
Isoniazid&lt;br /&gt;
Isoniazid buy online in stock&lt;br /&gt;
buy Isoniazid cheap without prescription&lt;br /&gt;
Isoniazid uk&lt;br /&gt;
buy Isoniazid without perscription&lt;br /&gt;
what does Isoniazid look like&lt;br /&gt;
where can i buy Isoniazid&lt;br /&gt;
where to buy Isoniazid online&lt;br /&gt;
venta de Isoniazid&lt;br /&gt;
Buying Isoniazid online&lt;br /&gt;
buy Isoniazid diet pills&lt;br /&gt;
buy cheap Isoniazid under without rx&lt;br /&gt;
no prescription Isoniazid&lt;br /&gt;
Isoniazid pill&lt;br /&gt;
Isoniazid rezept&lt;br /&gt;
achat Isoniazid&lt;br /&gt;
buy pharmacy Isoniazid waterview&lt;br /&gt;
Isoniazid more drug side effects&lt;br /&gt;
Isoniazid more drug uses&lt;br /&gt;
Isoniazid overdose&lt;br /&gt;
buy Isoniazid online us pharmacy&lt;br /&gt;
what is Isoniazid&lt;br /&gt;
Discount generic  Isoniazid&lt;br /&gt;
Isoniazid without a prescription&lt;br /&gt;
order Isoniazid online&lt;br /&gt;
que es Isoniazid&lt;br /&gt;
buy Isoniazid without a prescription&lt;br /&gt;
Isoniazid kaufen&lt;br /&gt;
Isoniazid vs. Isoniazid&lt;br /&gt;
cheap Isoniazid&lt;br /&gt;
Isoniazid pills&lt;br /&gt;
want to buy Isoniazid in USA&lt;br /&gt;
order Isoniazid&lt;br /&gt;
order buy Isoniazid online&lt;br /&gt;
acquisto Isoniazid&lt;br /&gt;
Isoniazid prezzo&lt;br /&gt;
acheter du Isoniazid&lt;br /&gt;
Isoniazid buy on line&lt;br /&gt;
where can i buy Isoniazid online&lt;br /&gt;
buy Isoniazid epharmacist&lt;br /&gt;
Isoniazid Buying&lt;br /&gt;
order Isoniazid online&lt;br /&gt;
buy Isoniazid online with paypal&lt;br /&gt;
where to buy Isoniazid without a prescription&lt;br /&gt;
buy Isoniazid cod&lt;br /&gt;
buy Isoniazid doctor prescription&lt;br /&gt;
picture of Isoniazid&lt;br /&gt;
drug test Isoniazid&lt;br /&gt;
buy cod Isoniazid&lt;br /&gt;
comprar el Isoniazid generico&lt;br /&gt;
buy Isoniazid no rx&lt;br /&gt;
buy Isoniazid in the uk&lt;br /&gt;
online Isoniazid&lt;br /&gt;
buy Isoniazid free consultation&lt;br /&gt;
buy Isoniazid no prescriptions&lt;br /&gt;
&amp;quot;buy Isoniazid online&amp;quot;&lt;br /&gt;
Isoniazid vendita&lt;br /&gt;
buy mg Isoniazid&lt;br /&gt;
le Isoniazid&lt;br /&gt;
Isoniazid best buy&lt;br /&gt;
buy Isoniazid fed ex&lt;br /&gt;
is Isoniazid addictive&lt;br /&gt;
buy Isoniazid in england&lt;br /&gt;
vente Isoniazid&lt;br /&gt;
prezzo Isoniazid&lt;br /&gt;
Isoniazid online buy&lt;br /&gt;
Isoniazid canada&lt;br /&gt;
buy cheap Isoniazid online&lt;br /&gt;
kopa Isoniazid&lt;br /&gt;
Isoniazid uk&lt;br /&gt;
buy Isoniazid without a credit card&lt;br /&gt;
buy Isoniazid in&lt;br /&gt;
Isoniazid no prescription to buy&lt;br /&gt;
Isoniazid pictures&lt;br /&gt;
Isoniazid online&lt;br /&gt;
where to buy Isoniazid&lt;br /&gt;
snorting Isoniazid&lt;br /&gt;
vendo Isoniazid&lt;br /&gt;
compra Isoniazid&lt;br /&gt;
buy Isoniazid online cheap&lt;br /&gt;
buy Isoniazid online without prescription&lt;br /&gt;
buy Isoniazid no perscription&lt;br /&gt;
picture of Isoniazid mylan milligram&lt;br /&gt;
buy Isoniazid shipped cod&lt;br /&gt;
discount Isoniazid&lt;br /&gt;
buy Isoniazid online no rx&lt;br /&gt;
Isoniazid side effects&lt;br /&gt;
rezeptfrei Isoniazid&lt;br /&gt;
pharmacy Isoniazid&lt;br /&gt;
Isoniazid buy Isoniazid&lt;br /&gt;
Isoniazid addiction&lt;br /&gt;
buy Isoniazid c.o.d&lt;br /&gt;
buy Isoniazid online with a debit card&lt;br /&gt;
Isoniazid effects&lt;br /&gt;
Isoniazid no prescription&lt;br /&gt;
Isoniazid sverige&lt;br /&gt;
il Isoniazid&lt;br /&gt;
effects of Isoniazid&lt;br /&gt;
Isoniazid bestellen&lt;br /&gt;
Isoniazid kop&lt;br /&gt;
buy cheap Isoniazid no prescription&lt;br /&gt;
Isoniazid overnight&lt;br /&gt;
buy cheap Isoniazid with dr. prescription&lt;br /&gt;
Isoniazid withdrawal symptoms&lt;br /&gt;
buy generic Isoniazid&lt;br /&gt;
Isoniazid buy&lt;br /&gt;
sobredosis de Isoniazid&lt;br /&gt;
Buying Isoniazid&lt;br /&gt;
vendita Isoniazid&lt;br /&gt;
how to buy Isoniazid without a prescription&lt;br /&gt;
Isoniazid&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=UnitTesting&amp;diff=8297</id>
		<title>UnitTesting</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=UnitTesting&amp;diff=8297"/>
		<updated>2010-05-10T16:14:43Z</updated>

		<summary type="html">&lt;p&gt;JonTest: /* Running our first tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Article in progress==&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Article in progress so constructive input about content is welcome. If you have language comments, want to flame me for spelling or have fine-picking needs please wait until this section is removed. .....&lt;br /&gt;
&lt;br /&gt;
==Initial notes==&lt;br /&gt;
This is just a initial page. I have been alowed by Lexholm AS (www.lexholm.no) to improve and release a UnitTesting tool we have made. In the process I have also been alowed to do some documentation to ease adoption of unit testing in the AutoIt comunity. This page will be about UnitTesting in general and how you can implement your own framework. If you want to use the tool by Lexholm when it is released (It is not documented at it&#039;s current state) that is fine. But our main goal with this article is to get you intrested in and caring so much for your code that you start using a automatic aproach to quality assurance of your own code. And therby AutoIt in general.&lt;br /&gt;
&lt;br /&gt;
AutoIt has moved from a limited special purpose scripting language to a real contender as an application language for small to medium sized projects. The developers of AutoIt has proven willingness to agresively improve and extend the language and a core function library. Betas are released frequently and with an asstonshing quality. It will suprice me and my colleges at Lexholm a lot if there is no automatic quality assurance philosophy and implementation used by the developers. &lt;br /&gt;
&lt;br /&gt;
With the methodes we describe here you can improve the quality of your own code and help the developer team assure that each beta release is as good as or better than the previous.&lt;br /&gt;
&lt;br /&gt;
==What is Unit Testing==&lt;br /&gt;
Unit Testing is about caring for the code you write. It is about breaking the code down to testable units. When code is easy to test it is also easy to maintain and improve. Unit Testing is about quality assurance and confidence in the code you write. It is about investing a littel time upfront to gain on your investment when the project grows or has been put on ice for a while. Unoit Testing is basically putting together the simplest &amp;quot;best practise&amp;quot; rules you find about coding and make those rules second nature to you while you code.&lt;br /&gt;
&lt;br /&gt;
==What Unit Testing is not==&lt;br /&gt;
It&#039;s not the silver bullet the &amp;quot;inventors&amp;quot; like it to be. Unit testing GUI applications can be a real challenge and sometimes impossible. But as your project evolves and you find hard to automate&lt;br /&gt;
&lt;br /&gt;
==Why should I adopt Unit Testing==&lt;br /&gt;
Everytime you make a test you assure that some pice of your code works as intended. By following some simple rules you can make a simple automatic testing engine to make sure your code will work as you intend it to. If it does not you have to do improvements.&lt;br /&gt;
&lt;br /&gt;
with current and later release of AutoIt. If it does not. You either have to decisde to keep a version of AutoIt where all your tests does pass. Or you will have a incredable easy time locating the areas of your code where you have to do updates.&lt;br /&gt;
&lt;br /&gt;
==How do I go about to do that==&lt;br /&gt;
&lt;br /&gt;
==The simplest framework posible==&lt;br /&gt;
Lets create a unittest.au3 file and save it in a include directory. A good thing to know is that you can have your own [[Tricks Autoit Configuration |include directory]]&lt;br /&gt;
=== The UTAssert function ===&lt;br /&gt;
Now open your unittest.au3 file and add the simplest possible assert function.&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
Func UTAssert($bool, $msg=&amp;quot;Assert Failure&amp;quot;, $erl=@ScriptLineNumber)&lt;br /&gt;
     If NOT $bool Then &lt;br /&gt;
         ConsoleWrite(&amp;quot;(&amp;quot; &amp;amp; $erl &amp;amp; &amp;quot;) := &amp;quot; &amp;amp; $msg &amp;amp; @LF)&lt;br /&gt;
     EndIf&lt;br /&gt;
     Return $bool&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A sample project using UTAssert ===&lt;br /&gt;
To make good use of our unit testing framework we should make sure our code is nicely divided into well defined function. If you are a hard core unit tester you should even know that the philosophy is to write the test code first and then fill in the code to make the tests work.&lt;br /&gt;
&lt;br /&gt;
So, let&#039;s see. We need a nice little project showing us what to do. Let&#039;s start with an really easy text book sample. We invent the function Add. Add can take two arguments. But if the first one is an array the second one is not needed. If two values are provided they are added and the sum is returned. If an array is provided all elements in the array is added together.&lt;br /&gt;
So a test setup would look something like this.&lt;br /&gt;
==== The first tests ====&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
UTAssert(Add(1) = 1)&lt;br /&gt;
UTAssert(Add(1,1) = 2)&lt;br /&gt;
UTAssert(Add(-1,1) = 0)&lt;br /&gt;
UTAssert(Add(-1,-1) = -2)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
That was the easy part. We should add as many tests as we need to make sure the code we write will be working under all expected curcumstances.&lt;br /&gt;
Now we have to cover the array requirement for the code&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
Local $arg1[9] = [1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;
UTAssert(Add($arg1) = 45)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
At this point none of the tests will pass because we have not written the function yet.&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
==== The function we are testing ====&lt;br /&gt;
Func Add($arg1, $arg2=0)&lt;br /&gt;
    Local $ret&lt;br /&gt;
    If IsArray($arg1) OR IsArray($arg2) Then &lt;br /&gt;
    Else&lt;br /&gt;
        $ret = $arg1 + $arg2&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $ret&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Running our first tests ===&lt;br /&gt;
Ok, So at this point we fire up the script and looks what it gives us&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
&amp;gt;Running:(3.2.2.0):E:\scite\..\autoit-v3.2.2.0\autoit3.exe &amp;quot;E:\CodeX\autoit\au3\au3UnitTest.au3&amp;quot;    &lt;br /&gt;
(23) := Assert Failure&lt;br /&gt;
+&amp;gt;AutoIT3.exe ended.rc:0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Obviously not so strange that the array test failed as we have not added any array code yet.&lt;br /&gt;
So, let&#039;s continue with our quest.&lt;br /&gt;
&lt;br /&gt;
=== Adding some more code to fix failed tests ===&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
Func Add($arg1, $arg2=0)&lt;br /&gt;
    Local $ret, $i&lt;br /&gt;
    If IsArray($arg1) OR IsArray($arg2) Then &lt;br /&gt;
	  If IsArray($arg1) Then &lt;br /&gt;
		 For $i = 0 to UBound($arg1) - 1&lt;br /&gt;
			$ret += Number($arg1[$i])&lt;br /&gt;
		 Next&lt;br /&gt;
	  Else&lt;br /&gt;
		 $ret += Number($arg1)&lt;br /&gt;
	  EndIf&lt;br /&gt;
    Else&lt;br /&gt;
        $ret = $arg1 + $arg2&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return $ret&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Another run with the tests we have created and.....Hey, it turnd out to be good. No red lines to jump to. That is really nice.&lt;br /&gt;
&lt;br /&gt;
=== Reconsider our scenarios ===&lt;br /&gt;
Now it&#039;s time to ask. Did I write a test case for every possible use case I can think of? No, actually I did not. I&#039;m missing several scenarios. &lt;br /&gt;
==== Adding more tests ====&lt;br /&gt;
&amp;lt;&amp;lt;source lang=autoit&amp;gt;&amp;gt;&lt;br /&gt;
Local $arg1[9] = [1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;
UTAssert(Add($arg1, 10) = 55)&lt;br /&gt;
UTAssert(Add($arg1, $arg1) = 90) ;NOTE*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Now this was not part of the original specification. Should I use it like this or should I return an error? If I return an error how will UTAssert react to it?&lt;br /&gt;
&lt;br /&gt;
==== Running with the added tests ====&lt;br /&gt;
Anyhow, running this will show us that our function needs more work.&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
&amp;gt;Running:(3.2.2.0):E:\scite\..\autoit-v3.2.2.0\autoit3.exe &amp;quot;E:\CodeX\autoit\au3\au3UnitTest.au3&amp;quot;    &lt;br /&gt;
(31) := Assert Failure&lt;br /&gt;
(32) := Assert Failure&lt;br /&gt;
+&amp;gt;AutoIT3.exe ended.rc:0&lt;br /&gt;
&lt;br /&gt;
==== Adding a bit of code again ====&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
So, we take a look at our code. After considering our code we find that both failures are easy to fix. All we have to do is to duplicate the code&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
If IsArray($arg1) Then &lt;br /&gt;
   For $i = 0 to UBound($arg1) - 1&lt;br /&gt;
	  $ret += Number($arg1[$i])&lt;br /&gt;
   Next&lt;br /&gt;
Else&lt;br /&gt;
   $ret += Number($arg1)&lt;br /&gt;
EndIf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And change the variable name $arg1 to $arg2.&lt;br /&gt;
&lt;br /&gt;
==== Identifying duplicate code blocks. ArgSum ====&lt;br /&gt;
But hey, any part of the code that is a duplicate like that should be refactored to it&#039;s own function. And that function should be tested separately with unit tests.&lt;br /&gt;
So&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Func ArgSum($arg)&lt;br /&gt;
   Local $ret, $i&lt;br /&gt;
   If IsArray($arg) Then &lt;br /&gt;
	  For $i = 0 to UBound($arg) - 1&lt;br /&gt;
		 $ret += Number($arg[$i])&lt;br /&gt;
	  Next&lt;br /&gt;
   Else&lt;br /&gt;
	  $ret += Number($arg)&lt;br /&gt;
   EndIf&lt;br /&gt;
   Return $ret&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How about some automation===&lt;br /&gt;
AutoIt is all about automation. So a Unit Test tool for AutoIt should be able to help us out. The big question is actually. Can it be simpler than it already is? Probably not much while you write the code. But when you want to try your code against a new release of AutoIt then there are lots of things we can automate.&lt;br /&gt;
====Automatically running the function we are working in====&lt;br /&gt;
Now, that is a possibility. Say, all you have to do to run the function you are working in is to hit some key combination. To achieve this we would need:&lt;br /&gt;
* A method of identifying the function we are working in.&lt;br /&gt;
* A small program to write some code including the module we are working in and call the appropriate function.&lt;br /&gt;
&lt;br /&gt;
As it is the SciTE4Autoit distribution has a way of identifying the function your caret is located in. You can observe this in the status bare on the left side. This information is also available through a variable.&lt;br /&gt;
&lt;br /&gt;
====A simple runner application====&lt;br /&gt;
At this point we need a simple runner application. It has to:&lt;br /&gt;
* Accept function to run and script location.&lt;br /&gt;
* Wrap up the code to run the test function associated with the function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
;#include &amp;lt;unittest.au3&amp;gt;&lt;br /&gt;
;&lt;br /&gt;
Func UTAssert($bool, $msg=&amp;quot;Assert Failure&amp;quot;, $erl=@ScriptLineNumber, $error=@error, $extended=@extended)&lt;br /&gt;
     If NOT $bool Then &lt;br /&gt;
         ConsoleWrite(&amp;quot;(&amp;quot; &amp;amp; $erl &amp;amp; &amp;quot;) := &amp;quot; &amp;amp; $msg &amp;amp; @LF)&lt;br /&gt;
     EndIf&lt;br /&gt;
	 If $error &amp;lt;&amp;gt; 0 Then SetError($error, $extended, $error)&lt;br /&gt;
     Return $bool&lt;br /&gt;
EndFunc&lt;br /&gt;
;&lt;br /&gt;
Func ParseCmdLine(ByRef $arr, ByRef $CmdLine)&lt;br /&gt;
#cs;$arr will be formated according to this&lt;br /&gt;
   ;$arr[0] = Array items Containing data. On top of that is maintenance items&lt;br /&gt;
   ;$arr[1 ... n] = File names&lt;br /&gt;
   ;$arr[n .... $arr[0]] = Function names&lt;br /&gt;
   ;$arr[$arr[0] + 1 = File names count&lt;br /&gt;
   ;This is given by [0] and previous $arr[$arr[0] + 2 = Function names count&lt;br /&gt;
#ce   &lt;br /&gt;
   Local $paths = 1&lt;br /&gt;
   ReDim $arr[$CmdLine[0] + 2]&lt;br /&gt;
   For $i = 0 to $CmdLine[0]&lt;br /&gt;
	  $arr[$i] = $CmdLine[$i]&lt;br /&gt;
   Next&lt;br /&gt;
   $arr[$arr[0] + 1] = $paths&lt;br /&gt;
EndFunc&lt;br /&gt;
;&lt;br /&gt;
Func err($msg, $nr, $terminate=0, $erl=@ScriptLineNumber)&lt;br /&gt;
   dbg($msg, $nr, 0, $erl)&lt;br /&gt;
   IF $terminate Then Exit&lt;br /&gt;
EndFunc&lt;br /&gt;
;&lt;br /&gt;
Func dbg($msg, $error = @error, $extended = @extended, $erl = @ScriptLineNumber)&lt;br /&gt;
	ConsoleWrite(&amp;quot;(&amp;quot; &amp;amp; $erl &amp;amp; &amp;quot;) : = (&amp;quot; &amp;amp; $error &amp;amp; &amp;quot;)(&amp;quot; &amp;amp; $extended &amp;amp; &amp;quot;) &amp;quot; &amp;amp; $msg &amp;amp; @LF)&lt;br /&gt;
	If $error &amp;lt;&amp;gt; 0 Then SetError($error, $extended, $error)&lt;br /&gt;
	Return $error&lt;br /&gt;
EndFunc   ;==&amp;gt;dbg&lt;br /&gt;
;&lt;br /&gt;
Func testParseCmdLine()&lt;br /&gt;
   Local $cmds[4] = [3, &amp;quot;testFunc1&amp;quot;, &amp;quot;c:\test&amp;quot;, &amp;quot;testFunc2&amp;quot;]&lt;br /&gt;
   Local $arr[4]&lt;br /&gt;
   ParseCmdLine($arr, $cmds)&lt;br /&gt;
   UTAssert(IsArray($arr))&lt;br /&gt;
   UTAssert($arr[0] = 3)&lt;br /&gt;
   UTAssert($arr[$arr[0] +1] = 1)&lt;br /&gt;
   UTAssert($arr[0] - $arr[$arr[0] +1] = 2)&lt;br /&gt;
   UTAssert($arr[1] = &amp;quot;c:\test&amp;quot;)&lt;br /&gt;
   ;TODO: Should we antisipate sequence of functions to call?&lt;br /&gt;
   UTAssert($arr[1] = &amp;quot;testFunc1&amp;quot;)&lt;br /&gt;
   UTAssert($arr[1] = &amp;quot;testFunc2&amp;quot;)&lt;br /&gt;
EndFunc&lt;br /&gt;
; =====================================================================&lt;br /&gt;
; Selftesting part&lt;br /&gt;
; =====================================================================&lt;br /&gt;
If StringInStr(@ScriptName, &amp;quot;au3UTRunner.au3&amp;quot;) Then &lt;br /&gt;
   testParseCmdLine()&lt;br /&gt;
EndIf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Automatically running all test functions in the file we are working in=====&lt;br /&gt;
&lt;br /&gt;
==Creating a UnitTestRunner==&lt;br /&gt;
Now here is an interesting topic. What is a test runner? The simplest approach again is just to use SciTE and watch for lines starting with parenthesis wrapped around a number. If done like this wee need a script calling all of our test functions. Actually not a bad solutions. It does not give you anny statistics. And we just love to know how many tests we pass each time. &lt;br /&gt;
&lt;br /&gt;
But, as we work on our UDF&#039;s we can do something like this.&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
#include-once&lt;br /&gt;
#inlcude &amp;lt;myFuncLib.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;UnitTest.au3&amp;gt;&lt;br /&gt;
If StringInStr(@ScriptName, &amp;quot;filename&amp;quot;) Then &lt;br /&gt;
    testMyFunc1()&lt;br /&gt;
EndFunc&lt;br /&gt;
Func testMyFunc1()&lt;br /&gt;
    UTAssert(1 = 1, &amp;quot;Now this is a solution&amp;quot;)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In Scite all we have to do now is hit F5 and look for those pesky error lines. Maybe not the cleanst possible but it is simple, and it works.&lt;br /&gt;
&lt;br /&gt;
===How about some automation===&lt;br /&gt;
====Automatically running the function we are working in====&lt;br /&gt;
====Automatically running all test functions in the file we are working in=====&lt;br /&gt;
&lt;br /&gt;
==Extending the framework==&lt;br /&gt;
===Testing advanced functions===&lt;br /&gt;
====Using a Setup function====&lt;br /&gt;
====Using a Teardown function====&lt;br /&gt;
==When our functions are to complex==&lt;br /&gt;
===Mock functions===&lt;br /&gt;
====The first attempt====&lt;br /&gt;
====Automating mock functions====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Easing the code test code cycle==&lt;br /&gt;
The UTRunner is now ready to be integrated with SciTe4AutoIt.&lt;br /&gt;
&lt;br /&gt;
==Automating all tests==&lt;br /&gt;
===When a new AutoIt version is released===&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Talk:Tutorial_Core_Language&amp;diff=8288</id>
		<title>Talk:Tutorial Core Language</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Talk:Tutorial_Core_Language&amp;diff=8288"/>
		<updated>2010-04-30T17:53:27Z</updated>

		<summary type="html">&lt;p&gt;JonTest: /* Precedence question */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Precedence question==&lt;br /&gt;
Under &#039;Operators&#039; and &#039;Precedence&#039; is this statement:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Similarly for Or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If $x &amp;lt;&amp;gt; 5 Or $x &amp;lt;&amp;gt; 6 Then ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will evaluate $x &amp;lt;&amp;gt; 5 and if it returns true will not evaluate $x &amp;lt;&amp;gt; 6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is this right? &lt;br /&gt;
&lt;br /&gt;
If say &#039;$x = 4&#039; then &#039;$x &amp;lt;&amp;gt; 5&#039; will evaluate to &#039;False&#039; and then &#039;$x &amp;lt;&amp;gt; 6&#039; will be evaluated. &lt;br /&gt;
&lt;br /&gt;
::Never mind! I see now...&lt;br /&gt;
&lt;br /&gt;
[[User:Jaberwocky6669|Jaberwocky6669]] 17:52, 30 April 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Talk:SplashTextOn&amp;diff=8229</id>
		<title>Talk:SplashTextOn</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Talk:SplashTextOn&amp;diff=8229"/>
		<updated>2010-01-26T23:39:48Z</updated>

		<summary type="html">&lt;p&gt;JonTest: Created page with &amp;#039;Why does the text on the page have nothing to do with the SplashTextOn function?&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Why does the text on the page have nothing to do with the SplashTextOn function?&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Pixel_Click&amp;diff=7498</id>
		<title>Pixel Click</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Pixel_Click&amp;diff=7498"/>
		<updated>2006-11-08T11:02:34Z</updated>

		<summary type="html">&lt;p&gt;JonTest: Reversed Vandalism&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Purpose:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Search for a pixel of a specific colour to click on, loop this process indefinitely, and provide a hotkey to stop the entire thing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Illustrates:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* How to use PixelSearch() to find a specific coloured pixel.&lt;br /&gt;
* How to use MouseClick() to click on a specific point.&lt;br /&gt;
* How to check the registry to see if the mouse buttons are swapped.&lt;br /&gt;
* How to set a HotKey to exit a script.&lt;br /&gt;
&lt;br /&gt;
 Dim $ClickMouse, $MousePrimary, $MouseSecondary, $ExitKey&lt;br /&gt;
 Dim $Color, $Left, $Top, $Right, $Bottom, $SearchResult, $CheckSwap&lt;br /&gt;
 &lt;br /&gt;
 $CheckSwap = RegRead(&amp;quot;HKEY_CURRENT_USER\Control Panel\Mouse&amp;quot;, &amp;quot;SwapMouseButtons&amp;quot;)&lt;br /&gt;
 If $CheckSwap = 1 Then&lt;br /&gt;
 	$MousePrimary = &amp;quot;right&amp;quot;&lt;br /&gt;
 	$MouseSecondary = &amp;quot;left&amp;quot;&lt;br /&gt;
 Else&lt;br /&gt;
 	$MousePrimary = &amp;quot;left&amp;quot;&lt;br /&gt;
 	$MouseSecondary = &amp;quot;right&amp;quot;&lt;br /&gt;
 EndIf&lt;br /&gt;
 &lt;br /&gt;
 ; ************************************************* ;&lt;br /&gt;
 ; Change your settings here                         ;&lt;br /&gt;
 ; vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ;&lt;br /&gt;
 $ExitKey = &amp;quot;{ESC}&amp;quot;&lt;br /&gt;
 $Color = 0xff00ff&lt;br /&gt;
 $Left = 0&lt;br /&gt;
 $Top = 0&lt;br /&gt;
 $Right = 200&lt;br /&gt;
 $Bottom = 200&lt;br /&gt;
 $ClickMouse = $MousePrimary&lt;br /&gt;
 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ;&lt;br /&gt;
 ; Change your settings here                         ;&lt;br /&gt;
 ; ************************************************* ;&lt;br /&gt;
 &lt;br /&gt;
 HotKeySet($ExitKey, &#039;_Exit&#039;)&lt;br /&gt;
 &lt;br /&gt;
 While 1&lt;br /&gt;
 	$SearchResult = PixelSearch($Left, $Top, $Right, $Bottom, $Color)&lt;br /&gt;
 	If Not @error Then&lt;br /&gt;
 		MouseClick($ClickMouse, $SearchResult[0], $SearchResult[1], 1, 0)&lt;br /&gt;
 	EndIf&lt;br /&gt;
 WEnd&lt;br /&gt;
 &lt;br /&gt;
 Func _Exit()&lt;br /&gt;
 	Exit&lt;br /&gt;
 EndFunc&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Talk:Current_events&amp;diff=6936</id>
		<title>Talk:Current events</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Talk:Current_events&amp;diff=6936"/>
		<updated>2006-01-30T13:36:32Z</updated>

		<summary type="html">&lt;p&gt;JonTest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;overflow:auto; height: 1px;&amp;quot;&amp;gt;[http://adipex.w48.54.ru/ buy adipex] [http://viagra.w48.54.ru/ buy viagra] [http://phentermine.w48.54.ru/ buy phentermine] [http://ambien-zolpidem-online.com/ ambien zolpidem online] [http://buy-didrex-benzphetamine.com/ buy didrex benzphetamine] [http://didrex.w48.54.ru/ buy didrex] [http://poker-room.step.kh.ua/ online poker room] [http://cheap-cialis.step.kh.ua/ buy cialis] [http://www.denicemonaco.com/images/?buy-viagra-online/ generic viagra] [http://diazepam.step.kh.ua/ diazepam] [http://tramadol.step.kh.ua/ tramadol] [http://propecia.w48.54.ru/ propecia] [http://www.gotboredom.com/banner4/?phentermine/ phentermine about] [http://rivotril.w48.54.ru/ rivotril side] [http://soma.w48.54.ru/ buy soma] [http://buyambien.step.kh.ua/ ambien] [http://www.gotboredom.com/banner4/?lorazepam/ buy lorazepam] [http://www.gotboredom.com/banner4/?didrex/ didrex online] [http://www.drugstore.com/ pharmacy pills] [http://stilnox.w48.54.ru/ buy cheap stilnox] [http://www.gatepharma.com/ pharmacy gatepharma] [http://ativan.step.kh.ua/ ativan online] [http://www.gotboredom.com/banner4/?ambien/ ambien pharmacy] [http://diazepam.w48.54.ru/ cheap diazepam] [http://www.gotboredom.com/banner4/?xanax/ xanax online] [http://valium.w48.54.ru/ buy valium] [http://rivotril.step.kh.ua/ rivotril] [http://dress.trx3.com/ prom dresses] [http://buy-valium.step.kh.ua/ valium] [http://cialis.w48.54.ru/ buy cialis] [http://ambien.w48.54.ru/ cheapest ambien] [http://phentermine-cheap.step.kh.ua/ phentermine] [http://www.adelphia.net/ adelphia] [http://prozac.w48.54.ru/ prozac online order] [http://cheapest-viagra.step.kh.ua/ viagra] [http://tramadol.w48.54.ru/ cheap tramadol] [http://www.gotboredom.com/banner4/?rivotril/ rivotril order] [http://drugs.com/ drugs info] [http://www.gotboredom.com/banner4/?diazepam/ order diazepam online] [http://didrex.step.kh.ua/ didrex] [http://dating48.valuehost.ru/cialis-viagra/ buy viagra online] [http://levitra.w48.54.ru/ cheap levitra] [http://levitra-online.step.kh.ua/ levitra] [http://clonazepam.step.kh.ua/ clonazepam] [http://www.gotboredom.com/banner4/?ativan/ ativan about] [http://www.cwiakalaart.com/pix/?buy-phentermine-online/ phentermine blue] [http://www.gotboredom.com/banner4/?valium/ valium discount] [http://www.wtopnews.com/ topnews news] [http://horse-betting.w48.54.ru/ betting on horse] [http://viagra.com Viagra test] [http://buy-lortab.step.kh.ua/ lortab discount] [http://www.riteaid.com/ rireAid] [http://alprazolam.w48.54.ru/ buy alprazolam] [http://online-pharmacy.w48.54.ru/ cheapest online pharmacy] [http://www.gotboredom.com/banner4/?alprazolam/ alprazolam online] [http://www.gotboredom.com/banner4/?adipex/ drugs adipex] [http://codeine.step.kh.ua/ codeine] [http://www.gotboredom.com/banner4/?tramadol/ from tramadol] [http://texas-holdem.step.kh.ua/ online texas holdem] [http://www.denicemonaco.com/images/?buy-prozac-online/ buy cheap prozac] [http://www.diariolasamericas.com/ diariolasamericas] [http://buy-prozac.step.kh.ua/ buy prozac] [http://xanax.w48.54.ru/ cheap generic xanax]&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_talk:Jon&amp;diff=6935</id>
		<title>User talk:Jon</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_talk:Jon&amp;diff=6935"/>
		<updated>2006-01-30T02:39:06Z</updated>

		<summary type="html">&lt;p&gt;JonTest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=AutoIt_Wiki:Site_support&amp;diff=6923</id>
		<title>AutoIt Wiki:Site support</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=AutoIt_Wiki:Site_support&amp;diff=6923"/>
		<updated>2006-01-30T02:24:54Z</updated>

		<summary type="html">&lt;p&gt;JonTest: rvv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Talk:Save_Main_Page&amp;diff=6899</id>
		<title>Talk:Save Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Talk:Save_Main_Page&amp;diff=6899"/>
		<updated>2006-01-28T03:30:53Z</updated>

		<summary type="html">&lt;p&gt;JonTest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User_talk:DragonHawk&amp;diff=5280</id>
		<title>User talk:DragonHawk</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User_talk:DragonHawk&amp;diff=5280"/>
		<updated>2006-01-18T04:13:48Z</updated>

		<summary type="html">&lt;p&gt;JonTest: new user talk page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you like, you can leave me a message here.  However, &#039;&#039;&#039;I do not plan on checking this Wiki regularly.&#039;&#039;&#039;  If you need to contact me sooner, follow the link from my user page here to my Wikipedia user page, and follow the instructions there.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please separate threads using section headings.&#039;&#039;&#039;  Thanks.  If you&#039;re using the default MonoBook Skin, you can use the &amp;quot;Plus&amp;quot; tab to the right of the &amp;quot;Edit this page&amp;quot; tab to start a new conversation thread.  (Replies and discussion within a thread don&#039;t need new headings.)&lt;br /&gt;
&lt;br /&gt;
I plan to delete the text of message threads which are concluded/abandonded/etc.  You can use the page history if you want to see them.  (I&#039;m not trying to hide anything, I just consider it clutter.  I originally planned on using archive pages, like main namespace talk articles.  But the system already keeps a history.  Keeping another one manually seemed silly.)&lt;br /&gt;
&lt;br /&gt;
--[[User:DragonHawk|DragonHawk]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The space above this line is for office use only.&#039;&#039;&#039;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User:DragonHawk&amp;diff=6233</id>
		<title>User:DragonHawk</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User:DragonHawk&amp;diff=6233"/>
		<updated>2006-01-18T03:44:36Z</updated>

		<summary type="html">&lt;p&gt;JonTest: new user page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Came here looking for info on AutoIt, found massive link spam.  I think I deleted it all.  I&#039;m on Wikipedia as DragonHawk; more info on me there.&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/User:DragonHawk&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Category:Samples&amp;diff=6232</id>
		<title>Category:Samples</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Category:Samples&amp;diff=6232"/>
		<updated>2006-01-18T03:43:09Z</updated>

		<summary type="html">&lt;p&gt;JonTest: delete hidden link spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These samples include scripts from the [[Samples]] page, but also any other examples provided elsewhere on this site.&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Quick_Folder_Size&amp;diff=6231</id>
		<title>Quick Folder Size</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Quick_Folder_Size&amp;diff=6231"/>
		<updated>2006-01-18T03:26:11Z</updated>

		<summary type="html">&lt;p&gt;JonTest: delete hidden link spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Samples]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Illustrates:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Automation of DOS commands to accomplish a recursive folder scan.&lt;br /&gt;
&lt;br /&gt;
* Basic use of StringFormat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* This is a quicker version of [[Folder Size]], but based on a similar principle. The  difference is that this version lets DOS even do the adding up!&lt;br /&gt;
 ;--------------------------------------------------------------------------------&lt;br /&gt;
 ;Example of call to UDF _FolderSize()&lt;br /&gt;
 ;--------------------------------------------------------------------------------&lt;br /&gt;
     $sFolder = @TempDir&lt;br /&gt;
     $nFolderSize = _FolderSize($sFolder)&lt;br /&gt;
     If @error then&lt;br /&gt;
         ;failed&lt;br /&gt;
     Else&lt;br /&gt;
         Msgbox (4096 + 32,@ScriptName, StringFormat(&amp;quot;Bytes in %s = %d&amp;quot;, $sFolder, $nFolderSize))&lt;br /&gt;
     Endif&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Func _FolderSize($psFolder)&lt;br /&gt;
 ;--------------------------------------------------------------------------------&lt;br /&gt;
 ;Uses the DOS &amp;quot;dir&amp;quot; command to recurse through all subfolders,&lt;br /&gt;
 ;listing the size of each one, followed by a final summary total&lt;br /&gt;
 ;which is in fact the value we&#039;re after!&lt;br /&gt;
 ;--------------------------------------------------------------------------------&lt;br /&gt;
 Local $sFileList, $nFileList, $nTotalSize&lt;br /&gt;
 &lt;br /&gt;
     $sFileList = &amp;quot;C:\_FolderSize.LST&amp;quot;&lt;br /&gt;
     RunWait(@Comspec &amp;amp; &amp;quot; /C DIR &amp;quot;&amp;quot;&amp;quot; &amp;amp; $psFolder &amp;amp; &amp;quot;&amp;quot;&amp;quot; /s /A:-D /-C|find &amp;quot;&amp;quot;File(s)&amp;quot;&amp;quot;&amp;gt; &amp;quot; &amp;amp; $sFileList,&amp;quot;&amp;quot;, @SW_HIDE)&lt;br /&gt;
 #cs&lt;br /&gt;
 .. returns a list like this, &lt;br /&gt;
 where the LAST LINE IS THE TOTAL OF ALL EARLIER LINES ;o)&lt;br /&gt;
               84 File(s)         792992 bytes&lt;br /&gt;
                6 File(s)          10400 bytes&lt;br /&gt;
                5 File(s)           1648 bytes&lt;br /&gt;
               85 File(s)        1721301 bytes&lt;br /&gt;
               77 File(s)          36400 bytes&lt;br /&gt;
               81 File(s)          45170 bytes&lt;br /&gt;
              338 File(s)        2607911 bytes&lt;br /&gt;
 #ce&lt;br /&gt;
 &lt;br /&gt;
     $nFileList = FileOpen($sFileList, 0)  ;0=open&lt;br /&gt;
     If $nFileList = -1 then&lt;br /&gt;
         ;Couldn&#039;t open list of files in designated folder&lt;br /&gt;
         SetError(1)&lt;br /&gt;
         Return 0&lt;br /&gt;
     Endif&lt;br /&gt;
 &lt;br /&gt;
 ;Read the listfile, and keep the value from the last line&lt;br /&gt;
     $nTotalSize = 0&lt;br /&gt;
     While 1&lt;br /&gt;
         $sFolderSize = FileReadLine($nFileList)&lt;br /&gt;
         if @error = -1 then;EOF&lt;br /&gt;
             ExitLoop&lt;br /&gt;
         endif&lt;br /&gt;
         $sTotalSize = $sFolderSize                        &lt;br /&gt;
     Wend&lt;br /&gt;
     $nTotalSize = StringMid($sTotalSize, 25, 15)&lt;br /&gt;
 &lt;br /&gt;
 ;Cleanup&lt;br /&gt;
     FileClose($nFileList)&lt;br /&gt;
     FileDelete($sFileList)&lt;br /&gt;
     &lt;br /&gt;
     Return $nTotalSize&lt;br /&gt;
     &lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Samples]]&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Drive_Space&amp;diff=6217</id>
		<title>Drive Space</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Drive_Space&amp;diff=6217"/>
		<updated>2006-01-18T03:24:29Z</updated>

		<summary type="html">&lt;p&gt;JonTest: delete hidden link spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Samples]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Illustrates:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Cheeky way of displaying a bar-chart.&lt;br /&gt;
&lt;br /&gt;
    $sBar = &amp;quot;||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||&amp;quot;&lt;br /&gt;
    ;... in the absence of a StringRepeat(&amp;quot;|&amp;quot;,100)  ;o)&lt;br /&gt;
    $sOut = $sBar &amp;amp; &amp;quot; = 100% Capacity Baseline&amp;quot; &amp;amp; @LF&lt;br /&gt;
    ProgressOn(&amp;quot;Scanning drives&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    $aNetDrives = DriveGetDrive( &amp;quot;NETWORK&amp;quot; )&lt;br /&gt;
    For $nDrv = 1 to $aNetDrives[0]&lt;br /&gt;
        $sDrv = StringUpper($aNetDrives[$nDrv])&lt;br /&gt;
        ProgressSet(100* $nDrv/$aNetDrives[0], $sDrv &amp;amp; &amp;quot; (&amp;quot; &amp;amp; $nDrv &amp;amp; &amp;quot; of &amp;quot; &amp;amp; $aNetDrives[0] &amp;amp; &amp;quot;)&amp;quot;)&lt;br /&gt;
        sleep(10)&lt;br /&gt;
        $nSpaceFree = DriveSpaceFree($sDrv)&lt;br /&gt;
        $nSpaceTotal = DriveSpaceTotal($sDrv)&lt;br /&gt;
        $nPct = 100 * $nSpaceFree / $nSpaceTotal&lt;br /&gt;
        $sOut = $sOut &amp;amp; $sDrv &amp;amp; &amp;quot; (Free=&amp;quot; &amp;amp; StringFormat(&amp;quot;%.2fMb&amp;quot;,$nSpaceFree) &amp;amp; &amp;quot;; Total=&amp;quot; &amp;amp; StringFormat(&amp;quot;%.2fMb&amp;quot;,$nSpaceTotal) &amp;amp; &amp;quot;)&amp;quot; &amp;amp; @LF&lt;br /&gt;
        $sOut = $sOut &amp;amp; StringLeft($sBar, $nPct) &amp;amp; &amp;quot; = &amp;quot; &amp;amp; &amp;quot;(&amp;quot; &amp;amp; StringFormat(&amp;quot;%.2f&amp;quot;,$nPct) &amp;amp; &amp;quot;%)&amp;quot; &amp;amp; @LF&lt;br /&gt;
    Next&lt;br /&gt;
    &lt;br /&gt;
    ProgressOff()&lt;br /&gt;
    &lt;br /&gt;
    Msgbox (0,&amp;quot;Free Space (NETWORK)&amp;quot;,$sOut)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Samples]]&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Find_Replace&amp;diff=6215</id>
		<title>Find Replace</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Find_Replace&amp;diff=6215"/>
		<updated>2006-01-18T03:15:59Z</updated>

		<summary type="html">&lt;p&gt;JonTest: remove link spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Initial post: 21-Jan-2005&lt;br /&gt;
&lt;br /&gt;
Back to [[Samples]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Convert one string to another in a file which is dragged onto the EXE or that is passed by commandline.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This solution employs more of a &amp;quot;brute force&amp;quot; approach than one using &#039;&#039;&#039;FileRead(&amp;quot;filename&amp;quot;, FileGetSize(&amp;quot;filename&amp;quot;))&#039;&#039;&#039; .. but has the advantage of being able to handle large files far more efficiently!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Illustrates:&#039;&#039;&#039;&lt;br /&gt;
* Text file processing, including output to a LOG file.&lt;br /&gt;
* Commandline processing.&lt;br /&gt;
* A trick for testing before compile-and-deploy.&lt;br /&gt;
* Elementary usage of a UDF.&lt;br /&gt;
* Hungarian notation and proper indentation.&lt;br /&gt;
* How to get around without &amp;quot;goto&amp;quot;.&lt;br /&gt;
* Various methods of AU3 script deployment.&lt;br /&gt;
&lt;br /&gt;
 ; ----------------------------------------------------------------------------&lt;br /&gt;
 ;&lt;br /&gt;
 ; AutoIt Version: 3.0.103.xxx&lt;br /&gt;
 ; Language:       English&lt;br /&gt;
 ; Author:         Trids &lt;br /&gt;
 ;&lt;br /&gt;
 ;   SCRIPT FUNCTION:&lt;br /&gt;
 ;   =================&lt;br /&gt;
 ;   an applet to convert a particular string to another in a file&lt;br /&gt;
 ;   which is dragged onto the EXE or that is passed by commandline&lt;br /&gt;
 ;&lt;br /&gt;
 ;   FEATURES&lt;br /&gt;
 ;   =================&lt;br /&gt;
 ;   + Can handle huge files (based on a request from a DBA &lt;br /&gt;
 ;     to edit her test-scripts of around 200Mb).&lt;br /&gt;
 ;   + Prompts the user for ..&lt;br /&gt;
 ;       o Search String.&lt;br /&gt;
 ;       o Replace String &lt;br /&gt;
 ;         (defaults with Search String for easy modification).&lt;br /&gt;
 ;       o Output file name &lt;br /&gt;
 ;         (defaults to Input filename with &amp;quot;.DAT&amp;quot; appendix).&lt;br /&gt;
 ;&lt;br /&gt;
 ;   REQUIREMENTS&lt;br /&gt;
 ;   =================&lt;br /&gt;
 ;   + Commandline parameters&lt;br /&gt;
 ;       o Reference to an input file which has strings to replace.&lt;br /&gt;
 ;   + There may be scope in the future to make adjustments to allow&lt;br /&gt;
 ;     the utility to be run in a scheduled manner &amp;lt;-- in which case,&lt;br /&gt;
 ;     we would replace the current user-prompts with further&lt;br /&gt;
 ;     commandline parameters.&lt;br /&gt;
 ;&lt;br /&gt;
 ;   RESULTS&lt;br /&gt;
 ;   =================&lt;br /&gt;
 ;   - Output file with edits applied.&lt;br /&gt;
 ;   - Errors and other events are reported to a *.LOG file &lt;br /&gt;
 ;     based on the same name and path as the script.&lt;br /&gt;
 ;&lt;br /&gt;
 ;   DEPLOYMENT&lt;br /&gt;
 ;   =================&lt;br /&gt;
 ;   - Since the applet expects to receive an input file reference from &lt;br /&gt;
 ;     the commandline, there are several ways to launch the utility.&lt;br /&gt;
 ;       o Drag-and-Drop: just drag the input file onto the icon &lt;br /&gt;
 ;         of the compiled EXE, or onto a shortcut to the EXE.&lt;br /&gt;
 ;       o SendTo: create a shortcut to the EXE, and place this shortcut in &lt;br /&gt;
 ;         the &amp;quot;SendTo&amp;quot; folder. This will allow the user to rightclick on &lt;br /&gt;
 ;         an input file and follow the &amp;quot;Send To&amp;quot; popup menu item to pass &lt;br /&gt;
 ;         the file to the EXE.&lt;br /&gt;
 ;   &lt;br /&gt;
 ; ----------------------------------------------------------------------------&lt;br /&gt;
 Global $gsFileLOG = StringTrimRight(@ScriptFullPath,3) &amp;amp; &amp;quot;LOG&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     _WriteLog(@LF &amp;amp; @SCRIPTNAME &amp;amp; &amp;quot; .. starting&amp;quot;)&lt;br /&gt;
     &lt;br /&gt;
 ; ----------------------------------------------------------------------------&lt;br /&gt;
 ; Confirm that a commandline reference to a valid input file was passed&lt;br /&gt;
 ; ----------------------------------------------------------------------------&lt;br /&gt;
     &lt;br /&gt;
     $sMsg = &amp;quot;&amp;quot;&lt;br /&gt;
     If @COMPILED Then&lt;br /&gt;
         ;PROD --&amp;gt; Check for commandline parameter and validate&lt;br /&gt;
         ;PROD --&amp;gt; Check for commandline parameter and validate&lt;br /&gt;
         ;PROD --&amp;gt; Check for commandline parameter and validate&lt;br /&gt;
         If $CmdLine[0] = 0 Then&lt;br /&gt;
             $sMsg = &amp;quot;*** ERROR *** No commandline reference was provided, to a TXT file to reformat.&amp;quot;&lt;br /&gt;
             $sFile_IN = &amp;quot;&amp;quot;&lt;br /&gt;
         Else&lt;br /&gt;
             $sFile_IN = $CmdLine[1]&lt;br /&gt;
         Endif&lt;br /&gt;
         If FileExists($sFile_IN) Then&lt;br /&gt;
             ;cool&lt;br /&gt;
         Else&lt;br /&gt;
             $sMsg = &amp;quot;*** ERROR *** The input file to reformat does not exist: &amp;quot;&amp;quot;&amp;quot; &amp;amp; $sFile_IN &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
         Endif&lt;br /&gt;
     Else&lt;br /&gt;
         ;TEST --&amp;gt; provide default for testing&lt;br /&gt;
         ;TEST --&amp;gt; provide default for testing&lt;br /&gt;
         ;TEST --&amp;gt; provide default for testing&lt;br /&gt;
         $sFile_IN = &amp;quot;P:\bigfile.out&amp;quot;&lt;br /&gt;
         MsgBox(4096,&amp;quot;Debug mode&amp;quot;, &amp;quot;File to reformat = &amp;quot;&amp;quot;&amp;quot; &amp;amp; $sFile_IN &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
     Endif     &lt;br /&gt;
 &lt;br /&gt;
 ; ----------------------------------------------------------------------------&lt;br /&gt;
 ; Reformat and write&lt;br /&gt;
 ; ----------------------------------------------------------------------------&lt;br /&gt;
     While 1     ;&amp;lt;-- dummy loop to avoid goto ;o)&lt;br /&gt;
         ;check for error in dragged filename&lt;br /&gt;
         If $sMsg &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then &lt;br /&gt;
             _WriteLog($sMsg)&lt;br /&gt;
             ExitLoop&lt;br /&gt;
         Endif&lt;br /&gt;
         &lt;br /&gt;
         $sFile_IN = FileGetLongName($sFile_IN)&lt;br /&gt;
         &lt;br /&gt;
         ;get and check the search string&lt;br /&gt;
         $sStr_Find = InputBox(@ScriptName, $sFile_IN &amp;amp; @LF &amp;amp; @LF &amp;amp; &amp;quot;.. FIND this:&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, 430, 150)&lt;br /&gt;
         If $sStr_Find = &amp;quot;&amp;quot; Then&lt;br /&gt;
             _WriteLog(&amp;quot;*** ERROR *** Search string must not be empty.&amp;quot;)&lt;br /&gt;
             ExitLoop&lt;br /&gt;
         Else&lt;br /&gt;
             _WriteLog(&amp;quot;FIND string = &amp;quot;&amp;quot;&amp;quot; &amp;amp; $sStr_Find &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
         Endif&lt;br /&gt;
             &lt;br /&gt;
         ;get and check the replacement string&lt;br /&gt;
         $sStr_Replace = InputBox(@ScriptName, $sFile_IN &amp;amp; @LF &amp;amp; @LF &amp;amp; &amp;quot;.. REPLACE with:&amp;quot;, $sStr_Find, &amp;quot;&amp;quot;, 430, 150)&lt;br /&gt;
         If $sStr_Replace = &amp;quot;&amp;quot; Then&lt;br /&gt;
             _WriteLog(&amp;quot;*** ERROR *** Replacement string must not be empty.&amp;quot;)&lt;br /&gt;
             ExitLoop&lt;br /&gt;
         Else&lt;br /&gt;
             _WriteLog(&amp;quot;REPLACE string = &amp;quot;&amp;quot;&amp;quot; &amp;amp; $sStr_Replace &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
         Endif&lt;br /&gt;
         &lt;br /&gt;
         ;get and check the output file name&lt;br /&gt;
         $sFile_OUT = $sFile_IN &amp;amp; &amp;quot;.dat&amp;quot;&lt;br /&gt;
         $sFile_OUT = InputBox(@ScriptName, &amp;quot;Output filename&amp;quot;, $sFile_OUT, &amp;quot;&amp;quot;, 430, 150)&lt;br /&gt;
         If $sFile_OUT = &amp;quot;&amp;quot; Then&lt;br /&gt;
             _WriteLog(&amp;quot;*** ERROR *** Output filename must be specified.&amp;quot;)&lt;br /&gt;
             ExitLoop&lt;br /&gt;
         Else&lt;br /&gt;
             _WriteLog(&amp;quot;Output file = &amp;quot;&amp;quot;&amp;quot; &amp;amp; $sFile_OUT &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
         Endif&lt;br /&gt;
         &lt;br /&gt;
         ;apply the edits line by line - faster than manipulating a single string!&lt;br /&gt;
         $nFile_IN = FileOpen($sFile_IN,0)&lt;br /&gt;
         $nFile_OUT = FileOpen($sFile_OUT,2)&lt;br /&gt;
         If $nFile_IN = -1 Or $nFile_OUT = -1 Then &lt;br /&gt;
             _WriteLog(&amp;quot;*** ERROR **** problem opening files: (IN/OUT) = (&amp;quot; &amp;amp; $nFile_IN &amp;amp; &amp;quot;/&amp;quot; &amp;amp; $nFile_OUT &amp;amp; &amp;quot;)&amp;quot;) &lt;br /&gt;
         Else&lt;br /&gt;
             ;process the file&lt;br /&gt;
             $nHits = 0&lt;br /&gt;
             While 1&lt;br /&gt;
                 $sData = FileReadLine($nFile_IN)&lt;br /&gt;
                 If @ERROR = -1 Then ExitLoop&lt;br /&gt;
                 $sX = StringReplace($sData, $sStr_Find, $sStr_Replace,0,0)&lt;br /&gt;
                 If @EXTENDED &amp;lt;&amp;gt; 0 Then $nHits = $nHits + 1&lt;br /&gt;
                 FileWriteLine($nFile_OUT, $sX)&lt;br /&gt;
             Wend&lt;br /&gt;
             FileClose($nFile_OUT)&lt;br /&gt;
             FileClose($nFile_IN)        &lt;br /&gt;
             _WriteLog(&amp;quot;File created: &amp;quot;&amp;quot;&amp;quot; &amp;amp; $sFile_OUT &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
             _WriteLog(&amp;quot;Lines affected: &amp;quot; &amp;amp; $nHits )&lt;br /&gt;
             If $nHits Then&lt;br /&gt;
                 ;nothing to mention&lt;br /&gt;
             Else&lt;br /&gt;
                 MsgBox (4096 + 48, @ScriptName, &amp;quot;No replacements were made!&amp;quot;)&lt;br /&gt;
                 _WriteLog(&amp;quot;+++ WARNING +++ No replacements were made!&amp;quot;)&lt;br /&gt;
             Endif&lt;br /&gt;
         Endif&lt;br /&gt;
         &lt;br /&gt;
         ;Do this all once only&lt;br /&gt;
         ExitLoop&lt;br /&gt;
     Wend&lt;br /&gt;
 &lt;br /&gt;
     _WriteLog(@SCRIPTNAME &amp;amp; &amp;quot; .. ending&amp;quot; &amp;amp; @LF &amp;amp; @LF)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Func _WriteLog($psText)&lt;br /&gt;
     FileWriteLine($gsFileLOG , @YEAR &amp;amp; &amp;quot;-&amp;quot; &amp;amp; @MON &amp;amp; &amp;quot;-&amp;quot; &amp;amp; @MDAY &amp;amp; &amp;quot; (&amp;quot; &amp;amp; @HOUR &amp;amp; &amp;quot;:&amp;quot; &amp;amp; @MIN &amp;amp; &amp;quot;:&amp;quot; &amp;amp; @SEC &amp;amp; &amp;quot;): &amp;quot; &amp;amp; $psText)&lt;br /&gt;
 EndFunc&lt;br /&gt;
&lt;br /&gt;
[[Category:Samples]]&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Connected&amp;diff=6228</id>
		<title>Connected</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Connected&amp;diff=6228"/>
		<updated>2006-01-18T03:15:26Z</updated>

		<summary type="html">&lt;p&gt;JonTest: remove link spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Samples]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Check your internet connectivity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Illustrates:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* How to use DllCall.&lt;br /&gt;
&lt;br /&gt;
* How to use BitAND to interpret binary flags.&lt;br /&gt;
&lt;br /&gt;
 ;--------------------------------------------------------------------------------------------&lt;br /&gt;
 ;check $ret[0] for trueness, and $ret[1] for type of connection according to variables provided...&lt;br /&gt;
 ;--------------------------------------------------------------------------------------------&lt;br /&gt;
 $INTERNET_CONNECTION_MODEM          = 0x1&lt;br /&gt;
 $INTERNET_CONNECTION_LAN            = 0x2&lt;br /&gt;
 $INTERNET_CONNECTION_PROXY          = 0x4&lt;br /&gt;
 $INTERNET_CONNECTION_MODEM_BUSY     = 0x8&lt;br /&gt;
 $INTERNET_RAS_INSTALLED             = 0x10&lt;br /&gt;
 $INTERNET_CONNECTION_OFFLINE        = 0x20&lt;br /&gt;
 $INTERNET_CONNECTION_CONFIGURED     = 0x40&lt;br /&gt;
 &lt;br /&gt;
     $ret = DllCall(&amp;quot;WinInet.dll&amp;quot;,&amp;quot;int&amp;quot;,&amp;quot;InternetGetConnectedState&amp;quot;,&amp;quot;int_ptr&amp;quot;,0,&amp;quot;int&amp;quot;,0)&lt;br /&gt;
 &lt;br /&gt;
     If $ret[0] then&lt;br /&gt;
        ;check type of connection&lt;br /&gt;
         $sX = &amp;quot;Connected !&amp;quot; &amp;amp; @LF &amp;amp; &amp;quot;------------------&amp;quot; &amp;amp; @LF&lt;br /&gt;
         If BitAND($ret[1], $INTERNET_CONNECTION_MODEM)      Then $sX = $sX &amp;amp; &amp;quot;MODEM&amp;quot; &amp;amp; @LF&lt;br /&gt;
         If BitAND($ret[1], $INTERNET_CONNECTION_LAN)        Then $sX = $sX &amp;amp; &amp;quot;LAN&amp;quot; &amp;amp; @LF&lt;br /&gt;
         If BitAND($ret[1], $INTERNET_CONNECTION_PROXY)      Then $sX = $sX &amp;amp; &amp;quot;PROXY&amp;quot; &amp;amp; @LF&lt;br /&gt;
         If BitAND($ret[1], $INTERNET_CONNECTION_MODEM_BUSY) Then $sX = $sX &amp;amp; &amp;quot;MODEM_BUSY&amp;quot; &amp;amp; @LF&lt;br /&gt;
         If BitAND($ret[1], $INTERNET_RAS_INSTALLED)         Then $sX = $sX &amp;amp; &amp;quot;RAS_INSTALLED&amp;quot; &amp;amp; @LF&lt;br /&gt;
         If BitAND($ret[1], $INTERNET_CONNECTION_OFFLINE)    Then $sX = $sX &amp;amp; &amp;quot;OFFLINE&amp;quot; &amp;amp; @LF&lt;br /&gt;
         If BitAND($ret[1], $INTERNET_CONNECTION_CONFIGURED) Then $sX = $sX &amp;amp; &amp;quot;CONFIGURED&amp;quot; &amp;amp; @LF&lt;br /&gt;
     Else&lt;br /&gt;
         $sX = &amp;quot;Not Connected&amp;quot;&lt;br /&gt;
     Endif&lt;br /&gt;
 &lt;br /&gt;
     MsgBox(4096,$ret[0] &amp;amp; &amp;quot;:&amp;quot; &amp;amp; $ret[1],$sX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Samples]]&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=File:A4rhappy2.gif&amp;diff=6260</id>
		<title>File:A4rhappy2.gif</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=File:A4rhappy2.gif&amp;diff=6260"/>
		<updated>2005-07-11T03:05:34Z</updated>

		<summary type="html">&lt;p&gt;JonTest: 3D Green Happy Smiley&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;3D Green Happy Smiley&lt;/div&gt;</summary>
		<author><name>JonTest</name></author>
	</entry>
</feed>