您的位置:首页 > 其它

vc检测usb设备的拔插状态

2017-02-21 14:00 375 查看
检测USB设备的拔插信息

1.在BOOL CUsbHid123Dlg::OnInitDialog(){}中注册设备

DEV_BROADCAST_DEVICEINTERFACE DevInt;
memset(&DevInt,0,sizeof(DEV_BROADCAST_DEVICEINTERFACE));
DevInt.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
DevInt.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
DevInt.dbcc_classguid = USB;//usb设备的GUID
RegisterDeviceNotification(this->m_hWnd,&DevInt, DEVICE_NOTIFY_ALL_INTERFACE_CLASSES);

2.BOOL CUsbHid123Dlg::OnDeviceChange(UINT nEventType, DWORD dwData)

{

DEV_BROADCAST_DEVICEINTERFACE* dbd = (DEV_BROADCAST_DEVICEINTERFACE*) dwData;
PDEV_BROADCAST_HDR devHdr= (PDEV_BROADCAST_HDR)dwData;
PDEV_BROADCAST_DEVICEINTERFACE devInterface=(PDEV_BROADCAST_DEVICEINTERFACE)devHdr;

switch(nEventType)
{
case DBT_DEVICEARRIVAL:

if (devHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE)
{
//MessageBox("1");
GetDlgItem(IDC_REV)->SetWindowText("USB设备已连接");

}
break;

case DBT_DEVICEREMOVECOMPLETE:
GetDlgItem(IDC_REV)->SetWindowText("USB设备已移除");
break;

default:
break;

}
return TRUE;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: