最新消息:

python监听usb鼠标插入

python admin 4667浏览 0评论

在刚把电脑系统转为linux之后,一直觉得需要通过命令:sudo rmmod psmouse来完成禁用触摸板的操作实在是太不方便了,于是就想着用一个python脚本来完成该操作。

于是在网上找到了pyUSB这个python库,可以轻松的完成对usb设备的操作。

我的整个思路是这样的,首先开机启动一个python程序,不断运行,不停的检查usb设备中是否有usb鼠标的身影,如果有,那么执行上面的那个禁用触摸板的命令,如果没有,就启用触摸板。
到目前为止还没有完成这个小脚本,个人觉得系统应该是有一个usb设备插入的事件通知的,只是目前还不清楚怎么调用,另外还有一个问题是如何在python脚本中以管理员的身份执行禁用和启用触摸板的命令。

关于判断插入usb鼠标的代码已经完成,关于usb设备的必备知识:

USB设备分类
USB从设备的分类可以从USB设备接口描述符(Standard Interface Descriptor)对应的的bInterfaceClass这一个byte得到。
bInterfaceClass的典型代码为1,2,3,6,7,8,9,10,11,255。分别代表意思为1-audio:表示一个音频设 备。2-communication device:通讯设备,如电话,moden等等。3-HID:人机交互设备,如键盘,鼠标等。6-image图象设备,如扫描仪,摄像头等,有时数码相 机也可归到这一类。7-打印机类。如单向,双向打印机等。8-mass storage海量存储类。所有带有一定存储功能的都可以归到这一类。如数码相机大多数都归这一类。9-hub类。11-chip card/smart card。255-vendor specific.厂家的自定义类,主要用于一些特殊的设备。如接口转接卡等。

下面是代码:(当然,前提是你要安装PyUSB库)

import usb
import os

busses = usb.busses()

for bus in busses:
	devices = bus.devices
	for dev in devices:
		for config in dev.configurations:
			for intf in config.interfaces:
				for alt in intf:
					print " --------alt.interfaceClass:",alt.interfaceClass
					if alt.interfaceClass == 3:
						print 'hahhaahhaah'
						cmd = 'sudo rmmod psmouse'
						os.system(cmd)

转载请注明:爱开源 » python监听usb鼠标插入

您必须 登录 才能发表评论!