用于定时自动调整功能的AHK脚本

时间:2013-10-06 21:19:27

标签: timer toggle autohotkey repeat

脚本的目标:每次按下热键时连续按下Numpad0 10秒钟。

当前代码:

toggle = 0
#MaxThreadsPerHotkey 2

timerToggle:
Toggle := !Toggle
sleep 10000
Toggle := !Toggle

F12::
        SetTimer, timerToggle, -1
     While Toggle{
        send {NumPad0}
        sleep 100
    }
return

目前,脚本将按预期运行,但只运行一次。第一次尝试再次运行它什么也没做。我错过了什么?

2 个答案:

答案 0 :(得分:1)

我宁愿使用SetTimers而不是10秒。长while喜欢这样

F12::
Send {Numpad0}
SetTimer, start, 100
SetTimer, stop, -10000
return

start:
Send {Numpad0}
return

stop:
SetTimer, start, off
return

答案 1 :(得分:0)

您的脚本可能无法正确切换变量。以下是您尝试执行的更简洁版本,使用A_TickCount

F12::SetTimer, HoldNumPad, -1

HoldNumPad:
    kDown := A_TickCount
    While ((A_TickCount - kDown) < 10000)
    {
        Send {Numpad0}
        Sleep 100
    }
Return

请注意,在标签运行时按 F12 不会产生任何影响。

编辑:由于MCL,Made SetTimer只使用-1期运行一次。