Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例


Posted in Python onMarch 14, 2020

Python2.7: 使用Pyhook模块监听鼠标键盘事件-获取坐标。因该模块对Python3 有兼容性问题,故采用python2.7解释器。

原程序可监听所有事件,现注释掉部分功能,只输出鼠标左键触发的坐标,用于获取坐标,方便自动化取点。

# -*- coding: utf-8 -*-
#
#
import pythoncom
import pyHook
 
def onMouseEvent(event):
  # 监听鼠标事件
  # print ("MessageName:", event.MessageName)
  # print ("Message:", event.Message)
  # print ("Time:", event.Time)
  # print ("Window:", event.Window)
  # print ("WindowName:", event.WindowName)
  # print ("Position:", event.Position)
  # print ("Wheel:", event.Wheel)
  # print ("Injected:", event.Injected)
  # print ("---")
	if event.MessageName == 'mouse left down':
		print 'mouse left down'
		print ("Position:", event.Position)
 
  # 返回 True 以便将事件传给其它处理程序
  # 注意,这儿如果返回 False ,则鼠标事件将被全部拦截
  # 也就是说你的鼠标看起来会僵在那儿,似乎失去响应了
	return True
 
def onKeyboardEvent(event):
  # 监听键盘事件
  # print ("MessageName:", event.MessageName)
  # print ("Message:", event.Message)
  # print ("Time:", event.Time)
  # print ("Window:", event.Window)
  # print ("WindowName:", event.WindowName)
  # print ("Ascii:", event.Ascii, chr(event.Ascii))
  # print ("Key:", event.Key)
  # print ("KeyID:", event.KeyID)
  # print ("ScanCode:", event.ScanCode)
  # print ("Extended:", event.Extended)
  # print ("Injected:", event.Injected)
  # print ("Alt", event.Alt)
  # print ("Transition", event.Transition)
  # print ("---")
 
  # 同鼠标事件监听函数的返回值
	return True
 
def main():
  # 创建一个“钩子”管理对象
  hm = pyHook.HookManager()
 
  # 监听所有键盘事件
  #hm.KeyDown = onKeyboardEvent
  # 设置键盘“钩子”
  #hm.HookKeyboard()
 
  # 监听所有鼠标事件
  hm.MouseAll = onMouseEvent
  # 设置鼠标“钩子”
  hm.HookMouse()
 
  # 进入循环,如不手动关闭,程序将一直处于监听状态
  pythoncom.PumpMessages()
 
if __name__ == "__main__":
  main()

补充知识:python 工具mouse_find 鼠标定位

我就废话不多说了,还是直接看代码吧!

import os,time
import pyautogui as pag
try:
  while True:
      print ("Press Ctrl-C to end")
      x,y = pag.position() #返回鼠标的坐标
      posStr="Position:"+str(x).rjust(4)+','+str(y).rjust(4)
      print (posStr)#打印坐标
      time.sleep(0.2)
      os.system('cls')#清楚屏幕
except KeyboardInterrupt:
  print( 'end....')

以上这篇Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中函数的多种格式和使用实例及小技巧
Apr 13 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
Jun 09 Python
Python实现字符串格式化输出的方法详解
Sep 20 Python
详解Python 协程的详细用法使用和例子
Jun 15 Python
python 对key为时间的dict排序方法
Oct 17 Python
12个步骤教你理解Python装饰器
Jul 01 Python
python 实现兔子生兔子示例
Nov 21 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 Python
详解Django配置JWT认证方式
May 09 Python
Python之字典添加元素的几种方法
Sep 30 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
Jun 10 Python
python matplotlib包图像配色方案分享
Mar 14 #Python
python 使用cx-freeze打包程序的实现
Mar 14 #Python
python matplotlib imshow热图坐标替换/映射实例
Mar 14 #Python
python pyqtgraph 保存图片到本地的实例
Mar 14 #Python
Python 实现将大图切片成小图,将小图组合成大图的例子
Mar 14 #Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
Mar 14 #Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 #Python
You might like
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
中英文字符串翻转函数
2008/12/09 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
PHP生成二维码的两个方法和实例
2014/07/01 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
php中Redis的应用--消息传递
2017/03/28 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
javascript 数组的定义和数组的长度
2016/06/07 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
2016/08/25 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
解决Layui数据表格的宽高问题
2019/09/28 Javascript
原生JS实现留言板
2020/03/26 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
2020/10/28 Javascript
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
mac下如何将python2.7改为python3
2018/07/13 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
2019/05/10 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
印尼购物网站:iLOTTE
2019/10/16 全球购物
初中地理教学反思
2014/01/11 职场文书
服务之星获奖感言
2014/01/21 职场文书
员工安全生产承诺书
2014/05/22 职场文书
竞选学委演讲稿
2014/09/13 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
Vue实现下拉加载更多
2021/05/09 Vue.js
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL
Redis Stream类型的使用详解
2021/11/11 Redis