使用Python检测空闲时间
我想知道怎么用Python检测Windows系统是否处于闲置状态,也就是没有键盘或鼠标的活动。这个问题之前已经有人问过了,可以在这里找到,但是在pywin32
模块里似乎没有GetLastInputInfo
这个功能。
6 个回答
11
看起来现在在pywin32中可以使用GetLastInputInfo
这个功能了:
win32api.GetLastInputInfo()
这个功能可以获取到最后一次用户输入的时间。
这里有一个示例程序:
import time
import win32api
for i in range(10):
print(win32api.GetLastInputInfo())
time.sleep(1)
如果在脚本暂停的时候按下一个键或者移动鼠标,打印出来的数字就会变化。
17
import win32api
def getIdleTime():
return (win32api.GetTickCount() - win32api.GetLastInputInfo()) / 1000.0
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
45
from ctypes import Structure, windll, c_uint, sizeof, byref
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
调用 get_idle_duration()
来获取空闲时间,单位是秒。