首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

监听USB安插拔出事件

2013-12-19 
监听USB插入拔出事件USB拔插事件,最好能判断出插入的设备是否为手机试过以下方法未果1:重写WndProc,能获取

监听USB插入拔出事件
USB拔插事件,最好能判断出插入的设备是否为手机
试过以下方法未果
1:重写WndProc,能获取到0x0007(Device List _Changed)但是这种插入后会执行几次事件
2:http://bbs.csdn.net/topics/390670533  这种方法能获取USB的变化,当USB类型为U盘的时候可以,但是当为手机的时候,不行

找解决办法
[解决办法]
帮你顶一下!建议你去C/C++专区,处理这类设备问题应该说底层一点的语言更方便。
[解决办法]


const int DBT_DEVICEARRIVAL = 0x8000;
const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
protected override void WndProc(ref Message m)
{
    try
    {
        int i =m.WParam.ToInt32();
        switch (i)
        {
            case DBT_DEVICEARRIVAL: 
                DriveInfo[] s = DriveInfo.GetDrives();
                foreach (DriveInfo drive in s)
                {
                    if (drive.DriveType == DriveType.Removable)
                    {
                        MessageBox.Show("USB插入");
                        break;
                    }
                }
                break;
            case DBT_DEVICEREMOVECOMPLETE: 
                //
                MessageBox.Show("USB卸载");
                break;
            default:
                break;
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    base.WndProc(ref m);
}

热点排行