获取设备管理对象,并指定查询条件,以便仅获取相机设备信息:
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 类别是用于标识设备类型的分类,帮助操作系统识别和管理不同类型的硬件设备。这些类别通常在设备管理和设备识别中使用。
PNPClass
是 Win32_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 接口连接的摄像头或其他视频捕获设备。
文章引用: