【问题标题】:Why does this A_TickCount call in AutoHotKey yield incorrect results?为什么 AutoHotKey 中的 A_TickCount 调用会产生不正确的结果?
【发布时间】:2015-04-22 11:35:00
【问题描述】:

谁能发现我在 Windows 7 中运行的这个 AutoHotKey 程序中的错误?

~i::iDown := A_TickCount
~i up::MsgBox, % "down at " iDown ", up at " A_TickCount ", down for " A_TickCount - iDown " ms."

在一次运行中,当我按住“i”键大约 5 秒时,我得到了结果:下降到 25700712,上升到 25700743,下降了 31 毫秒。每次我运行程序时,我都会得到一个不同的(看似)随机结果,通常小于 100 毫秒。结果似乎与我实际按住键的时间不符。减法部分似乎是正确的,所以我的 A_TickCount 实现一定有问题。

【问题讨论】:

    标签: function time autohotkey


    【解决方案1】:

    无法确定发生了什么,但似乎来自键盘驱动程序自动重复。

    这将向您展示它如何不断调用 A_tickCount

    i::
    iDown := A_TickCount
    tooltip %iDown%
    return
    
    i up::MsgBox, % "down at " iDown ", up at " A_TickCount ", down for " A_TickCount - iDown " ms."
    

    还有一个解决方法

    ~i::
    iDown := A_TickCount
    KeyWait, i
    MsgBox, % "down at " iDown ", up at " A_TickCount ", down for " A_TickCount - iDown " ms."
    return
    

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      来自手册:

      A_TickCount;自系统启动以来经过的毫秒数

      A_TickCount 是一个只读变量,包含计算机运行的时间(以毫秒为单位)。

      来自手册:

      StartTime := A_TickCount
      Sleep, 1000
      ElapsedTime := A_TickCount - StartTime
      MsgBox,  %ElapsedTime% milliseconds have elapsed.
      

      【讨论】:

        猜你喜欢
        • 2019-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多