zoukankan      html  css  js  c++  java
  • qt 检测u盘插入

    已经找到解决方法,下面只描述最主要的部分,其他部分不是难题,问题主要在于怎么样发现U盘的插入与拨出,使用qt自带的QDBus可以实现,下面为连接代码,当系统有设备插入时,可以调用slotDeviceAdded(QString udi)函数。


    在pro文件中应该加入
    QT +=dbus

    复制代码

       1. #include <QtDBus/QDBusConnection>
       2. //以下为检测设备的插入
       3.       QDBusConnection::systemBus().connect(    "org.freedesktop.Hal",
       4.                         "/org/freedesktop/Hal/Manager",
       5.                         "org.freedesktop.Hal.Manager",
       6.                         "DeviceAdded",
       7.                         this,
       8.                         SLOT(slotDeviceAdded(QString )));
       9. //以下为检查设备的拨出
      10.     QDBusConnection::systemBus().connect(    "org.freedesktop.Hal",
      11.                         "/org/freedesktop/Hal/Manager",
      12.                         "org.freedesktop.Hal.Manager",
      13.                         "DeviceRemoved",
      14.                         this,
      15.                         SLOT(slotDeviceRemoved(QString )));


    在slotDeviceAdded(QString udi)函数中,要使用到

    复制代码

       1.     QDBusInterface device("org.freedesktop.Hal", udi, "org.freedesktop.Hal.Device" , QDBusConnection::systemBus());


    通过HAL可以查询到设备为volume的设备,然后通过判断是否为/dev/sd*的设备,就可以判断出是否为U盘,然后调用mount就可以了。
    这时记录下U盘的UDI,在检测到设备拨出时,再查询一下U盘的UDI是否还在,就知道U盘是否被拨出了。
  • 相关阅读:
    jq中的ajax
    浅谈ajax的优点与缺点
    jq模拟操作
    Spring注解使用和与配置文件的关系
    Spring中@Autowired注解、@Resource注解的区别
    分页技术
    动态的把固定格式的json数据以菜单形式插入
    web.xml文件中context-param、listener、filter、servlet的执行顺序
    spring MVC controller中的方法跳转到另外controller中的某个method的方法
    spring mvc后台如何处理ajax的请求,并返回json
  • 原文地址:https://www.cnblogs.com/zzxap/p/2175688.html
Copyright © 2011-2022 走看看