我能够知道连接到我的电脑的声音设备和USB设备,但没有找到任何方法来找到连接到我的机器的相机。 在代码下方使用以获取声音设备
Console.WriteLine("Win32 SoundDevices\r\n===============================");
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * from Win32_SoundDevice");
foreach (ManagementObject soundDevice in searcher.Get())
{
//Console.WriteLine("Device found: {0}\n", soundDevice.ToString());
Console.WriteLine("Device found: {0}\n", soundDevice.GetPropertyValue("ProductName"));
}
Console.WriteLine("Search complete.");
答案 0 :(得分:2)
已接受的答案已过时并带有死链接。但是我写了一个对我来说效果很好的解决方案。这种方法在我的笔记本电脑上找到了两个 USB 摄像头和一个集成摄像头。
private static async Task ListAllCamerasAsync()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM win32_PNPEntity WHERE PnPClass='Camera'");
var collection = await Task.Run(() => { return searcher.Get(); });
var cameraIndex = 0;
foreach (ManagementObject cameraDevice in collection)
{
Console.WriteLine($"Camera {cameraIndex}: {cameraDevice["Name"]}");
cameraIndex++;
}
}
答案 1 :(得分:1)
此工具将证明有用:
http://www.microsoft.com/en-us/download/details.aspx?id=8572
我相当确定没有相应的字符串可以专门为网络摄像头发送到ManagementObjectSearcher()
。有“Win32_USBControllerDevice”,您可以确定它是否是网络摄像头。
更好的解决方案是利用DirectShow.NET