c# - 如何使用 C# 检测连接到我的机器的相机

标签 c# winapi camera

我能够知道连接到我的电脑的声音设备和 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.");

最佳答案

我编写了一个对我来说效果很好的解决方案。此方法在我的笔记本电脑上找到了两个 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++;
    }
}

关于c# - 如何使用 C# 检测连接到我的机器的相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18407548/

相关文章:

c# - .Net中的堆数据结构

windows - 使用正确的 PEB 和 ACL 从服务中创建ProcessAsUser

winapi - GetDC() 和 BeginPaint() 之间的区别?

c# - 用Flags扩展enum,干扰当前使用

c# - PropertyGrid 中 boolean 属性的自定义编辑器 (C#)

c - WinAPI - 标准输出到文本文件的字符编码

swift 3;照片未保存到照片库

javascript - 实现旧版 R70 Threejs 代码以与新版本配合使用的正确方法

android - 如何使用后置摄像头使 Android 屏幕透明?

c# - 给定具有相同基类的不同类型对象列表,一个完全独立的类如何在没有 if/else 逻辑的情况下操作每个对象?