【问题标题】:Python get idle duration on LinuxPython 在 Linux 上获得空闲时间
【发布时间】:2020-04-15 02:38:57
【问题描述】:

我正在制作一个脚本,该脚本根据最后一次鼠标或键盘输入时间获取空闲持续时间。 以下代码可以在 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())

有人可以帮我在 Windows 和 Linux 上运行它吗?

【问题讨论】:

标签: python


【解决方案1】:

您可以参考idle.pyGajim

只需拨打getIdleSec() 即可获得以秒为单位的空闲时间。

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

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

如果您想以更详细的方式查看运行中的脚本,您可以更改main,如下所示:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多