- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试通过 Windows 计算机上的 Python 计算出当前用户大约空闲了多长时间(例如 this question )。
为此,我想我需要比较 GetLastInputInfo 的结果结果是 GetTickCount 。结果应以毫秒为单位。
(我预计每 49.7 天就会出现一次滚动问题,但我稍后会解决这个问题。)
我的代码很简单:
import win32api
last_active = win32api.GetLastInputInfo()
now = win32api.GetTickCount()
elapsed_milliseconds = (now - last_active)
print(last_active, now, elapsed_milliseconds)
我期望得到两个相似的大数,并且相差几百毫秒。
相反,我得到的结果如下:
3978299058 -316668238 -4294967296
和
3978316717 -316650501 -4294967218
在运行之间,它们的变化量大致相同,但它们之间存在一个我没有预料到的大的恒定偏移。
我错过了什么?
最佳答案
仔细观察这些数字,这是有符号/无符号的不匹配。
3978299058 = 0xED2006B2
-316668238(二进制补码)= 0xED2006B2
3978316717 = 0xED204BAD
-316650501(二进制补码)= 0xED204BFB
所以时间是一致的,只是 win32.GetTickCount
将滴答计数解释为有符号 32 位整数,而 win32.GetLastInputInfo
将其解释为无符号.
(具体来说,GetLastInputInfo
使用 PyLong_FromUnsignedLong
,而 GetTickCount
将 DWORD
转换为 long
,然后调用 Py_BuildValue
。您可能需要考虑提交错误,因为滴答计数应该是一个无符号值。)
关于python - GetLastInputInfo 和 GetTickCount 不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36312480/
这个问题在这里已经有了答案: GetLastInputInfo() always 0 (zero) (1 个回答) 关闭 8 年前。 我的主要功能是带有计时器的经典 Windows 消息循环: in
我使用 GetLastInputInfo 来检查鼠标和键盘的最后输入信息。在我的 PC 系统上工作正常,但是当我在我的笔记本电脑上运行我的程序时它不工作。我看到 LASTINPUTINFO 每 10-
我想检查我的应用程序中是否有用户不活动。我做了一些研究并开始使用 GetLastInputInfo 和 Environment.TickCount 因为它看起来非常简单。不幸的是,它有点敏感。 Get
根据 MSDN,http://msdn.microsoft.com/en-us/library/ms646302%28VS.85%29.aspx GetLastInputInfo does not p
有没有等同于 Windows 的 .NET GetLastInputInfo() API? 我知道可以 P/调用 API,但我正在寻找一种已经内置到 .NET 框架中的方法或技术。 最佳答案 .NET
我的目标是制作一个模块,提供对上次用户交互的访问(客户端应用程序 - 而不是服务器应用程序)。 Windows API 有一个名为 GetLastInputInfo ( https://msdn.mi
我正在尝试通过 Windows 计算机上的 Python 计算出当前用户大约空闲了多长时间(例如 this question )。 为此,我想我需要比较 GetLastInputInfo 的结果结果是
我想检测空闲时间(例如,用户按下某个键或移动鼠标的时间有多长)。据说 GetLastInputInfo() 应该是我需要的,但是当我使用它时,它总是打印 0。 LASTINPUTINFO last
有没有GetLastInputInfo () 可以在 Linux 中使用的等价物? 目的是检测用户最后一次输入(键盘或鼠标)的时间。我正在使用 python 编写程序脚本。 最佳答案 XScreenS
我们使用 GetLastInputInfo并计算与GetTickCount64的结果的差来判断闲置。但是,GetLastInputInfo 返回的滴答计数被写入到 LASTINPUTINFO 的成员
我使用 Windows API 调用 GetLastInputInfo 判断系统是否空闲。这几乎适用于任何情况 - 除非 Windows 设置为绕过用户名/密码并自动登录。 在这种情况下,查询 Get
有没有使用 Go 获取 Windows 系统空闲时间的示例或方法? 我一直在查看 Golang 站点上的文档,但我想我错过了如何访问(和使用)API 来获取系统信息,包括空闲时间。 最佳答案 Go 的
我是一名优秀的程序员,十分优秀!