C# - 检测用户上次与操作系统交互的时间
我正在编写一个小型托盘应用程序,需要检测用户上次与机器交互的时间以确定它们是否空闲。
有没有办法检索用户上次移动鼠标、敲击按键或以任何方式与机器交互的时间?
我认为 Windows 显然会跟踪此信息以确定何时显示屏幕保护程序或关闭电源等,因此我假设有一个 Windows API 可以自己检索此信息?
I'm writing a small tray application that needs to detect the last time a user interacted with their machine to determine if they're idle.
Is there any way to retrieve the time a user last moved their mouse, hit a key or interacted in any way with their machine?
I figure Windows obviously tracks this to determine when to display a screen saver or power down, etc, so I'm assuming there's a Windows API for retrieving this myself?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
GetLastInputInfo。 记录于 PInvoke.net。
GetLastInputInfo. Documented at PInvoke.net.
包括以下命名空间
,然后包括以下
要将滴答计数转换为时间,您可以使用
Note. 此例程使用术语 TickCount 但值以毫秒为单位,因此与 Ticks 不同。
来自 有关 Environment.TickCount 的 MSDN 文章
include following namespaces
and then include following
To convert the tickcount into time you can use
Note. This routine uses the term TickCount but the values are in milliseconds and are so not the same as Ticks.
From MSDN article on Environment.TickCount
代码:
Code: