我正在寻找使用AutoHotKey来修改我的Shift键的功能。该功能在Steve Losh的Blog条目here中进行了描述。具体来说,我希望我的shift键能够执行以下操作:
如果在300毫秒内按下并释放LShift或RShift,并且之间没有按下其他键,请分别发送(
或)
。
如果LShift和RShift在300ms内“滚动”在一起(按LShift,按RShift,释放LShift,释放RShift等),则发送()
或)(
。
如果不正确使用Shift键(LShift和S,RShift和K等),则不会发生任何事情。
我一直对300ms要求和“滚动”功能有疑问。具体来说,由于热键组合,我只能检测何时释放键,这是一个问题:
LShift & 0:: return
这是我到目前为止的位置:
LShift::
Send {LShift Down}
KeyWait, LShift
Send {LShift Up}
if (A_TimeSinceThisHotkey < 300){
if (A_PriorKey = "LShift")
{
Send {)}
}
}
return
最佳答案
无论如何,我都看不出使用300毫秒超时的理由,这似乎是不可靠和不必要的。
看一下这段注释过的代码,它简短高效,似乎可以满足您的所有要求:
LShift::Send, (
RShift::Send, )
LShift & RShift:: Send, ()
RShift & LShift:: Send, )(
/* Put your unwanted combinations here
* and let them do nothing
*/
LShift & q::return
RShift & y::return
编辑:
由于LShift和RShift已经是前缀热键,因此我省略了here中描述的技巧。