有一个需求是要求显示插入的U盘的盘符,当然了,如果拔出U盘,也应该更新显示,就是显示U口上插入的全部移动设备的全部盘符。获取了  WM_DEVICECHANGE   可以提示,但无法细分消息  DBT_DEVICEARRIVAL  无法获取想想做这么个简单功能都这么烦,真他妈的丢有谁能给些实用的代码,我要代码不要说教,谢谢

解决方案 »

  1.   

    我是配合  CMFCSHELLLISTCTRL  使用的重载了框架里的LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
    {
    if(message==WM_DEVICECHANGE)
    {
    if(wParam==DBT_DEVICEARRIVAL)
    {
    OnRefresh();
    }
    if(wParam==DBT_DEVICEREMOVECOMPLETE)
    OnRefresh();
    } return CFrameWndEx::WindowProc(message, wParam, lParam);
    }U盘的插入和拨出消息都可以截获了但插入时有个延时,不能及时ONREFRESH  拨出倒可以,真烦
      

  2.   

    http://hi.baidu.com/tys1b0037f/blog/item/4d8fd41f06af4160f724e417.html
      

  3.   


    那个连接都不知所云解决了  截取 WM_DEVICECHANGE  DBT_DEVICEARRIVAL 后可以检测到盘符,到还不能打开设备,这里有个延迟的使用 WHILE(!打开设备()){;}当退出循环时,设备已经可以正常使用了,再刷新干其它什么的都可以了