带空闲重置的自动热键循环序列

Autohotkey loop sequence with idle reset

我从各种帖子中拼凑了以下内容:

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

我的想法是我按下我的 mouse4 按钮,它会循环按键然后返回开始,但是我还想要一个循环,这样如果我 3 秒不按下按钮,它就会重置到序列的开始。键序列有效,但空闲重置无效,我不确定从这里去哪里调试它。

1- 您必须让 #Persistent SetTimer, Check, 1000 部分位于第一个 return 之前。

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

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