• 9982阅读
  • 3回复

可以检测usb热拔插的qt类 [复制链接]

上一主题 下一主题
离线novesky
 

只看楼主 倒序阅读 楼主  发表于: 2011-09-11
关键词: usb监视热拔插
    项目已在https://github.com/wang-bin/qdevicewatcher
    目前支持linux和windows。一般只要用QDeviceWathcer的deviceAdded(const QString&)和deviceRemoved(const QString&)这两个信号就够了。


    linux下是用netlink,Windows下参考qdrive项目 https://gitorious.org/qdrive/qdrive
    没有完全看懂,所以我的代码可能会有点问题。但至少可以正常工作了。


    之前windows下我的方法是继承QCoreApplication,重新实现QCoreApplication::winEventFilter(MSG* msg, long* result)。但是希望做成QObject的子类,这样可以单独使用;也可以继承QWidget,重新实现QWidget::winEvent(MSG* msg, long* result),但是不想引入GUI模块。最后很幸运地找到了qdrive这个项目,它还实现了mac和symbian平台,可能QCore获取windows消息的实现也是类似的方法。
    qdrive的linux下实现方式是监视/etc/mtab,但是这要求系统会自动挂载设备,用netlink没这个要求,这个我对作者提出了。2.6一下的内核不支持netlink,倒是可以使用监视/etc/mtab,因为还没想到其他办法。


只看该作者 1楼 发表于: 2011-10-25
不错啊~加油哦~
离线yanxinorg
只看该作者 2楼 发表于: 2011-11-25
强人
离线shucan3652
只看该作者 3楼 发表于: 2012-08-26
lz好人,一生平安,感谢分享
快速回复
限100 字节
 
上一个 下一个