return
serves to finish the hotkey. However, if a hotkey needs to execute only a single line, that line can be listed to the right of the double-colon. In other words, the return
is implicit:^!s
to indicate Control+Alt+S:Symbol | Description |
---|---|
# | Win (Windows logo key). [v1.0.48.01+]: For Windows Vista and later, hotkeys that include the Win key (e.g. #a) will wait for the Win key to be released before sending any text containing an L keystroke. This prevents usages of Send within such a hotkey from locking the PC. This behavior applies to all sending modes except SendPlay (which doesn't need it) and blind mode. [v1.1.29+]:Text mode is also excluded. Note: Pressing a hotkey which includes the Win key may result in extra simulated keystrokes (Ctrl by default). See #MenuMaskKey. |
! | Alt Note: Pressing a hotkey which includes the Alt key may result in extra simulated keystrokes (Ctrl by default). See #MenuMaskKey. |
^ | Control |
+ | Shift |
& | An ampersand may be used between any two keys or mouse buttons to combine them into a custom hotkey. See below for details. |
< | Use the left key of the pair. e.g. <!a is the same as !a except that only the left Alt key will trigger it. |
> | Use the right key of the pair. |
<^>! | AltGr (alternate graving). If your keyboard layout has AltGr instead of a right Alt key, this series of symbols can usually be used to stand for AltGr. For example: Alternatively, to make AltGr itself into a hotkey, use the following hotkey (without any hotkeys like the above present): |
* | Wildcard: Fire the hotkey even if extra modifiers are being held down. This is often used in conjunction with remapping keys or buttons. For example: Wildcard hotkeys always use the keyboard hook, as do any hotkeys eclipsed by a wildcard hotkey. For example, the presence of *a:: would cause ^a:: to always use the hook. |
~ | When the hotkey fires, its key's native function will not be blocked (hidden from the system). Sonic adventure dx for mac. In both of the below examples, the user's click of the mouse button will be sent to the active window: Unlike the other prefix symbols, the tilde prefix is allowed to be present on some of a hotkey's variants but absent on others. However, if a tilde is applied to the prefix key of any custom combination which has not been turned off or suspended, it affects the behavior of that prefix key for all combinations. Special hotkeys that are substitutes for alt-tab always ignore the tilde prefix. [v1.1.14+]: If the tilde prefix is applied to a custom modifier key (prefix key) which is also used as its own hotkey, that hotkey will fire when the key is pressed instead of being delayed until the key is released. For example, the ~RButton hotkey above is fired as soon as the button is pressed. Prior to [v1.1.14] (or without the tilde prefix), it was fired when the button was released, but only if the RButton & C combination was not activated. If the tilde prefix is applied only to the custom combination and not the non-combination hotkey, the key's native function will still be blocked. For example, in the script below, holding Menu will show the ToolTip and will not trigger a context menu: If at least one variant of a keyboard hotkey has the tilde modifier, that hotkey always uses the keyboard hook. |
$ | This is usually only necessary if the script uses the Send command to send the keys that comprise the hotkey itself, which might otherwise cause it to trigger itself. The $ prefix forces the keyboard hook to be used to implement this hotkey, which as a side-effect prevents the Send command from triggering it. The $ prefix is equivalent to having specified #UseHook somewhere above the definition of this hotkey.The $ prefix has no effect for mouse hotkeys, since they always use the mouse hook. It also has no effect for hotkeys which already require the keyboard hook, including any keyboard hotkeys with the tilde (~) or wildcard (*) modifiers, key-up hotkeys and custom combinations. To determine whether a particular hotkey uses the keyboard hook, use ListHotkeys. [v1.1.06+]:#InputLevel and SendLevel provide additional control over which hotkeys and hotstrings are triggered by the Send command. |
UP | The word UP may follow the name of a hotkey to cause the hotkey to fire upon release of the key rather than when the key is pressed down. The following example remaps the left Win key to become the left Control key: 'Up' can also be used with normal hotkeys as in this example: ^!r Up::MsgBox You pressed and released Ctrl+Alt+R . It also works with combination hotkeys (e.g. F1 & e Up:: )Limitations: 1) 'Up' does not work with joystick buttons; and 2) An 'Up' hotkey without a normal/down counterpart hotkey will completely take over that key to prevent it from getting stuck down. One way to prevent this is to add a tilde prefix (e.g. ~LControl up:: )'Up' hotkeys and their key-down counterparts (if any) always use the keyboard hook. On a related note, a technique similar to the above is to make a hotkey into a prefix key. The advantage is that although the hotkey will fire upon release, it will do so only if you did not press any other key while it was held down. For example: |
1 & 2::
will activate even if Ctrl or Alt is held down when 1 and 2 are pressed, whereas ^1::
would be activated only by Ctrl+1 and not Ctrl+Alt+1.<+s::
is recommended over LShift & s::
.a & b::
causes ^a::
to always use the hook.SetNumLockState AlwaysOn
.~WheelDown::ToolTip %A_EventInfo%
.#z::
produces an error like 'Invalid Hotkey', your system's keyboard layout/language might not have the specified character ('Z' in this case). Try using a different character that you know exists in your keyboard layout.Gosub ^!s
.