This is usually only necessary if the script uses the Send function 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 function 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.
#InputLevel and SendLevel provide additional control over which hotkeys and hotstrings are triggered by the Send function.
1::
send 1
send 2
return
А потом так: $1::
send 1
send 2
return
В первом случае цифра 1 не отправится. $1::
send 3
send 2
Return
$2::
send 1
Return