我们使用 GetLastInputInfo 并计算与 GetTickCount64 的结果的差异来确定空闲。但是,GetLastInputInfo 返回的滴答计数被写入 LASTINPUTINFO 的成员 dwTime,它是一个 DWORD,因此是一个无符号的 32 位整数,最大值为 4294967295,相当于 ~49 天。在正常运行时间更长的机器上,这当然会导致函数报告不正确的值。
显然没有名为 GetLastInputInfo64 的函数,但也许有不同名称的函数?
最佳答案
我们使用了一种解决方法。
只使用 GetLastInputInfo()
的结果来检测 dwTick
是否发生了变化,而不用关心它改变了多少。
定期执行此操作。
当刻度发生变化时(该值与之前的读数不同)启动您自己的计时器并使用它来检测输入何时空闲例如 30 秒。
您将永远不需要使用这种方法处理环绕。
关于c++ - 是否有相当于 GetLastInputInfo/LASTINPUTINFO 的 64 位?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52531072/