微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用特定键重置键序列?

如何解决如何使用特定键重置键序列?

所以这个序列在 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]
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。