AHK如何立即停止定时器?

问题描述

SetTimer,Test,1000
Return

Test:
Send,a
Sleep,3000
Send,b
Sleep,c
Sleep,3000
Return

1::
Send,x
SetTimer,Off
Return

如果我在第 5 秒按“1”,结果将是:“axbc”

如何让定时器立即停止运行它的内容,以防上面的结果是“ax”?

解决方法

在每个睡眠周期后检查热键是否已被触发(通过 state 变量)的一种方法

;state:=0 ;state is zero by default
SetTimer,Test,1000
Return

Test:
Send,a
Sleep,3000
if(state)
return
Send,b
Sleep,c
Sleep,3000
Return

1::
Send,x
SetTimer,Off
state := 1
Return