using System.Management;
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity  "); 
foreach (ManagementObject device in searcher.Get())
var name = device["Name"];
if (device["Name"] == null)
continue;
// 这里可以输出或者处理相机设备信息
Console.WriteLine("设备名称: " + device["Name"].ToString());
Console.WriteLine("设备描述: " + device["Description"].ToString());
Console.WriteLine();
// 获取设备的功能信息
PropertyDataCollection properties = device.Properties;
Console.WriteLine("设备属性:");
foreach (PropertyData property in properties)
Console.WriteLine(property.Name + ": " + property.Value);

根据你的设备的名称来查询,设备的所有属性:

using System;
using System.Management;
class Program
    static void Main()
        string targetDeviceName = "YourTargetDeviceName"; // 替换为你要查找的设备名称
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE Name LIKE '%" + targetDeviceName + "%'");
        foreach (ManagementObject device in searcher.Get())
            string deviceName = device["Name"].ToString();
            string deviceDescription = device["Description"].ToString();
            string deviceId = device["PNPDeviceID"].ToString();
            // 获取设备的所有属性
            PropertyDataCollection properties = device.Properties;
            Console.WriteLine("设备属性:");
            foreach (PropertyData property in properties)
                Console.WriteLine(property.Name + ": " + property.Value);
            Console.WriteLine("设备名称: " + deviceName);
            Console.WriteLine("设备描述: " + deviceDescription);
            Console.WriteLine("设备ID: " + deviceId);

根据你的设备的属性来查询,如相机类camera:

用PNPClass = 'Camera',还可以用Service = “。。。。”

using System;
using System.Management;
class Program
    static void Main()
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE PNPClass = 'Camera'");
        foreach (ManagementObject device in searcher.Get())
            string deviceName = device["Name"].ToString();
            string deviceDescription = device["Description"].ToString();
            string deviceId = device["PNPDeviceID"].ToString();
            // 在这里输出或处理设备信息
            Console.WriteLine("设备名称: " + deviceName);
            Console.WriteLine("设备描述: " + deviceDescription);
            Console.WriteLine("设备ID: " + deviceId);

System.Management 命名空间中,PNPClass 表示设备的 Plug and Play(PNP,即即插即用)类别。Plug and Play 类别是用于标识设备类型的分类,帮助操作系统识别和管理不同类型的硬件设备。这些类别通常在设备管理和设备识别中使用。

PNPClassWin32_PnPEntity WMI 类的一个属性,用于描述设备的 PNP 类别。通过查询 PNPClass 属性,你可以检索设备的 PNP 类别信息,以了解设备类型或类别。

不同的设备会被分配不同的 PNP 类别,例如,摄像头设备通常分配给 "Camera" 类别,磁盘驱动器通常分配给 "DiskDrive" 类别,键盘通常分配给 "Keyboard" 类别,等等。根据设备的 PNP 类别,操作系统可以采取适当的措施来加载所需的驱动程序和配置设备。

在 System.Management 命名空间中,Service 不是一个标准的属性或类别,而是一个一般性的概念,用于表示与设备或服务相关的服务名称。具体来说,Service 可能对应于设备的服务或驱动程序的名称,这取决于操作系统和设备类型。

如:Service:kbdhid 是一个描述 Windows 设备管理的字符串,它涉及到键盘设备的驱动程序和服务。具体来说,kbdhid 是键盘设备的驱动程序服务名称,用于表示 Human Interface Device (HID) 类型的键盘设备。

Service:usbvideo 是一个描述 Windows 设备管理的字符串,它涉及到 USB 视频设备的驱动程序服务名称。具体来说,usbvideo 是 USB 视频设备的驱动程序服务名称,通常用于表示通过 USB 接口连接的摄像头或其他视频捕获设备。

WQL: SELECT * FROM Win32_PnPEntity WHERE PNPDeviceID LIKE 'USB%' 1. 开始-运行-输入:wbemtest 回车 2. 单击"连接", 输入:root\cimv2 回车; 或者ROOT\SecurityCenter 3. 单击"查询", 输入: SELECT * FROM Win32_Process 应用; 或者SELECT *...
1,首先利用System.Management里面提供的类(第一次可能需要添加对System.Management的引用,否则找不到类),获取串口完整名字 2,监听窗口USB插拔事件并更新下拉列表中的串口 /// <summary> /// 获取串口完整名字(包括驱动名字) /// 如果找不到类,需要添加System.Management引用,添加引用->程序集->System.Management /// &..
private static void GetUSBDevices() var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE (PNPClass = 'Image' OR PNPClass = 'Camera')"); <ws:Window x:Class="OpenCVSharpExample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ws="https://github.com/WP
WIN10下安装docker Desktop报错 找不到在System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode参考文章:用window安装docker desktop出现类似如下错误这样的情况其实是找不到WMI服务解决:安装成功 找不到在System.Management.Man...
C:\Users\23501\Desktop\5\QT\StudentManagementSystem_fingerprint\LoginWindow.cpp:11: error: 'class QTextToSpeech' has no member named 'setBackend' textToSpeech->setBackend(availableEngines.first());
在微软提供的WMI Tools中通过WMI CIM Studio查询如下语句: SELECT * FROM Win32_PnPEntity WHERE PNPDeviceID LIKE '%USB\\%' 能够正确返回查询结果。 而执行如下的C#代码: String QueryString = "SELECT * FROM Win32_PnPEntity WHERE
//事件代码 private const int WM_DEVICECHANGE = 0x219; //设备改变 private const int DBT_DEVICEARRIVAL = 0x8000; //检测到新设备 private const int DBT_DEVICEREMOVECOMPLE
最近刚做完kcu040的温度监控,惊觉Kintex上没有xadc IP核,查了一下用system management代替了,官方手册搞得好,寄存器值的转化公式一个没给,记录一下: 1. On-chip温度公式 (XSysmon_Readreg / 65536 / 0.00199451786)- 273.67 2.VCCINT & VCCAUX XSysmon_Readreg * 3 / ...
using System.Collections.Generic; using System.Management; using System.Text.RegularExpressions; namespace TPCL.USB /// <summ... CSDN-Ada助手: 恭喜您开始博客创作!标题很吸引人,内容也很有深度。对于C# stream的问题,您提供了非常有用的解决方法。接下来,我建议您可以进一步拓展这个主题,例如探讨其他可能导致stream.CanRead和stream.CanSeek为false的情况,并提供更多解决方案。期待您的下一篇博客,谦虚的态度和深入的内容将会吸引更多读者! 推荐【每天值得看】:https://bbs.csdn.net/forums/csdnnews?typeId=21804&utm_source=csdn_ai_ada_blog_reply1 halcon轮廓算法之合并的理解 CSDN-Ada助手: 非常感谢你分享这篇关于halcon轮廓算法合并的博文!你的解读非常清晰,让读者能够更好地理解这个算法的原理和应用。希望你能继续创作,分享更多的技术知识和经验。 除了合并算法,你还可以进一步探索halcon中其他轮廓操作的相关知识,比如拟合、分割等等。另外,你也可以了解一下与halcon相关的图像处理软件或库,如OpenCV和Matlab图像处理工具箱,这些都是非常有用的扩展技能。 再次感谢你的分享,期待你未来更多的博文! 如何写出更高质量的博客,请看该博主的分享:https://blog.csdn.net/lmy_520/article/details/128686434?utm_source=csdn_ai_ada_blog_reply2 C# 正则表达式的使用方法 CSDN-Ada助手: 非常荣幸能够看到您的第四篇博客,“C# 正则表达式的使用方法”。恭喜您不断地分享有关C#的知识和经验,这对于广大读者来说无疑是一份宝贵的财富。 通过您的博客,我深入了解了C#正则表达式的使用方法。您的解释清晰明了,让我能够更好地理解并应用这一技术。感谢您的耐心和细致,您的博客对我来说是一个非常有价值的学习资源。 在接下来的创作中,我建议您可以进一步扩展关于C#正则表达式的应用场景,或者分享一些实际案例,帮助读者更好地理解并灵活运用这一技术。同时,如果您能够分享一些常见的正则表达式问题及其解决方案,也会给读者带来更大的帮助。 再次感谢您的付出,期待您更多精彩的博客! 如何快速涨粉,请看该博主的分享:https://hope-wisdom.blog.csdn.net/article/details/130544967?utm_source=csdn_ai_ada_blog_reply5