the5fire的技术博客

关注python、vim、linux、web开发和互联网--life is short, we need python.


python监听usb鼠标插入

作者:the5fire | 标签:     | 发布:2011-10-06 10:15 p.m. | 阅读量: 8161, 8105
在刚把电脑系统转为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)

----EOF-----

扫码关注,或者搜索微信公众号:码农悟凡

【上一篇】 ubuntu下配置拨号上网
【下一篇】 说说django

其他分类: