USB HID 多设备检查工具,使用USB Tree View源码修改而来

USB HID 多设备检查工具,使用USB Tree View源码修改而来

    最近一直在研究USB HID多设备升级,然后就查看了微软提供的WDK USB Tree View源码,但是没有找到USB多设备端口绑定的决定因素,当在电脑接上多个相同的USB设备时,就不好判断USB HID设备路径对应的USB端口了。当时修改了 USB Tree View源码后就出现了这样的问题,根据PID VID以及设备GUID来判断连到哪个端口,但是很快就被否定了,当接了两台一样的设备时彻底傻眼了,每个端口上都有这些设备路径。

    最后在网上查看了一个帖子,说是可以根据注册表来判断设备的连接,果然可以!上图中的PID和VID就是我使用的鼠标的ID,英菲克的鼠标!

 

    最终通过注册表发现一个USB设备如果是复合设备时,其注册表对应的ContainerID都是一样的!!!

    正好USB Tree View 源码里也可以读取USB设备对应的ContainerID ,然后就将USB Tree View 做成了动态dll,可以直接使用Autoit或C#等程序进行调用,下图是使用Auto调用的结果。USB复合设备对应的端口绑定也就解决了。

   之前看了好多的帖子,也有兄弟在咨询说公司做项目,很多相同的USB设备连到电脑上怎么区分,使用我这个dll其实就可以进行初步区分了,什么***识别,GUID识别都不行,不能唯一对应设备在哪个usb端口,因此,升级后设备接在哪个端口更加不知道了,通过判断ContainerID可以唯一确定设备连接的USB端口号。

    有一点有人要问的,比如我现在笔记本只有3个USB端口,为什么显示有24个端口这么多啊,其实这是电脑内部的USB总线,比如笔记本对应的WebCam 网络摄像头,也是通过USB来连接的,因此内部也要使用端口,还有一些设备比如wifi,蓝牙什么的也可能是通过内部USB连接的。使用我的例子程序,大家可以看到实体USB口对应的编号,USB HID升级以及设备识别也就简单很多了。大家也可以在网上下载一个USB Devic Tree Viewer看一下自己电脑上的USB口是不是按照下图中显示的。

USB HID 多设备检查工具,使用USB Tree View源码修改而来

 

最后,当然少不了源码放送了:查看我的资源,https://download.****.net/download/es15071848238/11232139