为什么这个 A_TickCount 调用 AutoHotKey 会产生不正确的结果?
Why does this A_TickCount call in AutoHotKey yield incorrect results?
谁能发现我在 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.
肯定有问题
不能确定发生了什么,但似乎来自键盘驱动程序自动重复。
这将向您展示它如何不断回忆 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
希望对您有所帮助
来自手册:
A_TickCount;系统启动后经过的毫秒数
A_TickCount 是一个只读变量,包含计算机 运行.
的时间(以毫秒为单位)
来自手册:
StartTime := A_TickCount
Sleep, 1000
ElapsedTime := A_TickCount - StartTime
MsgBox, %ElapsedTime% milliseconds have elapsed.
谁能发现我在 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.
肯定有问题不能确定发生了什么,但似乎来自键盘驱动程序自动重复。
这将向您展示它如何不断回忆 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
希望对您有所帮助
来自手册:
A_TickCount;系统启动后经过的毫秒数
A_TickCount 是一个只读变量,包含计算机 运行.
的时间(以毫秒为单位)来自手册:
StartTime := A_TickCount
Sleep, 1000
ElapsedTime := A_TickCount - StartTime
MsgBox, %ElapsedTime% milliseconds have elapsed.