#include <setupapi.h>
#pragma comment(lib, "setupapi.lib")
CHAR g_cVID[5] = {0};
CHAR g_cPID_RGB[5] = {0};
CHAR g_cPID_Infrared[5] = {0};
BOOL GetCameraUSB()
{
BOOL bRet = FALSE;
BOOL bPID_RGB = FALSE;
BOOL bPID_Infrared = FALSE;
LPGUID lpGuid = (LPGUID)&GUID_CLASS_USB_DEVICE;//
int INTERFACE_DETAIL_SIZE = 1024;
int nCount = 0;
HDEVINFO info = SetupDiGetClassDevs(lpGuid, NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE);
//enumerate device information
DWORD required_size = 0;
int i;
SP_DEVINFO_DATA DeviceInfoData = { sizeof(DeviceInfoData) };
DWORD DataT;

该博客介绍了一个使用C++获取USB设备VID和PID的函数`GetCameraUSB()`。通过`SetupDiGetClassDevs`获取设备信息,遍历设备描述并使用`SetupDiGetDeviceRegistryProperty`读取硬件ID,比较并判断是否为指定的RGB或红外相机。最后,如果找到RGB和红外相机,返回TRUE。
最低0.47元/天 解锁文章
8232

被折叠的 条评论
为什么被折叠?



