zoukankan      html  css  js  c++  java
  • C#读取USB的一些相关信息

    在USBVID_05A9&PID_28005&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);
                        }
                    }
                }

  • 相关阅读:
    带结点与不带结点用头插法和尾插法创建单链表
    高中数学教资面试记录
    学习爬虫——test1——模拟浏览器去访问网站
    解决centos虚拟机中使用virt-manager创建虚拟机遇到的镜像导入问题
    pycharm更改背景颜色
    控制函数调用的流程
    简单的获取list的下标
    种一棵树的时间,不是以前,也不是未来的某一天,而是现在。
    将八位教师随机分配到三个办公室——python
    使用tomcat部署idea项目方法(1)
  • 原文地址:https://www.cnblogs.com/junior/p/4347674.html
Copyright © 2011-2022 走看看