Hotstrings and Auto-replace (similar to AutoText and AutoCorrect) Note: Hotstrings require Windows NT/2000/XP or later. Introduction and Simple Examples Although hotstrings are mainly used to expand abbreviations as you type them (auto-replace), they can also be used to launch any scripted action. In this respect, they are similar to hotkeys except that they are typically composed of more than one character (that is, a string). To define a hotstring, enclose the triggering abbreviation between pairs of colons as in this example: ::btw::by the way In the above example, the abbreviation btw will be automatically replaced with "by the way" whenever you type it (however, by default you must type an ending character after typing btw, such as a space, period, or enter). The "by the way" example above is known as an auto-replace hotstring because the typed text is automatically erased and replaced by the string specified after the second pair of colons. Ending Characters #Hotstring EndChars -()[]{}:;'"/\,.?! Options The list below describes each option. ? :b0*?
Hotkeys (Mouse, Joystick and Keyboard Shortcuts) Table of Contents Introduction and Simple Examples Hotkeys are sometimes referred to as shortcut keys because of their ability to easily trigger an action (such as launching a program or keyboard macro). In the following example, the hotkey Win+N is configured to launch Notepad. The pound sign [#] stands for the Windows key, which is known as a modifier: #n:: Run Notepad return In the final line above, "return" serves to finish the hotkey. #n::Run Notepad To use more than one modifier with a hotkey, list them consecutively (the order does not matter). ^! You can use the following modifier symbols to define hotkeys: (See the Key List for a complete list of keyboard keys and mouse/joystick buttons) Multiple hotkeys can be stacked vertically to have them perform the same action. ^Numpad0:: ^Numpad1:: MsgBox Pressing either Control+Numpad0 or Control+Numpad1 will display this message. return A key or key-combination can be disabled for the entire system by having it do nothing. RWin::return ^! ^!
List of Keys and Mouse/Joystick Buttons for Hotkeys and Macros Mouse (mouse hotkeys require Windows NT/2000/XP or later) LButton - the left mouse button RButton - the right mouse button MButton - the middle or wheel mouse button WheelDown - this is equivalent to rotating the mouse wheel down (toward you) WheelUp - the opposite of the above WheelLeft and WheelRight [v1.0.48+] - these two require a mouse with left/right scrolling capability, but they have no effect on operating systems older than Windows Vista. Supported only in Windows 2000/XP or later: XButton1 - a button that appears only on certain mice XButton2 - a button that appears only on certain mice Keyboard Note: The names of the letter and number keys are the same as that single letter or digit. Space - the spacebar Tab Enter (or Return) Escape (or Esc) Backspace (or BS) Delete (or Del) Insert (or Ins) Home End PgUp PgDn Up Down Left Right ScrollLock CapsLock NumLock F1 through F24 - The 12 or more function keys at the top of most keyboards. Joystick Hand-held Remote Controls Special Keys
Variables and Expressions Table of Contents Variables Variable types: AutoHotkey has no explicitly defined variable types. However, a variable containing only digits (with an optional decimal point) is automatically interpreted as a number when a math operation or comparison requires it. (To improve performance, numbers are cached internally to avoid conversions to/from strings.) Variable scope and declarations: With the exception of local variables in functions, all variables are global; that is, their contents may be read or altered by any part of the script. Variable names: Variable names are not case sensitive (for example, CurrentDate is the same as currentdate). Due to style conventions, it is generally better to name your variables using only letters, numbers, and the underscore character (for example: CursorPosition, Total_Items, and entry_is_valid). Although a variable name may consist entirely of digits, this is generally used only for incoming command line parameters. MyVar = MyVar := "" Expressions Misc.