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

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

最佳答案

我们使用了一种解决方法。

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

定期执行此操作。

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

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

关于c++ - 是否有相当于 GetLastInputInfo/LASTINPUTINFO 的 64 位?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52531072/

10-13 08:26