【发布时间】:2021-02-18 22:08:30
【问题描述】:
如果我正在使用:
SetTimer, T1, 5000
T1:
Send, {1 Down} {1 Up}
return
..它在 5 秒后运行第一次迭代。
有没有办法立即开始第一次迭代?
【问题讨论】:
标签: timer autohotkey
如果我正在使用:
SetTimer, T1, 5000
T1:
Send, {1 Down} {1 Up}
return
..它在 5 秒后运行第一次迭代。
有没有办法立即开始第一次迭代?
【问题讨论】:
标签: timer autohotkey
不,但您可以在启动计时器之前(或之后)将Gosub(docs) 转到标签:
Gosub, T1
SetTimer, T1, 5000
T1:
Send, {1 Down} {1 Up}
return
或者如果你想放弃旧的 AHK 并使用一个函数,你可以先调用这个函数:
T1()
SetTimer, T1, 5000
T1()
{
Send, {1 Down} {1 Up}
}
甚至可以称之为内联:SetTimer, % ("T1", T1()), 5000
【讨论】:
要添加到 @0x464e 的答案,您可以执行以下操作以仅在伪线程中运行一次但立即运行。
SetTimer, T1, -1
或
SetTimer, T1, -0 ; this works, but I don't recommended it as it's not documented.
您可以在此处阅读有关 AutoHotkey 线程的更多信息:
https://www.autohotkey.com/docs/misc/Threads.htm
【讨论】: