Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi GetLastInputInfo在没有输入的情况下更改 我在桌面混合模式C++/C应用程序中使用跟踪用户空闲时间。_Winapi - Fatal编程技术网

Winapi GetLastInputInfo在没有输入的情况下更改 我在桌面混合模式C++/C应用程序中使用跟踪用户空闲时间。

Winapi GetLastInputInfo在没有输入的情况下更改 我在桌面混合模式C++/C应用程序中使用跟踪用户空闲时间。,winapi,Winapi,在一个用户的机器上,GetLastInputInfo将提前它的时间,即使我没有通过方法注册低级键盘或鼠标输入 用户(一位同事,因此我可以访问该机器)在一台笔记本电脑上运行Windows 10 下面是我的程序在GetLastInputInfo上轮询并显示低级鼠标和键盘事件的示例输出: Mouse: 57 wParam:512 flags:0 pt:1366,57 14750640 12:06:37.0864968 Mouse: 58 wParam:512 flags:0 pt:1366,60 14

在一个用户的机器上,GetLastInputInfo将提前它的时间,即使我没有通过方法注册低级键盘或鼠标输入

用户(一位同事,因此我可以访问该机器)在一台笔记本电脑上运行Windows 10

下面是我的程序在GetLastInputInfo上轮询并显示低级鼠标和键盘事件的示例输出:

Mouse: 57 wParam:512 flags:0 pt:1366,57 14750640 12:06:37.0864968
Mouse: 58 wParam:512 flags:0 pt:1366,60 14750656 12:06:37.0964981
Mouse: 59 wParam:512 flags:0 pt:1365,60 14750671 12:06:37.1064994
GetLastInputInfo 60 gliiRet:True cbSize:8 dwTime:14750671 12:06:37.2465354
GetLastInputInfo 61 gliiRet:True cbSize:8 dwTime:15063750 12:11:50.2038808
这意味着12:06:37.1064994的鼠标事件导致GetLastInputInfo#60在12:06:37.2465354,但在12:06:37.2465354和12:11:50.2038808之间,没有发生鼠标或键盘用户输入事件,但GetLastInputInfo仍然提前到新的dwTime

我想确定这个问题的根本原因。这是一个有故障的设备驱动程序吗?是否还有其他影响GetLastInputInfo的可捕获用户输入事件我没有看到


谢谢。

屏幕保护程序受此幻象输入影响吗?低级键盘挂钩可以过滤输入,防止挂钩过程看到该输入。可能不太可能,但是在分析这个问题时要考虑一些东西。还有非低级键盘/鼠标挂钩。如果有人在你之后注册了一个钩子,他们会首先被呼叫,并且可以绕过链的其余部分。如果你想确保你的钩子先被调用,你可以取消注册并定期重新注册。@Anders,他报告说屏幕保护程序按预期运行。我不确定屏幕保护程序基础结构是否与GetLastInputInfo数据有关(直接或间接)。@IInspectable(和Remy):感谢您对过滤输入的想法。我怀疑这是正在发生的事情,但我肯定看到了可能性。我可以相应地调整我的低级日志记录。