背景
使用建立在pyWinhook.HookManager()背景下,监控鼠标滚轴停止后响应事件。
想法
有想过使用计时器,各种办法,于是在百度、csdn上找了一下没有,没有我这个小白会用的后来我想到了一个方法:获取当前时间,在获取鼠标点击时间,两个时间相减判断间隔判断是否为连续滚动
实现
from datetime import datetime
import pyWinhook
import pythoncom
class A():
def __init__(self):
self.seconds = datetime.now()
def onMouseEvent(self, event):
if event.Message == 522: # 滚轴
seconds2 = datetime.now()
if (seconds2 - self.seconds).seconds > 4: # 间隔大于4秒视为此次为首次滚动,否则
# 视为连续滚动
self.seconds = seconds2
pirnt('滚动结束')
def main(self):
# 创建一个“钩子”管理对象
hm = pyWinhook.HookManager()
# 监听所有键盘事件和鼠标时间
hm.KeyDown = self.onKeyboardEvent
# 设置键盘“钩子”
hm.HookKeyboard()
# 监听所有鼠标事件
hm.MouseAll = self.onMouseEvent
# 设置鼠标“钩子”
hm.HookMouse()
# 进入循环,如不手动关闭,程序将一直处于监听状态
pythoncom.PumpMessages()
if __name__ == "__main__":
a = A()
a.main()
如果遇到安装pyhook,pyWinhook pythoncom安装问题,请参考我写的其他博客