在USB\VID_05A9&PID_2800\5&1BFE1C47&0&8里面,USB代表设备类型,
5&1BFE1C47&0&8代表设备连接位置,包括总线位置,控制器位置,控制器编号,端口编号这几项,
而VID_05A9&PID_2800则是设备信息,USB的驱动也正是依赖于这个,
VID其实是Vendor ID(生产厂商ID),PID则是Product ID(产品ID),分别代表生产商的编号和生产商内部的产品编号。
原则上说一个USB设备必须有PID和VID,属于USB接口芯片的可选设置。

///////////////////////////即插即用总线信息/////////////////////////////
ManagementObjectSearcher mos0 = new ManagementObjectSearcher(@"select * from Win32_Bus where DeviceID like 'PNP_BUS%'");
            foreach (ManagementObject mo in mos0.Get())
            {
                foreach (PropertyData p in mo.Properties)
                {
                    Console.WriteLine(p.Name + "--------" + p.Value);
                }
            }

/////////////////////////////////USB控制器以及连接的设备/////////////////////////////////
ManagementObjectSearcher moc1 = new ManagementObjectSearcher(@"select * from Win32_USBController where Manufacturer='Intel'");
            foreach (ManagementObject mo1 in moc1.Get())
            {
                foreach (PropertyData p in mo1.Properties)
                {
                    Console.WriteLine(p.Name + "--------" + p.Value);
                }
            }

//////////////////////USB控制器以及当前与他们相关联的设备的集合//////////////////////
ManagementObjectSearcher mos1 = new ManagementObjectSearcher(@"select * from Win32_USBControllerDevice");
            foreach (ManagementObject mo1 in mos1.Get())
            {
                foreach (PropertyData p in mo1.Properties)
                {
                    Console.WriteLine(p.Name + "--------" + p.Value);
                }
            }

////////////////////////////////即插即用的某一个USB设备//////////////////////////////////
ManagementObjectSearcher mos = new ManagementObjectSearcher(@"select * from Win32_PnPEntity where DeviceID like '%usb%mi%' and (Manufacturer like 'microsoft' or Service='usbvideo')");
            foreach (ManagementObject mo in mos.Get())
            {
                foreach (PropertyData p in mo.Properties)
                {
                    if ((p.Name == "Caption") || (p.Name == "ClassGuid") || (p.Name == "DeviceID") || (p.Name == "PNPDeviceID"))
                    {
                        Console.WriteLine(p.Name + "--------" + p.Value);
                    }
                }
            }

C#读取USB的一些相关信息的更多相关文章

  1. 使用dcmtk库读取.dcm文件并获取信息+使用OpenCV显示图像

    借助VS2013和OpenCV的绘图功能,在工程DICOMReader.sln中实现了对单张.dcm图像的读取与显示,以下是详细步骤. 前期准备工作 编译器:VS2013 库:dcmtk-3.6.0( ...

  2. 读取USB HDD(USB移动硬盘信息)序列号的代码

    读取USB HDD(USB移动硬盘)序列号的代码,型号及分位. 使用Visual Studio 2010编译成功. 代码使用了CrystalDiskInfo中的代码smartata.c中相关代码: 例 ...

  3. 在linux中查询硬件相关信息

    1.查询cpu的相关 a.查询CPU的统计信息 使用命令:lscpu 得到的结果如下: Architecture: x86_64 CPU op-mode(s): -bit, -bit Byte Ord ...

  4. Android根据文件路径使用File类获取文件相关信息

    Android通过文件路径如何得到文件相关信息,如 文件名称,文件大小,创建时间,文件的相对路径,文件的绝对路径等: 如图: 代码: public class MainActivity extends ...

  5. 『Python』 爬取 WooYun 论坛所有漏洞条目的相关信息

    每个漏洞条目包含: 乌云ID,漏洞标题,漏洞所属厂商,白帽子,漏洞类型,厂商或平台给的Rank值 主要是做数据分析使用:可以分析某厂商的各类型漏洞的统计:或者对白帽子的能力进行分析..... 数据更新 ...

  6. 【爬虫问题】爬取tv.sohu.com的页面, 提取视频相关信息

    尝试解决下面的问题 问题: 爬取tv.sohu.com的页面, 提取视频相关信息,不可用爬虫框架完成 何为视频i关信息?属性有哪些? 需求: 做到最大可能的页面覆盖率 *使用httpClient 模拟 ...

  7. stat(),lstat(),fstat() 获取文件/目录的相关信息

    stat 的使用 Linux有个命令,ls -l,效果如下: 这个命令能显示文件的类型.操作权限.硬链接数量.属主.所属组.大小.修改时间.文件名.它是怎么获得这些信息的呢,请看下面的讲解. stat ...

  8. USB系列之二:读取USB设备的描述符

    在前面的文章中,我们已经给出了USB协议的链接地址,从这篇文章起,我们会涉及到许多USB 1.1的内容,我们的指导思想是先从熟悉USB 1.1协议入手,先使用现成的HCD和USBD,直接面对客户端驱动 ...

  9. .Net中获取打印机的相关信息

    原文:.Net中获取打印机的相关信息 新项目中牵涉到对打印机的一些操作,最重要的莫过于获取打印机的状态,IP等信息,代码量不大,但是也是自己花了一点时间总结出来的,希望能帮助需要的朋友. Printe ...

随机推荐

  1. 华为oj 统计字符串不同字符

    #include <stdio.h> #include <string.h> int firstSingle(char *str) { int hash[128]={0}; f ...

  2. iOS_SN_CoreData(二)

    上一篇是讲怎么进行CoreData的基本操作,这一篇是讲NSFetchedResultsController得到CoreData数据怎么与tableView完美结合,和动画操作的实现. NSFetch ...

  3. iOS中你必须了解的多线程

    多线程概念详解 什么是进程? 简单的说进程就是我们电脑上运行的一个个应用程序,每一个程序就是一个进程,并且每个进程之间是独立的,每个进程运行在其专用受保护的内存空间内(window系统可以通过任务管理 ...

  4. Readonly and other things about C++

    1. in c# readonly can be delayed to initialize in constructor. 2. in c++ totally no readonly. Many p ...

  5. C语言之链表————(转载)

    #include <stdio.h>#include <malloc.h>#define LEN sizeof(struct student) /*-------------- ...

  6. RF学习过程中遇到的问题

    1.写了一个打开浏览器的用例,执行用例时报需要对应的浏览器驱动,此时应下载对应的浏览器驱动,把该执行文件放到python的安装根目录下,再执行用例就成功了 2.日志不见的问题:需要杀进程

  7. authbind start tomcat services as user with less that 1024 ports. linux常规用户使用tomcat的80端口

    Start tomcat services using authbind this will allow user to start ports less than 1024 we do not ne ...

  8. 免费 Bootstrap 管理后台模块下载

    在这文章中我们将分享17+个最好的免费 Bootstrap 管理模板.你可以免费下载这些Twitter bootstrap 框架来开发网站后台. SB Admin 2 SB Admin is a fr ...

  9. usaco5.5-Picture

    离散化计算重叠矩形的周长. 称平行于x轴的边为横边,我们以横边为例,某一矩形中y坐标比较小的横边我们称为始边,另一边我们称为终边.用一条扫描线从下往上扫描,当扫到一条始边的时候,如果这条始边的正下方出 ...

  10. inconvertible types; cannot cast 'android.supoort.v4.app.Fragment' to 'com.example.sevenun.littledemo.fragment.NewsTitleFragment'

    inconvertible types; cannot cast 'android.supoort.v4.app.Fragment' to 'com.example.sevenun.littledem ...