Reputation: 13
I work with a hospital data entry system where no customization is allowed. I have found AutoHotKey to provide effective ways to work around the this system's "slow clunkiness". What I need are more function keys on the keyboard. The best way I have found to approximate that is by remapping key pairs 1 Q:: Alt n, 2 w::ctrl r....ect. The best I could come up with was from AHK site's example and explanation of how to remap letter keys to other letter key destination. I tweaked and adjusted and came up with the following:
1 & q::
SetKeyDelay -1, 40 ;
Send {ctrl Down} ;
Send {Blind}{f Downtemp}
return
1 & q up::
SetKeyDelay -1 ;
Send {Blind}{ctrl up}
Send {Blind}{f Up}
return
This code will do the job but it has a downside. The first key in the sequence looses it's regular function. In this case, I've lost the use of my top row of numbers to become function keys. Is it possible to have the first key revert back to it's native function automatically after it was used in the key pair? I and the other pharmacy personnel will be most grateful for any help you can provide. Thank You.
Upvotes: 1
Views: 416
Reputation: 4065
Key combinations with &
produce prefix keys. To restore a prefix key's original function, you need to define it explicitely:
1 & q::Msgbox, 1
1::Send, 1
+1::Send, {!} ; SHIFT + 1 may depend on your keyboard layout
However, it makes sense to arrange your key combinations in a way that produces as few prefix keys as possible. In your example, if you want to define hotkeys like 1 + q
, 2 + q
, 3 + q
, and so on, it may be smarter to use q
as the first key, leaving you with the necessity of redefining only one key:
SendMode, Input
q & 1::Msgbox, 1
q & 2::Msgbox, 2
q & 3::Msgbox, 3
q::Send, q
+q::Send, Q
; AltGr+q and CTRL+ALT+q also do something in Germany ;)
<^>!q::Send, @
^!q::Send, @
As you can see in the example, you always have to look out for keys that have a (usually third) functionality that's triggered by AltGr
or CTRL+ALT
. But this strongly depends on your keyboard layout.
Upvotes: 1