如何使用特定键重置键序列?
How to reset a key sequence with a specific key?
所以这个序列在 1.5 秒 (t:=1500) 后自行重置,这意味着如果我在 1.5 秒内没有按下鼠标左键,它总是发送 A。否则它会在每次单击后发送下一个字母。
我想用另一个功能进一步调整此代码,该功能也可以用鼠标右键重置序列。因此,如果我随时按下 RButton,它应该重置为 A。
谢谢。
global s:=0, c:=0, t:=1500
*LButton::
Send % Seqkeys("A","B","C")
KeyWait, LButton
Send, R
return
Seqkeys(params*) {
global s, c, t
max := params.MaxIndex()
(A_TickCount-s<=t && (c+=1)<=max) ? c : c:=1
s := A_TickCount
return params[c]
}
仅重置当前键位索引'c',最后点击时间's':
*RButton::
c := 1
s := 0
return
我认为您的脚本将受益于更有意义的变量名称:
global lastClickedTime:=0, currentKeyIndex:=0, clickThreshold:=1500
*LButton::
Send % Seqkeys("A","B","C")
KeyWait, LButton
Send, R
return
*RButton::
currentKeyIndex := 1
clickThreshold := 0
return
Seqkeys(params*) {
global lastClickedTime, currentKeyIndex, clickThreshold
max := params.MaxIndex()
currentKeyIndex += 1
if((A_TickCount - lastClickedTime) <= clickThreshold && currentKeyIndex <= max) {
; Do nothing
} else {
currentKeyIndex := 1
}
lastClickedTime := A_TickCount
return params[currentKeyIndex]
}
所以这个序列在 1.5 秒 (t:=1500) 后自行重置,这意味着如果我在 1.5 秒内没有按下鼠标左键,它总是发送 A。否则它会在每次单击后发送下一个字母。
我想用另一个功能进一步调整此代码,该功能也可以用鼠标右键重置序列。因此,如果我随时按下 RButton,它应该重置为 A。
谢谢。
global s:=0, c:=0, t:=1500
*LButton::
Send % Seqkeys("A","B","C")
KeyWait, LButton
Send, R
return
Seqkeys(params*) {
global s, c, t
max := params.MaxIndex()
(A_TickCount-s<=t && (c+=1)<=max) ? c : c:=1
s := A_TickCount
return params[c]
}
仅重置当前键位索引'c',最后点击时间's':
*RButton::
c := 1
s := 0
return
我认为您的脚本将受益于更有意义的变量名称:
global lastClickedTime:=0, currentKeyIndex:=0, clickThreshold:=1500
*LButton::
Send % Seqkeys("A","B","C")
KeyWait, LButton
Send, R
return
*RButton::
currentKeyIndex := 1
clickThreshold := 0
return
Seqkeys(params*) {
global lastClickedTime, currentKeyIndex, clickThreshold
max := params.MaxIndex()
currentKeyIndex += 1
if((A_TickCount - lastClickedTime) <= clickThreshold && currentKeyIndex <= max) {
; Do nothing
} else {
currentKeyIndex := 1
}
lastClickedTime := A_TickCount
return params[currentKeyIndex]
}