主要是检查电脑是否几分钟内鼠标键盘无人操作,以便根据情况执行一些代码。方法是通过windows api的GetLastInputInfo()获取从电脑启动到上次鼠标键盘工作时经历了多少毫秒,如果鼠标键盘无操作,这个值就不会变了,一旦变了就说明鼠标键盘当前处于活动状态。
import win32api, time
last_input = int(win32api.GetLastInputInfo() / 1000)
last_change = int(time.time())
while True:
now_input = int(win32api.GetLastInputInfo() / 1000)
if now_input != last_input:
last_input = now_input
last_change = int(time.time())
if int(time.time()) - last_change > 300:
print('鼠标键盘已超过5分钟无任何操作,可在此处添加需要执行的代码')
time.sleep(2)
其他思路:
1、获取鼠标的坐标,如果短期有变动就说明电脑处于活动状态
2、获取前台窗口的句柄或窗口标题或进程名称,如果短期有变动就说明电脑处于活动状态
3、实时监听鼠标和键盘的输入情况,一旦有新的输入信息就说明鼠标键盘处于活动状态。不过这个方法慎用,因为在操作电脑时鼠标和键盘一直会有新的输入,程序也是一直在实时做出响应,很可能会导致电脑卡顿。