Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

AutoHotkey v2 Documentation


  • Please log in to reply
37 replies to this topic
Lexikos
  • Administrators
  • 9844 posts
  • AutoHotkey Foundation
  • Last active:
  • Joined: 17 Oct 2006

Documentation for v2 can now be viewed or downloaded via github. As there is still a lot of work to be done, I won't be providing a compiled help file (chm). However, the download includes a HTML Help Workshop project file from which a help file can be built.

Most of the changes made by the alpha releases are reflected in the updated documentation, with some notable exceptions:
[*:12w4d8o6]As of alpha 26, only the following commands accept expressions without the % prefix or function syntax: If, Loop count, For, While, Until, Return, Exit, ExitApp and Throw. The parameter descriptions and examples have not been updated to reflect this.
[*:12w4d8o6]Most of the examples haven't been updated.
[*:12w4d8o6]The script showcase hasn't been updated.
[*:12w4d8o6]Some parts of the FAQ and Tutorial haven't been updated.
[*:12w4d8o6]There is no overview of the differences between v1 and v2, and the AutoHotkey_L Features page hasn't been updated.
[*:12w4d8o6]There are many inconsistencies caused by the (now obsolete) distinction between commands and functions.help needed

No pun intended. If you would like to contribute, the best way to do so is to fork the github repository, make changes locally and and submit a pull request via github. The v2 documentation is in the "gh-pages" branch, which is automatically available for viewing at http://lexikos.githu...oHotkey_L-Docs/. GitHub has an introductory tutorial for anyone new to git.

Regarding #6 above: Numerous functions are documented only on the "Functions" page, whereas most commands have their own page. For commands and functions which have their own page, usually only one specific syntax is shown. (...) Sometimes functions are referred to as "functionname()" and sometimes just "functionname". The "()" part is less meaningful now that any function can be called without it, so it should probably be omitted.

fincs has mostly taken care of #1, excluding examples.

Any contributions such as updated examples may be posted in this thread or via GitHub. Contributions via GitHub are preferred, but posting a patch (diff file) in this thread is the next best thing. If someone would like to volunteer to integrate these via GitHub pull requests (which require from me only a click of approval), I would appreciate it.

Frankie
  • Members
  • 2930 posts
  • Last active: Feb 05 2015 02:49 PM
  • Joined: 02 Nov 2008
I can do the patching. If I don't see it right away, you can send me a PM.

I just need the diff to be in a format compatible with the Linux/UNIX patch command. Here are a few examples.

git diff tool
diff --git a/index.htm b/index.htm
index a615837..f81ca65 100644
--- a/index.htm
+++ b/index.htm
@@ -8,7 +8,9 @@
 </head>
 <body>
   
-<h1>AutoHotkey v2</h1>
+<h1>This is AutoHotkey v2</h1>
+
+<h2>Patching is cool</h2>
 
 <p>AutoHotkey v2 is a fork of <a href="http://l.autohotkey.net">AutoHotkey_L</a> which aims to improve the usability and convenience of the language and command set by sacrificing backward compatibility. It is currently in the alpha stage of development; more compatibility-breaking changes have yet to be made.</p>

the traditional diff tool
11c11,13
< <h1>AutoHotkey v2</h1>
---
> <h1>This is AutoHotkey v2</h1>
> 
> <h2>Patching is cool</h2>

They both show the same change. If you can link the original file, and upload the changed file, I can also do the diff/patch my self. Either way works :)
aboutscriptappsscripts
Request Video Tutorials Here or View Current Tutorials on YouTube
Any code ⇈ above ⇈ requires AutoHotkey_L to run

  • Guests
  • Last active:
  • Joined: --
for docs/Hotstrings.htm
125c125,128
< <pre class="NoIndent">#h::  <em>; Win+H hotkey
---
> <pre class="NoIndent">; AutoHotkey Version: 2.x
> #HotString, SI
> 
> #h::  <em>; Win+H hotkey
132,133c135,136
< ClipboardOld = %ClipboardAll%
< Clipboard =  <em>; Must start off blank for detection to work.</em>
---
> ClipboardOld := ClipboardAll
> Clipboard := ""  <em>; Must start off blank for detection to work.</em>
136,137c139,140
< if ErrorLevel  <em>; ClipWait timed out.</em>
<     return
---
> If ErrorLevel  <em>; ClipWait timed out.</em>
>     Return
141,146c144,149
< StrReplace, Hotstring, Clipboard, ``, ````, All  <em>; Do this replacement first to avoid interfering with the others below.</em>
< StrReplace, Hotstring, Hotstring, `r`n, ``r, All  <em>; Using `r works better than `n in MS Word, etc.</em>
< StrReplace, Hotstring, Hotstring, `n, ``r, All
< StrReplace, Hotstring, Hotstring, %A_Tab%, ``t, All
< StrReplace, Hotstring, Hotstring, `;, ```;, All
< Clipboard = %ClipboardOld%  <em>; Restore previous contents of clipboard.
---
> StrReplace, Hotstring, % Clipboard, ``, ````  <em>; Do this replacement first to avoid interfering with the others below.</em>
> StrReplace, Hotstring, % Hotstring, `r`n, ``r  <em>; Using `r works better than `n in MS Word, etc.</em>
> StrReplace, Hotstring, % Hotstring, `n, ``r
> StrReplace, Hotstring, % Hotstring, %A_Tab%, ``t
> StrReplace, Hotstring, % Hotstring, `;, ```;
> Clipboard := ClipboardOld  <em>; Restore previous contents of clipboard.
150,153c153,156
< InputBox, Hotstring, New Hotstring, Type your abreviation at the indicated insertion point. You can also edit the replacement text if you wish.`n`nExample entry: :R:btw`::by the way,,,,,,,, :R:`::%Hotstring%
< if ErrorLevel  <em>; The user pressed Cancel.</em>
<     return
< IfInString, Hotstring, :R`:::
---
> InputBox, Hotstring, New Hotstring, Type your abreviation at the indicated insertion point. You can also edit the replacement text if you wish.`n`nExample entry: :R:btw`::by the way, , :R`:::%Hotstring%
> If ErrorLevel  <em>; The user pressed Cancel.</em>
>     Return
> If InStr(Hotstring,":R`:::")
163c166
< if A_MsgBoxResult = "Yes"
---
> If (A_MsgBoxResult = "Yes")
165c168
< return
---
> Return
168c171
< IfWinNotActive, New Hotstring
---
> If !WinActive("New Hotstring")


Lexikos
  • Administrators
  • 9844 posts
  • AutoHotkey Foundation
  • Last active:
  • Joined: 17 Oct 2006
Already done several hours ago, minus several minor changes which were not relevant.

  • Guests
  • Last active:
  • Joined: --
OK, my bad should have checked that one.

For docs\misc\Remap.htm removed win9x reference entirely, ahk_l/v2 doesn't support that OS anyway so why mention it.
17,21d16
< <p>The feature described on this page is not supported on Windows 95/98/Me or for joysticks. See the following alternate methods for them:</p>
< <ul>
<   <li><a href="#Win9x">Windows 9x remapping</a></li>
<   <li><a href="RemapJoystick.htm">Joystick remapping</a></li>
< </ul>
166d160
<   <li>It is not supported on Windows 95/98/Me (AutoHotkey can do some <a href="#Win9x">limited Win9x remapping</a>).</li>
174,180d167
< <h2 id="alt"><a name="Win9x"></a>Remapping Method for Windows 95/98/Me</h2>
< <p>The recommended method is to use <a href="../commands/Send.htm">Send</a> and <a href="../commands/KeyWait.htm">KeyWait</a>. For example, the following hotkey makes the 'A' key become the left-arrow key:</p>
< <pre>a::
< Send {Left down}  <em>; Hold down the left-arrow key.</em>
< KeyWait a  <em>; Wait for the user to release the key.</em>
< Send {Left up}  <em>; Release the left-arrow key.</em>
< return</pre>


  • Guests
  • Last active:
  • Joined: --
For docs\commands\Input.htm removed win9x references + updated example
13c13
< <p>Waits for the user to type a string (not supported on Windows 9x: it does nothing).</p>
---
> <p>Waits for the user to type a string.</p>
94d93
< <p><em>Input</em> does nothing on Windows 9x (not even changing ErrorLevel and <em>OutputVar</em>). To detect Windows 9x, use <a href="../Variables.htm#OSType">A_OSType</a>.</p>
104,105c103,104
< ; prefix, its own keystroke will pass through to the active window
< ; (except on Win9x).  Thus, if you type [btw (or one of the other match
---
> ; prefix, its own keystroke will pass through to the active window.
> ; Thus, if you type [btw (or one of the other match
111c110
< if ErrorLevel = Max
---
> if ErrorLevel = "Max"
116c115
< if ErrorLevel = Timeout
---
> if ErrorLevel = "Timeout"
121c120
< if ErrorLevel = NewInput
---
> if ErrorLevel = "NewInput"
123c122
< IfInString, ErrorLevel, EndKey:
---
> If InStr(ErrorLevel, "EndKey:")
129,130c128
< SetKeyDelay, -1  <em>; Most editors can handle the fastest speed.</em>
< if UserInput = btw
---
> if UserInput = "btw"
132c130
< else if UserInput = otoh
---
> else if UserInput = "otoh"
134c132
< else if UserInput = fl
---
> else if UserInput = "fl"
136c134
< else if UserInput = ca
---
> else if UserInput = "ca"
138c136
< else if UserInput = ahk
---
> else if UserInput = "ahk"


  • Guests
  • Last active:
  • Joined: --
for docs\commands\_InstallKeybdHook.htm
18d17
< <p>The keyboard hook is not supported under Windows 95/98/Me because those operating systems require a different type of hook that must reside in a DLL file.</p>
for docs\commands\_InstallMouseHook.htm
17c17
< <p>The mouse hook monitors mouse clicks for the purpose of activating mouse <a href="../Hotkeys.htm">hotkeys</a> and <a href="../Hotstrings.htm#NoMouse">facilitating hotstrings</a>. It is not supported under Windows 95/98/Me because those operating systems require a different type of hook that must reside in a DLL file.</p>
---
> <p>The mouse hook monitors mouse clicks for the purpose of activating mouse <a href="../Hotkeys.htm">hotkeys</a> and <a href="../Hotstrings.htm#NoMouse">facilitating hotstrings</a>.</p>


  • Guests
  • Last active:
  • Joined: --
for docs\commands\FileGetTime.htm
39d38
< <p>A file's last access time might not be as precise on Win9x as it is on NT based operating systems.</p>


  • Guests
  • Last active:
  • Joined: --
for docs\commands\SetNumScrollCapsLockState.htm
31c31
< <p>These commands are currently not 100% reliable on Windows Me/98/95 due to the limitations of those OSes. As an alternative, a key can be reliably toggled to its opposite state on Win9x via the <a href="Send.htm">Send</a> command; for example: <em>Send {Capslock}</em></p>
---
> <p>As an alternative, a key can also toggled to its opposite state via the <a href="Send.htm">Send</a> command; for example: <em>Send {Capslock}</em></p>


  • Guests
  • Last active:
  • Joined: --
for docs\commands\RegRead.htm
39c39
< <p>Although no more than 64 KB of data can be read from REG_BINARY  values, the other types are unlimited except under Windows 95/98/ME, which have a 64 KB limit for all types (the Win9x registry is not capable of storing larger values).</p>
---
> <p>Although no more than 64 KB of data can be read from REG_BINARY  values, the other types are unlimited.</p>
41c41
< <p>When reading a REG_MULTI_SZ key, each of the components ends in a linefeed character (`n). If there are no components, <em>OutputVar</em> will be made blank. See <a href="FileSelectFile.htm">FileSelectFile</a> for an example of how to extract the individual components from <em>OutputVar</em>. Note: Windows 95 does not support the REG_MULTI_SZ value type.</p>
---
> <p>When reading a REG_MULTI_SZ key, each of the components ends in a linefeed character (`n). If there are no components, <em>OutputVar</em> will be made blank. See <a href="FileSelectFile.htm">FileSelectFile</a> for an example of how to extract the individual components from <em>OutputVar</em>.</p>


  • Guests
  • Last active:
  • Joined: --
for docs\commands\Hotkey.htm
100,107d99
<     <td>50</td>
<     <td>Windows 95/98/Me: The command completed successfully but the operating system refused to activate the hotkey. This is usually caused by the hotkey being "in use" by some other script or application (or the OS itself). This occurs only on Windows 95/98/Me because on other operating systems, the program will resort to the <a href="_InstallKeybdHook.htm">keyboard hook</a> to <a href="../misc/Override.htm">override</a> the refusal.</td>
<   </tr>
<   <tr>
<     <td>51</td>
<     <td>Windows 95/98/Me: The command completed successfully but the hotkey is not supported on Windows 95/98/Me. For example, mouse hotkeys and prefix hotkeys such as "a & b" are not supported.</td>
<   </tr>
<   <tr>
127c119
< <p>Although the Hotkey command cannot directly enable or disable hotkeys in scripts other than its own, in most cases it can <a href="../misc/Override.htm">override</a> them by creating or enabling the same hotkeys. Whether this works depends on a combination of factors: 1) Whether the hotkey to be overridden is a <a href="ListHotkeys.htm">hook hotkey</a> in the other script (non-hook hotkeys can always be overridden except on Win9x); 2) The fact that the most recently started script's hotkeys generally take precedence over those in other scripts (therefore, if the script intending to override was started most recently, its override should always succeed);  3) Whether the enabling or creating of this hotkey will newly activate the <a href="_InstallKeybdHook.htm">keyboard</a> or <a href="_InstallMouseHook.htm">mouse</a> hook (if so, the override will always succeed).</p>
---
> <p>Although the Hotkey command cannot directly enable or disable hotkeys in scripts other than its own, in most cases it can <a href="../misc/Override.htm">override</a> them by creating or enabling the same hotkeys. Whether this works depends on a combination of factors: 1) Whether the hotkey to be overridden is a <a href="ListHotkeys.htm">hook hotkey</a> in the other script (non-hook hotkeys can always be overridden); 2) The fact that the most recently started script's hotkeys generally take precedence over those in other scripts (therefore, if the script intending to override was started most recently, its override should always succeed);  3) Whether the enabling or creating of this hotkey will newly activate the <a href="_InstallKeybdHook.htm">keyboard</a> or <a href="_InstallMouseHook.htm">mouse</a> hook (if so, the override will always succeed).</p>
136c128
< <p>When a mouse or keyboard hotkey is disabled via IfWin, it performs its native function; that is, it passes through to the active window as though there is no such hotkey. There are two exceptions: 1) Windows 95/98/Me: pressing an IfWin-disabled hotkey has no effect (not even its native function); and 2) Joystick hotkeys: although IfWin works, it never prevents other programs from seeing the press of a button.</p>
---
> <p>When a mouse or keyboard hotkey is disabled via IfWin, it performs its native function; that is, it passes through to the active window as though there is no such hotkey. There is one exception: Joystick hotkeys: although IfWin works, it never prevents other programs from seeing the press of a button.</p>


  • Guests
  • Last active:
  • Joined: --
For docs/commands/LoopReg.htm
59c59

<     <td>The time the current subkey or any of its values was last modified. Format <a href="FileSetTime.htm">YYYYMMDDHH24MISS</a>. This variable will be empty if the currently retrieved item is not a subkey (i.e. <em>A_LoopRegType</em> is not the word KEY) or if the operating system is Win9x (since Win9x does not track this info). </td>

---

>     <td>The time the current subkey or any of its values was last modified. Format <a href="FileSetTime.htm">YYYYMMDDHH24MISS</a>. This variable will be empty if the currently retrieved item is not a subkey (i.e. <em>A_LoopRegType</em> is not the word KEY).</td>

79c79

<   <li>The target machine must be running the Remote Registry service, or (for Windows Me/98/95) have the Microsoft Remote Registry service installed (this can be obtained from Microsoft).</li>

---

>   <li>The target machine must be running the Remote Registry service.</li>



  • Guests
  • Last active:
  • Joined: --
For docs\commands\_HotkeyModifierTimeout.htm
35c35
<   <li>Install the keyboard hook by adding the line <a href="_InstallKeybdHook.htm">#InstallKeybdHook</a> anywhere in the script (however, the hook is not supported on Win9x).</li>
---
>   <li>Install the keyboard hook by adding the line <a href="_InstallKeybdHook.htm">#InstallKeybdHook</a> anywhere in the script.</li>


  • Guests
  • Last active:
  • Joined: --
For docs\commands\BlockInput.htm
23c23
<       <p><strong><u>Mode 2</u></strong> (has no effect on Windows 9x): This mode operates independently of the other two. For example, <em>BlockInput On</em> will continue to block input until <em>BlockInput Off</em> is used, even if one of the below is also in effect.</p>
---
>       <p><strong><u>Mode 2</u></strong>: This mode operates independently of the other two. For example, <em>BlockInput On</em> will continue to block input until <em>BlockInput Off</em> is used, even if one of the below is also in effect.</p>
28c28
<       <p><u><strong><a name="MouseMove"></a>Mode 3</strong> (has no effect on Windows 9x; requires v1.0.43.11+)</u>: This mode operates independently of the other two. For example, if <em>BlockInput On</em> and <em>BlockInput MouseMove</em> are both in effect, mouse movement will be blocked until both are turned off.</p>
---
>       <p><u><strong><a name="MouseMove"></a>Mode 3</strong></u>: This mode operates independently of the other two. For example, if <em>BlockInput On</em> and <em>BlockInput MouseMove</em> are both in effect, mouse movement will be blocked until both are turned off.</p>
52,59d51
<     <td>Windows 95 </td>
<     <td>No effect. </td>
<   </tr>
<   <tr>
<     <td>Windows 98/Me</td>
<     <td>User input is blocked and AutoHotkey is <strong>unable</strong> to simulate input. </td>
<   </tr>
<   <tr>
73,74c65
< Windows 98/Me: Although scripts are unable to send keystrokes and mouse clicks on these operating systems during BlockInput, commands such as <a href="WinMove.htm">WinMove</a> will still work. <a href="ControlSend.htm">ControlSend </a>might also work. </p>
< <p>Certain types of <a href="_UseHook.htm">hook hotkeys</a> can still be triggered when BlockInput is on. Examples include "MButton" (mouse hook) and "LWin & Space" (keyboard hook with explicit prefix rather than modifiers "$#").</p>
---
> Certain types of <a href="_UseHook.htm">hook hotkeys</a> can still be triggered when BlockInput is on. Examples include "MButton" (mouse hook) and "LWin & Space" (keyboard hook with explicit prefix rather than modifiers "$#").</p>
79,80c70
< <pre class="NoIndent">if A_OSType <> WIN32_WINDOWS <em>; i.e. it's not Windows 9x.</em>
<     BlockInput, on
---
> <pre class="NoIndent">BlockInput, on


  • Guests
  • Last active:
  • Joined: --
-------------------
From docs/commands/Click.htm
48c48
< <p><strong>Mouse Wheel</strong> (this has no effect on Windows 9x): Specify WheelUp or WU to turn the wheel upward (away from you); specify WheelDown or WD to turn the wheel downward (toward you). In v1.0.48+, WheelLeft (or WL) or WheelRight (or WR) may also be specified (but they have no effect on older operating systems older than Windows Vista). For <em>ClickCount</em> (below), specify the number of notches to turn the wheel. However, some applications do not obey a <em>ClickCount</em> higher than 1 for the mouse wheel. For them, use a <a href="Loop.htm">Loop</a> such as the following:</p>
---
> <p><strong>Mouse Wheel</strong>: Specify WheelUp or WU to turn the wheel upward (away from you); specify WheelDown or WD to turn the wheel downward (toward you). In v1.0.48+, WheelLeft (or WL) or WheelRight (or WR) may also be specified (but they have no effect on older operating systems older than Windows Vista). For <em>ClickCount</em> (below), specify the number of notches to turn the wheel. However, some applications do not obey a <em>ClickCount</em> higher than 1 for the mouse wheel. For them, use a <a href="Loop.htm">Loop</a> such as the following:</p>
-------------------
From docs/commands/Drive.htm
20c20
< Lock, Drive</strong>: Prevents a drive's eject feature from working. For example: "Drive, Lock, D:". Most drives cannot be "locked open". However, locking the drive while it is open will probably result in it becoming locked the moment it is closed. This command has no effect on drives that do not support locking (such as most read-only drives), nor is it likely to work on non-IDE drives on Windows 95/98/Me. If a drive is locked by a script and that script exits, the drive will stay locked until another script or program unlocks it, or the system is restarted. If the specified drive does not exist or does not support the locking feature, ErrorLevel is set to 1. Otherwise, it is set to 0.</p>
---
> Lock, Drive</strong>: Prevents a drive's eject feature from working. For example: "Drive, Lock, D:". Most drives cannot be "locked open". However, locking the drive while it is open will probably result in it becoming locked the moment it is closed. This command has no effect on drives that do not support locking (such as most read-only drives). If a drive is locked by a script and that script exits, the drive will stay locked until another script or program unlocks it, or the system is restarted. If the specified drive does not exist or does not support the locking feature, ErrorLevel is set to 1. Otherwise, it is set to 0.</p>
-------------------
From docs/commands/Exit.htm
20c20
<   <dd><p>An integer between -2147483648 and 2147483647 (can be an <a href="../Variables.htm#Expressions">expression</a>) that is returned to its caller when the script exits. This code is accessible to any program that spawned the script, such as another script (via RunWait) or a batch (.bat) file. If omitted, ExitCode defaults to zero. Zero is traditionally used to indicate success. Note: Windows 95 may be limited in how large ExitCode can be.</p></dd>
---
>   <dd><p>An integer between -2147483648 and 2147483647 (can be an <a href="../Variables.htm#Expressions">expression</a>) that is returned to its caller when the script exits. This code is accessible to any program that spawned the script, such as another script (via RunWait) or a batch (.bat) file. If omitted, ExitCode defaults to zero. Zero is traditionally used to indicate success.</p></dd>
-------------------
From docs/commands/ExitApp.htm
20c20
<   <dd><p>An integer between -2147483648 and 2147483647 (can be an <a href="../Variables.htm#Expressions">expression</a>) that is returned to its caller when the script exits. This code is accessible to any program that spawned the script, such as another script (via RunWait) or a batch (.bat) file. If omitted, ExitCode defaults to zero. Zero is traditionally used to indicate success. Note: Windows 95 may be limited in how large ExitCode can be.</p></dd>
---
>   <dd><p>An integer between -2147483648 and 2147483647 (can be an <a href="../Variables.htm#Expressions">expression</a>) that is returned to its caller when the script exits. This code is accessible to any program that spawned the script, such as another script (via RunWait) or a batch (.bat) file. If omitted, ExitCode defaults to zero. Zero is traditionally used to indicate success.</p></dd>
-------------------
From docs/commands/FileSelectFolder.htm
35c35
<       <p><strong>1</strong> (default): A button is provided that allows the user to create new folders. However, the button will not be present on Windows 95/98/NT.</p>
---
>       <p><strong>1</strong> (default): A button is provided that allows the user to create new folders.</p>
-------------------
From docs/commands/FileSetTime.htm
51d50
< <p>Under Windows 95/98/ME, changing the timestamp of folders is not supported. Attempts to do so are ignored.</p>
-------------------
From docs/commands/GuiControls.htm
59c59
< <p>Although multi-line edit controls are limited to 64 KB of text on Windows 95/98/Me, they may have as much as 4 GB of text on Windows NT/2k/XP or later. As the user enters text, more memory is  allocated as needed.</p>
---
> <p>Multi-line edit controls may have as much as 4 GB of text on Windows NT/2k/XP or later. As the user enters text, more memory is  allocated as needed.</p>
92c92
< <p><span class="green">Range</span>: Sets the range to be something other than 0 to 100. After the word Range, specify the minimum, a dash, and maximum. For example, Range1-1000 would allow a number between 1 and 1000 to be selected; Range-50-50 would allow a number between -50 and 50; and Range-10--5 would allow a number between -10 and -5. The minimum and maximum may be swapped to cause the arrows to move in the opposite of their normal direction. The broadest allowable range is -2147483648-2147483647. However, Windows 95 and NT4 require Internet Explorer 5.0 or later to support a range broader than -32767-32767. Finally, if the buddy control is a <a href="#ListBox">ListBox</a>, the range defaults to 32767-0 for verticals and the inverse for horizontals (<a href="#Horz">Horz</a>).</p>
---
> <p><span class="green">Range</span>: Sets the range to be something other than 0 to 100. After the word Range, specify the minimum, a dash, and maximum. For example, Range1-1000 would allow a number between 1 and 1000 to be selected; Range-50-50 would allow a number between -50 and 50; and Range-10--5 would allow a number between -10 and -5. The minimum and maximum may be swapped to cause the arrows to move in the opposite of their normal direction. The broadest allowable range is -2147483648-2147483647. Finally, if the buddy control is a <a href="#ListBox">ListBox</a>, the range defaults to 32767-0 for verticals and the inverse for horizontals (<a href="#Horz">Horz</a>).</p>
107d106
< <p>Due to an OS bug, animated cursors scaled to a size greater than 90x90 on Windows 95/98/Me might crash the script.</p>
216d214
< <p>Windows 95 and NT4 require DLL versions at least as new as those distributed with Internet Explorer 3.0 to support DateTime controls.</p>
233d230
< <p>Windows 95 and NT4 require DLL versions at least as new as those distributed with Internet Explorer 3.0 to support MonthCal controls.</p>
258c255
< <p><span class="green">Buddy1</span> and <span class="green">Buddy2</span>: Specifies up to two existing controls to automatically reposition at the ends of the slider. Buddy1 is displayed at the left or top side (depending on whether the Vertical option is present). Buddy2 is displayed at the right or bottom side. After the word Buddy1 or Buddy2, specify the <a href="Gui.htm#var">variable name</a> of an existing control. For example, Buddy1MyTopText would assign the control whose variable name is MyTopText. Windows 95 and NT4 require Internet Explorer 3.0 or later to support this option.</p>
---
> <p><span class="green">Buddy1</span> and <span class="green">Buddy2</span>: Specifies up to two existing controls to automatically reposition at the ends of the slider. Buddy1 is displayed at the left or top side (depending on whether the Vertical option is present). Buddy2 is displayed at the right or bottom side. After the word Buddy1 or Buddy2, specify the <a href="Gui.htm#var">variable name</a> of an existing control. For example, Buddy1MyTopText would assign the control whose variable name is MyTopText.</p>
268c265
< <p><span class="green">ToolTip</span>: Creates a tooltip that reports the numeric position of the slider as the user is dragging it. To have the tooltip appear in a non-default position, specify one of the following instead: ToolTipLeft or ToolTipRight (for horizontal sliders); ToolTipTop or ToolTipBottom (for vertical sliders). Windows 95 and NT4 require Internet Explorer 3.0 or later to support this option.</p>
---
> <p><span class="green">ToolTip</span>: Creates a tooltip that reports the numeric position of the slider as the user is dragging it. To have the tooltip appear in a non-default position, specify one of the following instead: ToolTipLeft or ToolTipRight (for horizontal sliders); ToolTipTop or ToolTipBottom (for vertical sliders).</p>
282c279
< <p><span class="green">Range</span>: Sets the range to be something other than 0 to 100. After the word Range, specify the minimum, a dash, and maximum. For example, Range0-1000 would allow a numbers between 0 and 1000; Range-50-50 would allow numbers between -50 and 50; and Range-10--5 would allow numbers between -10 and -5. On Windows 95 and NT4, negative ranges and ranges beyond 65535 will not behave correctly unless Internet Explorer 3.0 or later is installed.</p>
---
> <p><span class="green">Range</span>: Sets the range to be something other than 0 to 100. After the word Range, specify the minimum, a dash, and maximum. For example, Range0-1000 would allow a numbers between 0 and 1000; Range-50-50 would allow numbers between -50 and 50; and Range-10--5 would allow numbers between -10 and -5.</p>
284c281
< <p><span class="green">Vertical</span>: Makes the bar rise or fall vertically rather than move along horizontally. Windows 95 and NT4 require Internet Explorer 3.0 or later to support this option.</p>
---
> <p><span class="green">Vertical</span>: Makes the bar rise or fall vertically rather than move along horizontally.</p>
-------------------
From docs/commands/index.htm
379c379
<     <td>Waits for the user to type a string (not supported on Windows 9x: it does nothing).</td>
---
>     <td>Waits for the user to type a string.</td>
531c531
<     <td>Specifies a set of user credentials to use for all subsequent uses of <a href="Run.htm">Run</a> and <a href="Run.htm">RunWait</a>. Requires Windows 2000/XP or later.</td>
---
>     <td>Specifies a set of user credentials to use for all subsequent uses of <a href="Run.htm">Run</a> and <a href="Run.htm">RunWait</a>.</td>
688c688
<     <td>Creates a balloon message window near the tray icon. Requires Windows 2000/XP or later. </td>
---
>     <td>Creates a balloon message window near the tray icon.</td>
-------------------
From docs/commands/ListView.htm
117c117
< <p><span class="green">Icon</span>: Specify the word Icon followed immediately by the number of the <a href="#IL">ImageList's</a> icon to display next to the column header's text. Specify -Icon (minus icon) to remove any existing icon. On Windows 95/NT4, column icons require the DLLs distributed with Internet Explorer 3.0 or later.</p>
---
> <p><span class="green">Icon</span>: Specify the word Icon followed immediately by the number of the <a href="#IL">ImageList's</a> icon to display next to the column header's text. Specify -Icon (minus icon) to remove any existing icon.</p>
208c208
<     <a href="#IL_Add">IL_Add</a>(ImageListID, "shell32.dll", A_Index)  <em>; Omits the DLL's path so that it works on Windows 9x too.</em>
---
>     <a href="#IL_Add">IL_Add</a>(ImageListID, "shell32.dll", A_Index)  
246d245
< <p>Windows 95 and NT4: If the system lacks version 4.70 or later of Comctl32.dll, Shell32.dll, and Shlwapi.dll -- which are distributed with various updates and applications such as Internet Explorer 3.0 or later -- ListViews are more limited and some features might not behave as expected.</p>
-------------------
From docs/commands/Menu.htm
60c60
< <p>There are some icons built into the operating system's DLLs and CPLs that might be useful. For example: <em>Menu, Tray, Icon, Shell32.dll, 174 <em>; Omits the DLL's path so that it works on Windows 9x too.</em></em></p>
---
> <p>There are some icons built into the operating system's DLLs and CPLs that might be useful. For example: <em>Menu, Tray, Icon, Shell32.dll, 174</em></p>
67c67
< <p><strong>Color, ColorValue [, Single]</strong>: Changes the background color of the menu to <em>ColorValue</em>, which is one of the 16 primary HTML color names or a 6-digit RGB color value (see <a href="../misc/Colors.htm">color chart</a>). Leave <em>ColorValue</em> blank (or specify the word Default) to restore the menu to its default color. If the word Single is not present as the next parameter, any submenus attached to this menu will also be changed in color. This command has no effect on Windows 95/NT.</p>
---
> <p><strong>Color, ColorValue [, Single]</strong>: Changes the background color of the menu to <em>ColorValue</em>, which is one of the 16 primary HTML color names or a 6-digit RGB color value (see <a href="../misc/Colors.htm">color chart</a>). Leave <em>ColorValue</em> blank (or specify the word Default) to restore the menu to its default color. If the word Single is not present as the next parameter, any submenus attached to this menu will also be changed in color.</p>
-------------------
From docs/commands/Process.htm
25c25
<     <p><em>Param3</em> should be one of the following letters or words: L (or Low), B (or BelowNormal), N (or Normal), A (or AboveNormal), H (or High), R (or Realtime). Since BelowNormal and AboveNormal are not supported on Windows 95/98/Me/NT4, <em>normal</em> will be automatically substituted for them on those operating systems. Note: Any process not designed to run at Realtime priority might reduce system stability if set to that level.</p>
---
>     <p><em>Param3</em> should be one of the following letters or words: L (or Low), B (or BelowNormal), N (or Normal), A (or AboveNormal), H (or High), R (or Realtime). Note: Any process not designed to run at Realtime priority might reduce system stability if set to that level.</p>
46d45
< <p> To work under Windows NT4, the Process command requires the file PSAPI.DLL, which is normally already present in the AutoHotkey installation directory (i.e. no extra installation steps should be needed even for NT). However, to use it from within a <a href="../Scripts.htm#ahk2exe">compiled script</a>  on Windows NT4, include a copy of PSAPI.DLL in the same folder as the script or in one of the directories in the system's PATH (though some NT4 systems might already have the DLL).</p>
-------------------
From docs/commands/RegWrite.htm
41c41
< <p> Although no more than 64 KB of data can be written to REG_BINARY  and REG_MULTI_SZ values, the other types are unlimited except under Windows 95/98/ME, which have a 64 KB limit for all types. If the 64 KB limit applies, data beyond that limit will not be written. In other words, only the first 64 KB of a very large string will be saved to the registry.</p>
---
> <p> Although no more than 64 KB of data can be written to REG_BINARY  and REG_MULTI_SZ values, the other types are unlimited. If the 64 KB limit applies, data beyond that limit will not be written. In other words, only the first 64 KB of a very large string will be saved to the registry.</p>
43c43
< <p> When writing a REG_MULTI_SZ key, you must separate each component from the next with a linefeed character (`n). The last component may optionally end with a linefeed as well. No blank components are allowed. In other words, do not specify two linefeeds in a row (`n`n) because that will result in a shorter-than-expected value being written to the registry.  Note: Windows 95 does not support the REG_MULTI_SZ value type.</p>
---
> <p> When writing a REG_MULTI_SZ key, you must separate each component from the next with a linefeed character (`n). The last component may optionally end with a linefeed as well. No blank components are allowed. In other words, do not specify two linefeeds in a row (`n`n) because that will result in a shorter-than-expected value being written to the registry.</p>
-------------------
From docs/commands/Shutdown.htm
64d63
< ; Windows 95/NT4: Since this function does not exist, the following call would have no effect.
-------------------
From docs/commands/SoundBeep.htm
29c29
< <p>On Windows 9x, the <em>Frequency</em> and <em>Duration</em> parameters are ignored. Instead, the system default sound event is played through the sound card. If the computer lacks a sound card, a standard beep is played through the PC speaker.</p>
---
> <p>If the computer lacks a sound card, a standard beep is played through the PC speaker.</p>
-------------------
From docs/commands/SysGet.htm
32,33c32,33
< <p><strong>MonitorCount</strong>: Retrieves the total number of monitors. Unlike SM_CMONITORS mentioned in the table below, <em>MonitorCount </em>includes all monitors, even those not being used as part of the desktop. On Windows 95/NT the count is always 1.</p>
< <p><strong>MonitorPrimary</strong>: Retrieves the number of the primary monitor, which will be 1 in a single-monitor system. On Windows 95/NT the primary monitor is always 1.</p>
---
> <p><strong>MonitorCount</strong>: Retrieves the total number of monitors. Unlike SM_CMONITORS mentioned in the table below, <em>MonitorCount </em>includes all monitors, even those not being used as part of the desktop.</p>
> <p><strong>MonitorPrimary</strong>: Retrieves the number of the primary monitor, which will be 1 in a single-monitor system.</p>
50c50
< <td>SM_CMONITORS: Number of display monitors on the desktop (not including "non-display pseudo-monitors"). <B>Windows 95/NT: </B>The retrieved value is always 0.</TD>
---
> <td>SM_CMONITORS: Number of display monitors on the desktop (not including "non-display pseudo-monitors").</TD>
91c91
<        the virtual screen. <B>Windows NT, Windows 95:  </B>The retrieved value is always 0.</TD>
---
>        the virtual screen.</TD>
99c99
< <td>SM_MOUSEWHEELPRESENT: Nonzero if a mouse with a wheel is installed; zero otherwise. <B>Windows 95:  </B>The retrieved value is always 0.</TD>
---
> <td>SM_MOUSEWHEELPRESENT: Nonzero if a mouse with a wheel is installed; zero otherwise.</TD>
110c110
<     session is remotely controlled; zero otherwise. <B>Windows 2000/NT, Windows Me/98/95:  </B>The retrieved value is always 0.</TD>
---
>     session is remotely controlled; zero otherwise.</TD>
118c118
<     is not necessarily the physical console. <B>Windows NT 4.0 SP3 and earlier, Windows Me/98/95:  </B>The retrieved value is always 0.</TD>
---
>     is not necessarily the physical console.</TD>
130c130
<     SM_SHUTTINGDOWN: Nonzero if the current session is shutting down; zero otherwise. <B>Windows 2000/NT, Windows Me/98/95:  </B>The retrieved value is always 0.</TD>
---
>     SM_SHUTTINGDOWN: Nonzero if the current session is shutting down; zero otherwise. <B>Windows 2000/NT: </B>The retrieved value is always 0.</TD>
141c141
<     and height of the virtual screen. <B>Windows NT, Windows 95:  </B>The retrieved value is always 0.</TD>
---
>     and height of the virtual screen.</TD>
188c188
<     <td>SM_CXFOCUSBORDER, SM_CYFOCUSBORDER: Width (in pixels) of the left and right edges and the height of the top and bottom edges of a control's focus rectangle. <B>Windows 2000/NT, Windows Me/98/95:  </B>The retrieved value is always 0.</TD>
---
>     <td>SM_CXFOCUSBORDER, SM_CYFOCUSBORDER: Width (in pixels) of the left and right edges and the height of the top and bottom edges of a control's focus rectangle. <B>Windows 2000/NT:</B> The retrieved value is always 0.</TD>
260c260
<     <td> SM_DBCSENABLED: Nonzero if User32.dll supports DBCS; zero otherwise. <B>Windows Me/98/95:  </B>Nonzero if the double-byte character-set (DBCS) version of User.exe is installed; zero otherwise.</TD>
---
>     <td> SM_DBCSENABLED: Nonzero if User32.dll supports DBCS; zero otherwise.</TD>
268c268
<     <td> SM_IMMENABLED: Nonzero if Input Method Manager/Input Method Editor features are enabled; zero otherwise. <B>Windows NT, Windows Me/98/95:  </B>The retrieved value is always 0.
---
>     <td> SM_IMMENABLED: Nonzero if Input Method Manager/Input Method Editor features are enabled; zero otherwise. 
293c293
<     <td>SM_SAMEDISPLAYFORMAT: Nonzero if all the display monitors have the same color format, zero otherwise. Note that two displays can have the same bit depth, but different color formats. For example, the red, green, and blue pixels can be encoded with different numbers of bits, or those bits can be located in different places in a pixel's color value. <B>Windows NT, Windows 95:  </B>The retrieved value is always 0.</TD>
---
>     <td>SM_SAMEDISPLAYFORMAT: Nonzero if all the display monitors have the same color format, zero otherwise. Note that two displays can have the same bit depth, but different color formats. For example, the red, green, and blue pixels can be encoded with different numbers of bits, or those bits can be located in different places in a pixel's color value. </TD>
297c297
<     <td>SM_SLOWMACHINE: Always zero on Windows NT/2000/XP or later. Nonzero on Windows 95/98/ME only if the computer has at least one of: a 386 processor, less than 6M of RAM, or a videocard that claims to be slow.</TD>
---
>     <td>SM_SLOWMACHINE: Always zero on Windows NT/2000/XP or later.</TD>
-------------------
From docs/commands/TrayTip.htm
13c13
< <p>Creates a balloon message window near the tray icon. Requires Windows 2000/XP or later.</p>
---
> <p>Creates a balloon message window near the tray icon.</p>
45d44
< <p> TrayTip requires Windows 2000/XP or later. On Windows 9x/NT, the command does nothing.</p>
-------------------
From docs/commands/TreeView.htm
53,56c53
< <p><strong>HScroll</strong>: Specify -HScroll (minus HScroll) to disable horizontal scrolling in the control (in addition, the control will not display any horizontal scroll bar). On operating systems older than Windows 2000/Me, this option has no effect unless the system has
< 
< 
<  Comctl32.dll 5.8 or greater (distributed with applications such as Internet Explorer 5 or later).</p>
---
> <p><strong>HScroll</strong>: Specify -HScroll (minus HScroll) to disable horizontal scrolling in the control (in addition, the control will not display any horizontal scroll bar)..</p>
60c57
<     <a href="ListView.htm#IL_Add">IL_Add</a>(ImageListID, "shell32.dll", A_Index)  <em>; Omits the DLL's path so that it works on Windows 9x too.</em>
---
>     <a href="ListView.htm#IL_Add">IL_Add</a>(ImageListID, "shell32.dll", A_Index)  
166d162
< <p>Windows 95 and NT4: If the system lacks version 4.70 or later of Comctl32.dll, Shell32.dll, and Shlwapi.dll -- which are distributed with various updates and applications such as Internet Explorer 3.0 or later -- TreeViews are more limited and some features might not behave as expected.</p>
186c182
< Loop 5  <em>; Below omits the DLL's path so that it works on Windows 9x too:</em>
---
> Loop 5  
-------------------
From docs/commands/WinGetText.htm
44d43
< <p>Windows 95/98/ME may be limited to 64 KB for some text elements of certain windows.</p>
-------------------
From docs/commands/WinSet.htm
46c46
< <p><a href="../misc/ErrorLevel.htm">ErrorLevel</a> is set to 1 upon failure and 0 upon success. Failure occurs if the target window is not found or the style is not allowed to be applied (which happens more often on Windows 9x).</p>
---
> <p><a href="../misc/ErrorLevel.htm">ErrorLevel</a> is set to 1 upon failure and 0 upon success. Failure occurs if the target window is not found or the style is not allowed to be applied.</p>
65d64
<   <li>They have no effect on Windows 9x and NT4.</li>
84c83
< <p>Makes all pixels of the chosen color invisible inside the target window, which allows the contents of the window behind it to show through (has no effect on Windows 9x and NT4). If the user clicks on an invisible pixel, the click will "fall through" to the window behind it. Specify for <em>Color</em> a color name or RGB value (see the <a href="../misc/Colors.htm">color chart</a> for guidance, or use <a href="PixelGetColor.htm">PixelGetColor</a> in its RGB mode). To additionally make the visible part of the window partially transparent, append a space (not a comma) followed by the transparency level (0-255). For example: <em>WinSet, TransColor, EEAA99 150, WinTitle</em></p>
---
> <p>Makes all pixels of the chosen color invisible inside the target window, which allows the contents of the window behind it to show through. If the user clicks on an invisible pixel, the click will "fall through" to the window behind it. Specify for <em>Color</em> a color name or RGB value (see the <a href="../misc/Colors.htm">color chart</a> for guidance, or use <a href="PixelGetColor.htm">PixelGetColor</a> in its RGB mode). To additionally make the visible part of the window partially transparent, append a space (not a comma) followed by the transparency level (0-255). For example: <em>WinSet, TransColor, EEAA99 150, WinTitle</em></p>
-------------------
From docs/commands/_IfWinActive.htm
43c43
< <p>When a mouse or keyboard hotkey is disabled via #IfWin, it performs its native function; that is, it passes through to the active window as though there is no such hotkey. There are two exceptions: 1) Windows 95/98/Me: pressing an IfWin-disabled hotkey has no effect (not even its native function); and 2) Joystick hotkeys: although #IfWin works, it never prevents other programs from seeing the press of a button.</p>
---
> <p>When a mouse or keyboard hotkey is disabled via #IfWin, it performs its native function; that is, it passes through to the active window as though there is no such hotkey. There is one exception: Joystick hotkeys: although #IfWin works, it never prevents other programs from seeing the press of a button.</p>
78,82c78
< <p>For performance reasons, #IfWin does not continuously monitor the activation or existence of the specified windows. Instead, it checks for a matching window only when you type a hotkey or hotstring. If a matching window is not present, your keystroke or mouse click is allowed to pass through to the active window unaltered (except on Windows 95/98/Me).</p>
< <p>Windows 95/98/Me: If the first variant of a hotkey has a $ prefix, all variants will be allowed to "send themselves". This provides a means for a hotkey to perform its native function rather than doing nothing at all. For example:</p>
< <pre>$^a::Send ^a  <em>; The first variant must have a $ prefix to allow it to "send itself" on Windows 9x.</em>
< #IfWinActive ahk_class Notepad
< ^a::MsgBox You pressed Control-A while Notepad is active.</pre>
---
> <p>For performance reasons, #IfWin does not continuously monitor the activation or existence of the specified windows. Instead, it checks for a matching window only when you type a hotkey or hotstring. If a matching window is not present, your keystroke or mouse click is allowed to pass through to the active window unaltered.</p>
-------------------
From docs/commands/_UseHook.htm
28c28
< <p>Turning this directive ON is equivalent to using the <a href="../Hotkeys.htm#prefixdollar">$ prefix</a> in the definition of each affected hotkey. The exception to this is Windows 95/98/Me, upon which #UseHook is ignored (though the <a href="../Hotkeys.htm#prefixdollar">$ prefix</a> works in a limited fashion).</p>
---
> <p>Turning this directive ON is equivalent to using the <a href="../Hotkeys.htm#prefixdollar">$ prefix</a> in the definition of each affected hotkey.</p>
-------------------
From docs/commands/_WinActivateForce.htm
18d17
< <p>Windows 95 and NT will probably never need this setting since they are more permissive about allowing windows to be activated.</p>