读书人

请教怎么识别HID设备是鼠标、键盘还是

发布时间: 2012-03-20 14:01:11 作者: rapoo

请问如何识别HID设备是鼠标、键盘还是其它
请问使用什么样的API可以正确识别出插入系统的HID设备是鼠标还是键盘还是其它的(不想使用hid.lib的。HidP_GetCaps )。


[解决办法]
找个哪个设备的接口GUID(或者SetupDiClassGuidsFromName),然后
HDEVINFO hDevInfo = SetupDiGetClassDevs获取设备集GUID
SetupDiEnumDeviceInfo或者SetupDiEnumDeviceInterfaces得到PSP_DEVINFO_DATA数据。

使用
DWORD dwRequiredSize = 0;
SetupDiGetDeviceRegistryProperty(hDevInfo,...SPDRP_DEVTYPE..NULL, 0, &dwRequiredSize)获取缓冲区大小,
LPBYTE p = new BYTE[dwRequiredSize];
再次调用SetupDiGetDeviceRegistryProperty(....SPDRP_DEVTYPE..p, dwRequiredSize,&dwRequiredSize)
获取它的设备类型,
DWORD dwType = *((DWORD*)p)
if (dwType == FILE_DEVICE_KEYBOARD)
else if (dwType == FILE_DEVICE_MOUSE)
...

读书人网 >VC/MFC

热点推荐