如何判断用户上次按下某个键(或移动鼠标)的时间?

在Win32环境中,您可以使用GetLastInputInfo API调用请参阅msdn DOC 。基本上,此方法返回与用户上次提供输入时相对应的最后一个滴答,并且您必须将其与当前滴答进行比较以确定多久之前。

Xavi23cr在 codeproject 上为C#提供了一个很好的示例。

对其他环境有何建议?

0
额外 编辑
意见: 3
我已经删除了winapi标签,因为OP已经有了winapi的回答,并且说他们在winap以外的任何其他地方。
额外 作者 Deanna,
此博文为可可提供了各种解决方案。
额外 作者 Sören Kuklau,

2 答案

你似乎在那里回答了你自己的问题Nathan ;-) “GetLastInputInfo”是要走的路。

一个技巧是,如果您的应用程序在桌面上运行,并且用户连接到虚拟机,则GetLastInputInfo将不报告活动(因为主机上没有活动)。

这可能与您想要的行为不同,具体取决于您希望如何应用用户输入。

0
额外
他正在Windows以外的环境中寻找建议。
额外 作者 mnuzzo,

至于Linux,我知道Pidgin必须确定空闲时间,在一段时间后将状态更改为离开状态。您可以打开源代码并查看是否可以找到您需要的代码。

0
额外