0

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

当前代码:

toggle = 0
#MaxThreadsPerHotkey 2

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

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

目前,该脚本将按预期运行,但仅运行一次。在第一次之后尝试再次运行它没有任何作用。我错过了什么?

4

2 回答 2

1

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

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

start:
Send {Numpad0}
return

stop:
SetTimer, start, off
return
于 2013-10-07T22:31:14.587 回答
0

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

F12::SetTimer, HoldNumPad, -1

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

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

-1编辑:多亏了 MCL,使 SetTimer 使用期限只运行一次。

于 2013-10-07T13:06:32.573 回答