监听USB插入拔出事件
USB拔插事件,最好能判断出插入的设备是否为手机
试过以下方法未果
1:重写WndProc,能获取到0x0007—evice 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);
}