【问题标题】:AutoHotKey SetTimer immediate 1st iterrationAutoHotKey SetTimer 立即第一次迭代
【发布时间】:2021-02-18 22:08:30
【问题描述】:

如果我正在使用:

SetTimer, T1, 5000

T1:
    Send, {1 Down} {1 Up}
return

..它在 5 秒后运行第一次迭代。

有没有办法立即开始第一次迭代?

【问题讨论】:

    标签: timer autohotkey


    【解决方案1】:

    不,但您可以在启动计时器之前(或之后)将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

    【讨论】:

      【解决方案2】:

      要添加到 @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

      【讨论】:

        猜你喜欢
        • 2016-04-13
        • 1970-01-01
        • 2013-10-24
        • 1970-01-01
        • 2011-10-04
        • 2015-11-29
        相关资源
        最近更新 更多