C#讀取USB的一些相關信息

在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接口芯片的可選設置。ide


///////////////////////////即插即用總線信息/////////////////////////////
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);
                }
            }ui

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

相關文章
相關標籤/搜索