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

Qt监测光驱变化(使用WM_DEVICECHANGE)的更多相关文章

  1. How Javascript works (Javascript工作原理) (十) 使用 MutationObserver 监测 DOM 变化

    个人总结: 这篇文章介绍了几种监测DOM变化的方法,重点介绍的是一个新浏览器API叫做MutationObserver. 注意:不要和Vue.js种 Object.defineProperty() 的 ...

  2. JavaScript 工作原理之十-使用 MutationObserver 监测 DOM 变化

    原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第十章. 网络 ...

  3. 分享Grunt.js配置: watch + liveReload 实时监测文件变化自动刷新浏览器

    http://www.tuicool.com/articles/2eaQJn 用Grunt配置watch和liveReload组件,可以实时检测指定的文件变化并自动刷新浏览器.目前基本已经成为了我的必 ...

  4. JNotify的监测文件变化的简单测试例子

    一.理由 使用JNotify监测的更全面,更快速. 二.参考代码 import net.contentobjects.jnotify.JNotify; import net.contentobject ...

  5. Electron-vue中通过WebAudioApi实现录音功能,并转换为mp3格式,实时监测音频设备变化

    实现以下功能: 1.检测当前音频环境,是否支持录音(WebAudio Api): 2.获取输入.输出设备列表,获取电脑默认的音频设备: 3.试音功能,通过分析录音样本数据,判断是否录到声音: 4.实时 ...

  6. shell脚本监测文件变化

    1. 我使用过的Linux命令之du - 查看文件的磁盘空间占用情况 用途说明 du命令是用来查看磁盘空间占用情况的,在Linux系统维护时常会用到,并且通常与df命令搭配使用.首先使用df看一下各个 ...

  7. 用QT写的简单Todo记事本-附源码(浮动窗口)

    去年边学边写了搞了很久, 已经好久没继续开发了, 先放出来供大家参考吧. 发现自己的学习能力还是不错的. 技术点: 使用QT, QML技术 代码参考: https://github.com/cnscu ...

  8. QT程序库

      实际上,QT不仅仅是一个巨大的程序库,而是7个程序库,还包括许多使用工具,qmake是其中的一个.如今,术语GUI工具包代表的东西的用途不再仅仅是系统提供的那么一个小部分(GUI界面).尤其是QT ...

  9. QT OpenGL中文教程在QT4版本后的错误代码更改(一)

    由于教程中说的已经够可以了,这里就不对代码进行分析了,有兴趣可以自己去看看.这个教程来源于原来的NeHeOpenGL中文教程 (http://www.yakergong.net/nehe/) ,但其有 ...

随机推荐

  1. Android DatePicker和TimePicker

    监测日期改变的监听器:      OnDateChangedListener和OnTimeChangedListener()           当用户改变Datepicker里的年.月.日时,将触发 ...

  2. jquery写的tab切换效果 非常简单

    自己写的一款 tab切换效果,比较简单,适合新手 <style type="text/css">*{margin:0; padding:0; font-size:12p ...

  3. 基于jQuery的Jsonp跨域[Get方式]

    由于目前的项目需要无刷新的跨域操作数据,整理了下自己使用的基于jQuery的Jsonp跨域[Get方式]. 代码如下: Javascript部分 $(function(){ $.ajax({ asyn ...

  4. javascript不同数据类型的转换

    <script type="text/javascript"> var userEnteredNumber=prompt("Please enter a nu ...

  5. spoj ONP - Transform the Expression 中缀转后缀

    题目链接 将中缀表达式转化为后缀表达式. 数字的话直接放到答案的字符串里. 如果是左括号就进栈, 右括号就让栈里的符号都出来直到第一个左括号. 否则的话比较当前符号的优先级和栈顶符号的优先级. #in ...

  6. byte与sbyte的转换

    C#实现byte与sbyte的转换 byte[] mByte; sbyte[] mSByte = new sbyte[mByte.Length]; ; i < mByte.Length; i++ ...

  7. mini-httpd源码分析-tdate_parse.h

    ///关联字符串和整数 struct strlong { char* s; long l; }; ///将字符串中的大写字母转换成小写字母 static void pound_case(char* s ...

  8. HTML 5 新标签

    HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2  HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务( ...

  9. FAQ:Python中*args和**agrs的区别

    python提供了两种特别的方法来定义函数的参数: 1. 位置参数 *args,  把参数收集到一个元组中,作为变量args   >>>def show_args(*args):   ...

  10. Flex4开发笔记(与JAVA交互)

    (由于本人也是第一次接触flex开发,因此将开发过程中问题记录留档) 一.数据交换过程 借助BlazeDS可以实现flex与java之间的数据交互,大体流程如下: 1.导入blazeds的文件(配置w ...