Autohotkey 带空闲复位的自动热键循环序列

Autohotkey 带空闲复位的自动热键循环序列,autohotkey,Autohotkey,我从不同的帖子中拼凑了以下内容: keys = 0,9,8,7 loop, parse, keys, `, { Key_%A_Index% := A_LoopField KeyCount++ } return XButton1:: Rotation ++ Send % Key_%Rotation% if Rotation = %KeyCount% Rotation = 0 return #Persistent SetTimer, Ch

我从不同的帖子中拼凑了以下内容:

keys = 0,9,8,7

loop, parse, keys, `,
{
  Key_%A_Index% := A_LoopField
  KeyCount++
}
return

XButton1::
    Rotation ++
    Send % Key_%Rotation%
    if Rotation = %KeyCount%
        Rotation = 0
return

#Persistent
    SetTimer, Check, 1000         ;check every second
return

Check:
If (A_TimeIdle >= 3000)
    Rotation = 0
return
我的想法是,我按下我的鼠标4键,它在按键之间循环,然后返回到开始,但是我也想要一个循环,这样,如果我在3秒钟内没有按下按钮,它会重置回序列的开始。键序列工作,但空闲重置不起作用,我不确定从这里到哪里调试它。

1-您必须让
#Persistent SetTimer,Check,1000
部分在第一个
返回之前

2-
A_TimeIdle
对任何输入都是敏感的,即使是简单的鼠标移动(通过用户或脚本)也会将其重置为零。如果要获取此单个热键的空闲时间,请改用
A_timesincethishhotkey

Check:
if (A_TimeSinceThisHotkey >= 3000)
{
    Rotation = 0
}
return

我不太清楚你在空闲部分想要什么。你是说3秒的空闲时间专门与此鼠标XButton1相关?您使用的
A_TimeIdle
对任何操作都是合理的,即使是简单的鼠标移动(通过用户或脚本)也会将其重置为零。是的,这正是我想要的XButton1空闲时间。我想我是在错误的理解下工作的,认为a_TimeIdle代表循环函数idle time,如果它在3秒钟内没有被调用,它会重置。这听起来应该可以工作,但没有,即使我添加了一个MsgBox而不是旋转赋值,它也不会被调用