在Python中检测用户空闲时间

时间:2016-05-15 20:16:09

标签: python windows python-2.7 time ctypes

以下Python代码应该打印出自上次用户活动(鼠标移动,按下键盘键)以来已经过了多少时间

from ctypes import Structure, windll, c_uint, sizeof, byref
import time

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

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



for i in range(10):
    print get_idle_duration()
    time.sleep(1)

问题:但是,在执行脚本期间没有用户输入时,运行此脚本会打印出以下内容:

0.109
0.047
0.203
0.124
0.093
0.031
0.187
0.125
0.062
0.0

为什么打印出的空闲时间不会继续增加,而是看起来像是在不断重置?

0 个答案:

没有答案