zoukankan      html  css  js  c++  java
  • Qt监测光驱变化(使用WM_DEVICECHANGE)

    xxx.h

     

    protected:

    bool winEvent(MSG *msg,long * result);

     

    xxx.cpp

     

    bool CBlurayTranscoderDlg::winEvent(MSG *msg,long * result)

    {

             int msgType = msg->message;  

             if(msgType == WM_DEVICECHANGE)  

             {     

                       qDebug() << "winEvent in MgFrame : WM_DEVICECHANGE" ;     

                       PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)msg->lParam;     

                       switch(msg->wParam)     

                       {

                       case DBT_DEVICEARRIVAL:        

                                if (lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME)        

                                {     

                                         PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;           

                                         if (lpdbv -> dbcv_flags & DBTF_MEDIA)           

                                         {                

                                                   /*此处可以做你想做的事*/           

                                                   qDebug() << "CD_Arrived ";            

                                         }        

                                }        

                                break;         

                       case DBT_DEVICEREMOVECOMPLETE:        

                                if (lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME)        

                                {           

                                         PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;           

                                         if (lpdbv -> dbcv_flags & DBTF_MEDIA)           

                                         {                

                                                   // 弹出光驱,此处可以做你想做的事              

                                                   qDebug() << "CD_Removed";           

                                         }        

                                }        

                                break;     

                       } // skip the rest   

             } // end of if msgType  

             return false; // let qt handle the rest

    }

    只在主窗口中实现以上代码时才可以执行.

    http://blog.chinaunix.net/uid-20718335-id-364414.html

  • 相关阅读:
    大话设计模式笔记 装饰模式
    大话设计模式笔记 依赖倒转原则
    大话设计模式笔记 单一职责原则 开放-封闭原则
    Effective Java 英文 第二版 读书笔记 Item 5:Avoid creating unnecessary objects.
    Effective Java 英文 第二版 读书笔记 Item 4:Attempting to enforce noninstantiability by making a class abstract does not work.
    Effective Java 英文 第二版 读书笔记 Item 3:Enforce the singleton property with a private constructor or an enum type.
    Effective Java 英文 第二版 读书笔记 Item 2:Consider a builder when faced with many constructor parameters.
    大话设计模式笔记 策略模式
    大话设计模式笔记 简单工厂模式
    jvm的垃圾回收算法
  • 原文地址:https://www.cnblogs.com/findumars/p/5040431.html
Copyright © 2011-2022 走看看