首页
社区
课程
招聘
[旧帖] [原创]判断U盘拔出插入 0.00雪花
发表于: 2011-3-29 12:43 1288

[旧帖] [原创]判断U盘拔出插入 0.00雪花

2011-3-29 12:43
1288
本文适合写mfc程序的朋友
为CTestDlg了添加一个成员函数 响应驱动的变动
afx_msg BOOL OnDeviceChange(UINT nEventType, DWORD dwData);

添加消息宏 这个消息会自动关联到 OnDeviceChange
ON_WM_DEVICECHANGE()

实现消息驱动函数
BOOL CTestDlg::OnDeviceChange(UINT nEventType, DWORD dwData)
{
    if( nEventType ==32768)
   {
             MessageBox(_T("U盘插入"));
   } else if(nEventType ==32772)  
            {
                  MessageBox(_T("U盘拔出"));
            }
}

----------------------------------------------------------------------------------------------------------------------------

获取U盘符

    CString str = _T("z:\\");
    for( char ch = 'z'; ch >='c'; ch--)
    {
        str.SetAt(0,ch);
        UINT type = GetDriveType(str);
        if(DRIVE_REMOVABLE == type)
        {
            AfxMessageBox(str);
        }
    }

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 7
活跃值: (333)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
这种只能针对特殊的。

最好,在一个线程里面做,在这个线程中创建窗口,用于监视WM_DEVICECHANGE消息。
2011-3-29 13:15
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持,虽然看不太懂~
2011-3-29 13:17
0
雪    币: 47
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
LZ,您的这个例程好像只能识别一个特定的盘符。如果同时插入了多个U盘如何解决呢?
2011-3-29 14:29
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个是浅显的吗?我还是看不明白的啊!
2011-3-29 15:03
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
6
lz老兄  您试过了没? 我怎么试了不成功啊。。。
2011-3-29 15:10
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
7
枚举可移动磁盘,如果没有就是弹出?
量产为硬盘的怎么判断?
2011-3-29 15:42
0
雪    币: 23
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
对我这样的初学者来说,这程序不错了。但我复制用,好似我的电脑不怎么配合啊。
2011-3-29 22:02
0
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
LZ牛人,可惜我没看懂~!!
2011-3-29 22:35
0
游客
登录 | 注册 方可回帖
返回
//