获取鼠标监听事件通过python,只需要这样操作

已收录   阅读次数: 1,283
2021-04-2123:20:00 发表评论
摘要

通过python获取鼠标监控事件,这个挺有意思的,简单来说就是利用一个python的库,然后稍微制定一下规则,实施起来效果不错,非常适合初学者,而且该库也非常适合学习,学习其如何编写的……

分享至:
获取鼠标监听事件通过python,只需要这样操作

开篇寄语

通过python获取鼠标监控事件,这个挺有意思的,简单来说就是利用一个python的库,然后稍微制定一下规则,实施起来效果不错,非常适合初学者,而且该库也非常适合学习,学习其如何编写的。

内容详情

安装所需库

我们将使用pynput模块来侦听鼠标事件。要安装此模块,请在cmd中执行pip install pynput。观察输出以确保没有发生任何错误;它会告诉您何时模块已成功安装。

如何调出命令窗口呢?只需要按“Win + R”,然后输入cmd点击回车即可。

获取鼠标监听事件通过python,只需要这样操作

打造脚本

创建一个新的python文件,并将其保存为.py文件扩展名。您首先要从pynput.mouse导入Listener。

from pynput.mouse import Listener

通过在with语句中创建实例并使用其.join()方法将其连接到主线程来设置侦听器。

with Listener() as listener:
    listener.join()

创建三种方法; on_move,on_click和on_scroll的参数如下所示。

def on_move(x, y):
    pass

def on_click(x, y, button, pressed):
    pass

def on_scroll(x, y, dx, dy):
    pass

将这些方法链接到以函数名称作为args的侦听器实例;我已将其命名为侦听器类中定义的方法。现在,当一个动作发生时,将运行这些方法之一。

with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:

为确保它们正在运行,请向每个方法添加一些打印语句。保存并运行脚本。左右移动鼠标,您将看到如下所示的输出。

def on_move(x, y):
    print ("Mouse moved")

def on_click(x, y, button, pressed):
    print ("Mouse clicked")

def on_scroll(x, y, dx, dy):
    print ("Mouse scrolled")

完成代码如下:

from pynput.mouse import Listener

def on_move(x, y):
    print ("Mouse moved")

def on_click(x, y, button, pressed):
    print ("Mouse clicked")

def on_scroll(x, y, dx, dy):
    print ("Mouse scrolled")

with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:
    listener.join()

点击运行后,输出结果如下:

获取鼠标监听事件通过python,只需要这样操作

想要获取鼠标移动的坐标数据,可以这样撰写:

def on_move(x, y):
    print ("Mouse moved to ({0}, {1})".format(x, y))

def on_click(x, y, button, pressed):
    if pressed:
        print ('Mouse clicked at ({0}, {1}) with {2}'.format(x, y, button))

def on_scroll(x, y, dx, dy):
    print ('Mouse scrolled at ({0}, {1})({2}, {3})'.format(x, y, dx, dy))

输出结果如下图所示:

获取鼠标监听事件通过python,只需要这样操作

温馨提示

该库还有更多技法,可以参看它的指导说明,仓库和教程地址如下:

  • 我的微信
  • 微信扫一扫加好友
  • weinxin
  • 我的微信公众号
  • 扫描关注公众号
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: