The AutoHotkey command Hotkey allows for the creation of dynamic hotkeys at runtime, but its syntax and documentation seems to limit it to built-in or existing labels/subroutines, which makes it much less useful:
Hotkey, KeyName [, Label, Options]
Is there a way to get it to work like regular, hard-coded hotkeys? For example:
#z::MsgBox foobar ; Typical, hard-coded hotkey pops up a message-box
Hotkey, z, MsgBox foobar ; Nope; complains about missing label “MsgBox foobar”
It looks like it might be possible due to the following line from the manual, however it is not clear how it would work:
Label – Both normal labels and hotkey/hotstring labels can be used.
Doing exactly what you want isn’t possible in AutoHotkey. This is the closest way I can think of.
Call this file
Hotkeys.ahk, and put it inMy Documents/AutoHotkey/Lib. Alternatively make a folder called Lib, and put it in the same directory as your main script.Here’s an example script that you could use it with.
The first parameter is the hotkey, the second is the function to call, and everything after that is passed to the function.