gpt4 book ai didi

c# - GetLastInputTime 显示不可能的时间?

转载 作者:行者123 更新时间:2023-11-30 14:08:02 25 4
gpt4 key购买 nike

为了确定 PC 是否有一段时间未使用,我使用了 Win32API.GetLastInputTime() 方法。我只是从 DateTime.Now 中减去它的值,并将它与存储在设置中的某个值进行比较。

它以前工作得很好,但最近 GetLastInputTime 开始显示完全荒谬的结果 - 它显示了 future 的时间。今天显示的是 2016 年 7 月 2 日。

那么,有没有人知道发生了什么事? GetLastInputTime 如何获取时间,这一次是 future 的时间怎么可能?

最佳答案

因为 GetLastInputTime 返回 ticks 作为 UInt32 (DWORD)

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724408(v=vs.85).aspx

你可以有一个整数溢出:

The elapsed time is stored as a DWORD value. Therefore, the time will wrap around to zero if the system is run continuously for 49.7 days. To avoid this problem, use the GetTickCount64 function. Otherwise, check for an overflow condition when comparing times.

因此有 future 日期:

   13 May 2016 + 49.7 days == 2 July 2016

关于c# - GetLastInputTime 显示不可能的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37203713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com