更改 x 时间的关键功能?

Change a key function for x amount of time?

多亏了这个 user 我得到了这个工作代码,但如果可能的话,我想进一步调整它。 :D

代码如下:

global s:=0, c:=0, t:=1500, t2:=380

*lbutton::
    send % Seqkeys("5","6")
    KeyWait, lbutton
    If (A_TickCount-s < t2)
        c := 0
    Send, 7
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]
}

我想实现的是,如果我点击鼠标右键(Rbutton),原来的lbutton seqkeys代码会在1秒内变成这段代码

*lbutton::
    send, 8
    KeyWait, lbutton
    Send, 7
return

当 1 秒结束时,代码将恢复到原始 seqkeys 状态。

我得到了这个代码示例,但由于多种原因它无法正常工作,当我按下 Rbutton 时它确实覆盖了原始的 Seqkeys 函数,但它永远不会重置回 seqkeys 函数。我把它放在这里也许有帮助

*rbutton::
toggle:=true
return

#If Toggle
*lbutton::
    send, 8
    KeyWait, lbutton
    Send, 7
return
toggle:=false
Return
#If

再次感谢! :)

切换后它从未重置回 Seqkeys(params*) 的原因是 toggle:=false 在切换的 lbutton 热键之外。 将它放在 return 语句之前的 toggle lbutton hotkey 内可以解决问题。

#If Toggle
*lbutton::
    send, 8
    KeyWait, lbutton
    Send, 7
    toggle:=false
return