c++ - 是否有与 GetLastInputInfo/LASTINPUTINFO 等效的 64 位?

标签 c++ windows

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

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

最佳答案

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

仅使用 GetLastInputInfo() 的结果来检测 dwTick 是否已更改,而不关心更改了多少。

定期执行此操作。

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

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

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

相关文章:

c# - 从 std::fstream 读取 float 返回负零

c++ - 如何将对象传递给c++中的函数?

c++ - 一种确定成本最低的参数类型的编译时方法

c++ - 信息隐藏VS封装

windows - 安装包后找不到 Git Bash 命令

c++ - 比较两对整数的最有效方法

c++ - 如何在 Windows 上即时读取和更改 HTTP 流量?

c - 使用 fgets 随机读取非常大的文件似乎会使 Windows 缓存达到极限

c++ - High CSwitch ("context switch") 使用 Boost 进程间代码时(在 Windows、Win32 上)

sql - 需要 SQL 方面的专家建议