带空闲重置的自动热键循环序列
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
我从各种帖子中拼凑了以下内容:
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