我们使用GetLastInputInfo并计算与 GetTickCount64 结果的差异来确定空闲情况。然而,GetLastInputInfo返回的tick计数被写入LASTINPUTINFO的成员dwTime中,它是一个DWORD,因此是一个无符号32位整数,最大值为4294967295,相当于~49天。在正常运行时间比这更长的机器上,这当然会导致函数报告不正确的值。
显然没有名为 GetLastInputInfo64 的函数,但也许有一个不同名称的函数?
我们使用一个解决方法。
只使用 的结果来GetLastInputInfo()
检测 是否dwTick
发生了变化,而不关心它变化了多少。
定期执行此操作。
当刻度发生变化(该值与之前的读数不同)时,启动您自己的计时器并使用它来检测输入何时空闲(例如 30 秒)。
使用这种方法您将永远不需要处理环绕。
归档时间: |
|
查看次数: |
1493 次 |
最近记录: |