Python获得空闲时间

时间:2020-04-15 02:38:57

标签: python

im创建一个脚本,使脚本获得空闲时间并获得最后的鼠标/滑水板输入时间 在Windows中可以正常工作,但我无法使其在Linux上运行

class LASTINPUTINFO(Structure):
    _fields_ = [
        ('cbSize', c_uint),
        ('dwTime', c_uint),
    ]

def get_idle_duration():
    # get idle time
    lastInputInfo = LASTINPUTINFO()
    lastInputInfo.cbSize = sizeof(lastInputInfo)
    windll.user32.GetLastInputInfo(byref(lastInputInfo))
    millis = windll.kernel32.GetTickCount() - lastInputInfo.dwTime
    return millis / 1000.0

print(get_idle_duration())

有人可以帮助我使此代码在linux和Windows中运行吗?

1 个答案:

答案 0 :(得分:0)

您可以通过idle.py

引用Gajim

只需调用 getIdleSec() 即可获取以秒为单位的空闲时间。

如果执行idle.py,它会等待2.1秒,然后打印空闲时间。稍后它会释放保留的数据,之后如果您调用该函数,它将返回零。

问题中给出的代码的问题在于它使用了特定于 Windows 的 windll

如果您想以更详细的方式查看正在运行的脚本,您可以将 main 更改如下:

if __name__ == '__main__':
    import time
    for i in range(0,10):
        print(getIdleSec())
    close()

这适用于 Ubuntu,并且应该适用于所有基于 Debian 的操作系统。

相关问题