With a basic test, I noticed your error happens because script calls the ^!a when you press the a button, AND when you release it...
To override this just use keywait:
Code:
#usehook on
a::b
^!a::
run, cmd
keywait a
return
^!b::run, explore
and this one should work too, when you release the A:
Code:
#usehook on
a::b
^!a up::run, cmd
^!b::run, explore
Don't know why, but this last will start cmd everytime you press the a button...
Chris?!?! :S
Chris, it seams that your script virtually press ^! when another hotkey is finishing running.
look at this example:
Code:
#usehook on
r::z
^!r Up::MsgBox You pressed and released Ctrl+Alt+R.
Even if you get the hook off, the ^!r will be called when you press r, and a z will be written too.
Strange error :S