有人能发现我在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实现一定有问题。
答案 0 :(得分: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
希望有所帮助
答案 1 :(得分:0)
从手册:
A_TickCount;自系统启动以来经过的毫秒数
A_TickCount是一个ReadOnly变量,它包含计算机运行的时间(以毫秒为单位)。
从手册:
StartTime := A_TickCount
Sleep, 1000
ElapsedTime := A_TickCount - StartTime
MsgBox, %ElapsedTime% milliseconds have elapsed.