当前位置:首页 » 《随便一记》 » 正文

【Python】监测鼠标各种事件(左键/中键/右键是否点下)_Rainbowman 0的博客

2 人参与  2022年05月05日 12:00  分类 : 《随便一记》  评论

点击全文阅读


目录

  • 0. 前言
  • 1. 安装PyHook3
  • 2. 检测鼠标左键/中键/右键是否按下
  • 3. PyHook3详细讲解

0. 前言

最近在写一个脚本,需要用到监测用户是否点击鼠标中键,然后触发相应的功能。这本身就是个很简单的功能,看别人有很多解决方案:有用pygame的有用tkinter的,总觉得不太合适:我就实现个这么简单的功能,有没有更专业的专门处理这一类问题的库呢?于是找到了PyHook3.

PyHook作用是监测键盘和鼠标事件,底层还是使用windows API实现,这给人的感觉就很舒服了。注意我们要安装的是PyHook3而不是pyHook,究其原因是pyHook在Python3上运行会有奇怪的BUG(亲测)

1. 安装PyHook3

我的环境是Python3.7, win10

安装总共分三步:
(1)安装swig
(2)安装visual c++ 14.0
(3)pip直接安装:pip install PyHook3

(如果跳过前两步直接pip安装会出现两片红色的报错)

具体操作步骤这篇博客说得很详细了:
pyhook3安装教程及与之相关的一些问题的解决方法

2. 检测鼠标左键/中键/右键是否按下

先上代码,注释中有讲解

import PyHook3 as pyHook
import pythoncom  # 没这个库的直接pip install pywin32安装

i,j,k = 0,0,0

def funcLeft(event):
    if (event.MessageName != "mouse move"):  # 因为鼠标一动就会有很多mouse move,所以把这个过滤下
        global i
        i = i + 1
        print('第{:3d}次:按下鼠标左键我就会出现,嘻嘻'.format(i))
    return True

def funcMiddle(event):
    if (event.MessageName != "mouse move"):  # 因为鼠标一动就会有很多mouse move,所以把这个过滤下
        global j
        j = j + 1
        print('第{:3d}次:按下鼠标中键我就会出现,嘻嘻'.format(j))
    return True

def funcRight(event):
    if (event.MessageName != "mouse move"):  # 因为鼠标一动就会有很多mouse move,所以把这个过滤下
        global k
        k = k + 1
        print('第{:3d}次:按下鼠标右键我就会出现,嘻嘻'.format(k))
    return True

def main():
    # 创建管理器
    hm = pyHook.HookManager()
    # 监听鼠标
    # hm.MouseLeftDown 是将“鼠标左键按下”这一事件和func这个函数绑定,即每次鼠标左键按下都会执行func
    # 如果希望监测鼠标中键按下则:hm.MouseMiddleDown,鼠标右键按下则:hm.MouseRightDown
    hm.MouseLeftDown = funcLeft  # 监测鼠标左键是否按下
    hm.MouseMiddleDown = funcMiddle  # 监测鼠标中键是否按下
    hm.MouseRightDown = funcRight  # 监测鼠标右键是否按下
    hm.HookMouse()

    # 循环监听
    pythoncom.PumpMessages()


if __name__ == "__main__":
    main()

运行结果:
在这里插入图片描述

3. PyHook3详细讲解

这个库的功能本身就很简单,这篇博客讲得超级好:

PyHook3简明教程


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/39525.html

按下  鼠标  就会  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 我的日记曝光后,全网为我痛哭好评_乔慕叶向文慕雪热门_小说后续在线阅读_无删减免费完结_
  • 末世重生后,我嘎了女主!小说(姜颂宁沈奕淮)(末世重生后,我嘎了女主!)全书+后续+结局在线阅读
  • 我治好了他的病,他却要离婚(韩景深程雨涵)_我治好了他的病,他却要离婚(韩景深程雨涵)
  • 天生童子命却被未婚妻骗走万贯家财,重生我逆天改命(林晚棠时宴)_天生童子命却被未婚妻骗走万贯家财,重生我逆天改命
  • 妻子为白月光,断我十指(苏晴江辰),妻子为白月光,断我十指
  • 全书浏览三万块(方建华,王大妈,那是)_三万块(方建华,王大妈,那是)全书结局
  • 被竹马们献祭恶鬼后,我反嫁神明三年抱俩更新_清欢小姐侯府精彩分享_小说后续在线阅读_无删减免费完结_
  • 闺蜜想母凭子贵嫁豪门,我成全她(许如如金如意周泽谐)全书浏览_闺蜜想母凭子贵嫁豪门,我成全她全书浏览
  • 挺孕肚退婚!太子爷拐她火速领证小说(挺孕肚退婚!太子爷拐她火速领证)(楼予曦顾璟珩)完整章节列表_笔趣阁
  • (考公上岸:沈县长请多指教!)考公上岸:沈县长请多指教!小说(沈延舟安岁岁)整书在线无广告高口碑小说
  • 被全府抛弃后,弹幕教我勾帝心列表_被全府抛弃后,弹幕教我勾帝心(许泠玥温祁晏)
  • 她靠179分进名校,我靠重生送她进局子校园甜文_李颜芝弟弟安静大结局_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1