我想截获usb设备将要拔出的消息我用过WindowProc函数用DeviceChangede的一系列消息可以得到u盘的插入与删除的消息,但当u盘不能正常弹出时,即当弹出“通用卷无法”却无法截获这种状态的消息,
如果硬拔的话,可以截获U盘拔出的消息。 因为我用另一个程序监控U盘,所以当想拔出设备时,总是报不能正常删除。我现在想截获用户点击“安全删除USB MASS STORAGE”或U盘正在被拔出的消息,
然后关闭我的监控程序,U盘就可以正常被拔出了。 不知我说的是否明白?谢谢
如果硬拔的话,可以截获U盘拔出的消息。 因为我用另一个程序监控U盘,所以当想拔出设备时,总是报不能正常删除。我现在想截获用户点击“安全删除USB MASS STORAGE”或U盘正在被拔出的消息,
然后关闭我的监控程序,U盘就可以正常被拔出了。 不知我说的是否明白?谢谢
if(Message.Msg == WM_DEVICECHANGE) //帮助里面有这个消息的详细说明
{
switch(Message.WParam)
{
case DBT_DEVICEARRIVAL:
{
PDEV_BROADCAST_VOLUME dbvDev = (DEV_BROADCAST_VOLUME *)Message.LParam;
if(dbvDev->dbcv_flags == 0)
{
Message(NULL,"插入USB设备!","提醒",MB_OK);
}
break;
}
case DBT_DEVICEREMOVECOMPLETE:
Message(NULL,"你的USB设备被拔出!","提醒",MB_OK);
break;
default:
break;
}
当USB设备被拔出后 当然会触发参数为DBT_DEVICEREMOVECOMPLETE 的WM_DEVICECHANGE消息。现在是将要弹出,而还没有弹出,当然 就不会有参数为DBT_DEVICEREMOVECOMPLETE 的WM_DEVICECHANGE消息。
http://topic.csdn.net/u/20081208/23/46fe7722-01bd-45e8-ae08-38f06d117c05.html
Device is about to be removed. Cannot be denied.
这个消息不就是将要被拔出的消息吗
问题还是没能解……
谁要是有解决方案了记得给我说一声。[email protected]谢谢。