wince5.0 +ARM9的USB设备获取PID,VID信息
大家好,我的机器是wince5.0 +ARM9 ,我是新手菜鸟,才开始学习.
先做个小程序测试,检测插在机器上的USB鼠标或者键盘PID,VID信息,
1.WINCE工程要把USB HID Keyboard and Mouse组件加入你的工程中。
2.需要知道是否加入USB HID Keyboard and Mouse组件的common.reg中相关注册表的差别
没有加入USB HID Keyboard and Mouse组件,common.reg中相关注册表信息如下:
//USB keyboard
; @CESYSGEN IF CE_MODULES_KBDHID
; @CESYSGEN ENDIF CE_MODULES_KBDHID
//USB mouse
; @CESYSGEN IF CE_MODULES_MOUHID
; @CESYSGEN ENDIF CE_MODULES_MOUHID
没有加入USB HID Keyboard and Mouse组件,common.reg中相关注册表信息如下:
//USB keyboard
; @CESYSGEN IF CE_MODULES_KBDHID
[HKEY_LOCAL_MACHINE\Drivers\HID\LoadClients\Default\Default\1_6\Keyboard]
"DLL"="KBDHID.DLL"
[HKEY_LOCAL_MACHINE\Drivers\HID\ClientDrivers\Keyboard]
"DLL"="KBDHID.DLL"
"Prefix"="KBD"
"IClass"="{CBE6DDF2-F5D4-4e16-9F61-4CCC0B6695F3}"
"RemoteWakeup"=dword:1
"Flags"=dword:00010000
; @CESYSGEN ENDIF CE_MODULES_KBDHID
//USB mouse
; @CESYSGEN IF CE_MODULES_MOUHID
[HKEY_LOCAL_MACHINE\Drivers\HID\LoadClients\Default\Default\1_2\Mouse]
"DLL"="MOUHID.DLL"
"RemoteWakeup"=dword:1
; @CESYSGEN ENDIF CE_MODULES_MOUHID
从上面的差别中可以看到USB keyboard和USB mouse可以通过注册表项[HKEY_LOCAL_MACHINE\Drivers\HID\LoadClients\Default\Default\1_2\Mouse]
中的“HKEY_LOCAL_MACHINE\Drivers\HID\LoadClients\Default\Default\xxx_xxx"中提取到VID和PID码的,因为只要接入USB keyboard或是USB mouse,USB HID驱动会枚举接入的USB HID设备,通过注册表信息HKEY_LOCAL_MACHINE\Drivers\HID\LoadClients\Default\Default\xxx_xxx就可以得到VID和PID,楼主的测试程序就可以基于这个思想来实现了。
这个成品机器的系统应该是加载了USB HID驱动了,你可以通过查询注册表信息的“HKEY_LOCAL_MACHINE\Drivers\HID\LoadClients\Default\Default\xxx_xxx"中的xxx_xxx来解析出PID和VID