def wait_until_active(tol=5):
"""Wait until awakened by user activity.
This function will block and wait until some user activity
is detected. Because of the polling method used, it may return
`tol` seconds (or less) after user activity actually began.
"""
liinfo = LASTINPUTINFO()
liinfo.cbSize = ctypes.sizeof(liinfo)
lasttime = None
delay = 1 # ms
maxdelay = int(tol*1000)
while True:
GetLastInputInfo(ctypes.byref(liinfo))
if lasttime is None: lasttime = liinfo.dwTime
if lasttime != liinfo.dwTime:
break
delay = min(2*delay, maxdelay)
Sleep(delay)
评论列表
文章目录