获取电脑USB设备VID和PID等信息。
2013-12-28 10:23
495 查看
转自:【VC】 获取电脑USB设备VID和PID等信息。
1,添加头文件和宏定义[cpp]
view plaincopyprint?
#include <setupapi.h>
#include <initguid.h>
#pragma comment(lib,"setupapi.lib")
DEFINE_GUID (UsbClassGuid, 0xa5dcbf10L, 0x6530, 0x11d2, 0x90, 0x1f, 0x00, 0xc0, 0x4f, 0xb9, 0x51, 0xed);
#include <setupapi.h> #include <initguid.h> #pragma comment(lib,"setupapi.lib") DEFINE_GUID (UsbClassGuid, 0xa5dcbf10L, 0x6530, 0x11d2, 0x90, 0x1f, 0x00, 0xc0, 0x4f, 0xb9, 0x51, 0xed);
[cpp]
view plaincopyprint?
HDEVINFO hDevInfo;
SP_DEVICE_INTERFACE_DATA spDevData;
PSP_DEVICE_INTERFACE_DETAIL_DATA pDetail;
BOOL bRes = TRUE;
int nCount = 0;
hDevInfo = ::SetupDiGetClassDevs((LPGUID)&UsbClassGuid,NULL,NULL,DIGCF_PRESENT|DIGCF_INTERFACEDEVICE);
if (hDevInfo != INVALID_HANDLE_VALUE)
{
pDetail = (PSP_DEVICE_INTERFACE_DETAIL_DATA)::GlobalAlloc(LMEM_ZEROINIT,1024);
pDetail->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
while (bRes)
{
spDevData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
bRes = ::SetupDiEnumDeviceInterfaces(hDevInfo,NULL,(LPGUID)&UsbClassGuid,nCount,&spDevData);
if (bRes)
{
bRes = ::SetupDiGetInterfaceDeviceDetail(hDevInfo,&spDevData,pDetail,1024,NULL,NULL);
if (bRes)
{
CString szStr = pDetail->DevicePath;
nCount ++;
}
}
}
::GlobalFree(pDetail);
::SetupDiDestroyDeviceInfoList(hDevInfo);
}
HDEVINFO hDevInfo; SP_DEVICE_INTERFACE_DATA spDevData; PSP_DEVICE_INTERFACE_DETAIL_DATA pDetail; BOOL bRes = TRUE; int nCount = 0; hDevInfo = ::SetupDiGetClassDevs((LPGUID)&UsbClassGuid,NULL,NULL,DIGCF_PRESENT|DIGCF_INTERFACEDEVICE); if (hDevInfo != INVALID_HANDLE_VALUE) { pDetail = (PSP_DEVICE_INTERFACE_DETAIL_DATA)::GlobalAlloc(LMEM_ZEROINIT,1024); pDetail->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA); while (bRes) { spDevData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); bRes = ::SetupDiEnumDeviceInterfaces(hDevInfo,NULL,(LPGUID)&UsbClassGuid,nCount,&spDevData); if (bRes) { bRes = ::SetupDiGetInterfaceDeviceDetail(hDevInfo,&spDevData,pDetail,1024,NULL,NULL); if (bRes) { CString szStr = pDetail->DevicePath; nCount ++; } } } ::GlobalFree(pDetail); ::SetupDiDestroyDeviceInfoList(hDevInfo); }
pDetail->DevicePath = 0x00224f04 "\\?\usb#vid_0451&pid_f432#3aff466e374b2516#{a5dcbf10-6530-11d2-901f-00c04fb951ed}"
相关文章推荐
- 【VC】 获取电脑USB设备VID和PID等信息。
- 根据VID PID获取USB设备路径
- 关于Mac获取usb设备pid,vid,locationID的使用
- 获取指定USB设备的VID PID和SerialNumber
- 获取指定USB设备的VID PID和SerialNumber
- 获取usb设备的vid,pid
- vc通过usb获取手机设备vidpid
- Android下USB设备VID与PID获取及ADB设置
- libusb获取usb设备的idVendor(vid),idProduct(pid),以及Serial Number
- 嵌入式 如何查看USB设备信息VID PID
- 视频倒立解决方法/USB 视频设备ID:USB\VID_13D3&PID_5130&MI_00\6&21DA5E09&0&0000
- Delphi调用WMI读取USB设备的PID和VID
- 查看USB设备VID和PID [2013-11-30更新]
- 结合设备安装类GUID和设备接口类GUID获取设备VIDPID
- Delphi调用WMI读取USB设备的PID和VID
- C#获取自己电脑相关设备信息
- 请问如何获取车载USB设备信息(名称等)
- Windows下USB磁盘开发系列三:枚举系统中U盘、并获取其设备信息
- 通过USB VID和PID卸载USB设备
- VC获取usb设备信息