是否有相当于 GetLastInputInfo / LASTINPUTINFO 的 64 位?

Mep*_*ane 5 c++ windows

我们使用GetLastInputInfo并计算与 GetTickCount64 结果的差异来确定空闲情况。然而,GetLastInputInfo返回的tick计数被写入LASTINPUTINFO的成员dwTime中,它是一个DWORD,因此是一个无符号32位整数,最大值为4294967295,相当于~49天。在正常运行时间比这更长的机器上,这当然会导致函数报告不正确的值。

显然没有名为 GetLastInputInfo64 的函数,但也许有一个不同名称的函数?

And*_*dén 3

我们使用一个解决方法。

只使用 的结果来GetLastInputInfo()检测 是否dwTick发生了变化,而不关心它变化了多少。

定期执行此操作。

当刻度发生变化(该值与之前的读数不同)时,启动您自己的计时器并使用它来检测输入何时空闲(例如 30 秒)。

使用这种方法您将永远不需要处理环绕。