Cerberus wrote:Then I am back at not understanding how {Blind} could help with hotkeys like ^d::^c (or ^c::^c, for that matter, which I also use).
I may have not followed the thread decently, only skimming ove rit. But wanted to try to clarify this point, at least how I understand it.
Doing
^d::Send ^c results in these actions for the computer:
Human has pressed Ctrl
Human has pressed d
AHK recognizes this is a hotkey -- "Ah! It's a hotkey!"
AHK anticipates the Send command, {Blind} is not there
*AHK releases the Ctrl key
*AHK presses the Ctrl key
AHK presses the c key
Active program recognizes that as the copy shortcut and performs the supported action
AHK releases the c key
AHK releases the Ctrl key
Human may release Ctrl or d at their leisure
What I marked with asterisks is where I suspect the problem arises. Sometimes the computer sees that Ctrl was released, but does not see that Ctrl was pressed again practically immediately after.
I might be wrong about this and would be happy to be corrected, or told that this was already discussed, but does
Send CAPITALS result in a key sequence like?
Code: Select all
Send {Shift down}
Send c
Send {Shift up}
Send {Shift down}
Send a
Send {Shift up}
Send {Shift down}
Send p
Send {Shift up}
..
If so, that can explain why at times the capital letters are not coming through for OP.
Well, I Tested it. The answer is yes and no. No, as keyhistory indicates that
Send CAPITALS results in a single {Shift down} followed by c, a, p, ... l, s and then a {Shift up}. However! Yes in that if there are letters in between that shouldn't be capitalized, Shift is released. That makes sense. But note that the
space character is considered uncapitalized. If I instead ask for
Send CAP I TALS, Shift is released after the p, space is pressed, then Shift is pressed down again for the i, i is sent, Shift is released, space is pressed, then Shift is pressed, and t, a, l, s are sent, then Shift is released.
So with the rapid sequence of {Shift up}space{Shift down}, sometimes the Shift down is ignored or is processed late by the system, even after other letter keys have been processed.