用Python监听鼠标和键盘事件

2020-06-19 00:00:00 事件 监听 鼠标 钩子 键盘

端午小长假,飞驰而过。今天开始你要开始上学了、上班了?端午节过的怎么样?不管你过得怎么样,我呢?端午节的时候去杭州了。

说一下感受:人从众....(千万别去尤其是市区附近)

刚进入上班时间,给大家带来的是什么呢?正如标题,python监听鼠标和键盘。一如惯例,分为两大平台。

1、在windows环境下

PyHook是一个基于Python的“钩子”库,主要用于监听当前电脑上鼠标和键盘的事件。这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在Windows平台,所以PyHook也只能运行在Windows平台。

pyHook下载链接: pyHook download

关于PyHook的使用,在它的官方主页上就有一个简单的教程,大体上来说,可以这样使用:


# -*- 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 "---"
 
	# 返回 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()

相关文章