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);
                        }
                    }
                }

  • 相关阅读:
    Linux查看日志常用命令
    linux(centos)下安装PHP的PDO扩展
    TP thinkphp 权限管理 权限认证 功能
    mysql优化(三)–explain分析sql语句执行效率
    阿里云服务器Centos7成为挖矿肉鸡被挖矿imWBR1耗尽CPU
    Asp.net导入Excel并读取数据
    定义显式类型转换和隐式类型转换
    C# 对象与引用变量
    C# ref参数
    C# 字段与属性的区别
  • 原文地址:https://www.cnblogs.com/junior/p/4347674.html
Copyright © 2011-2022 走看看