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 相关文章推荐
numpy自动生成数组详解
Dec 15 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
django基于存储在前端的token用户认证解析
Aug 06 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 Python
python使用sklearn实现决策树的方法示例
Sep 12 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
Python Tornado之跨域请求与Options请求方式
Mar 28 Python
python里glob模块知识点总结
Jan 05 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
php简单实现数组分页的方法
2016/04/30 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
Python输出带颜色的字符串实例
2017/10/10 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
大学生简短的自我评价分享
2014/02/20 职场文书
党员公开承诺事项
2014/03/25 职场文书
田径运动会开幕式及主持词
2014/03/28 职场文书
大学三年计划书范文
2014/04/30 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
人事代理委托书
2014/09/27 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
小学运动会前导词
2015/07/20 职场文书