2017-03-07 33 views
0

我已经搜索了几天无济于事。我试图简单地列出一个文本文件的图像设备名称,即使用C#的网络摄像头。我知道我可以使用System.IO.Ports来获取comports,但我无法找到列出Image设备的简单方法。C#获取网络摄像头的名称

我已经能够找到这段代码的WIA设备,但不是非WIA设备:

private static void DoWork() 
    { 
     var deviceManager1 = new DeviceManager(); 
     for (int i = 1; (i <= deviceManager1.DeviceInfos.Count); i++) 
     { 
      // if (deviceManager1.DeviceInfos[i].Type != 
    WiaDeviceType.VideoDeviceType) { continue; } 


    Console.WriteLine(deviceManager1.DeviceInfos[i]. 
    Properties["Name"].get_Value(). ToString()); 
    } 
+0

查找到aforge – Trey

+0

我认为注册表会对这些信息 – Steve

+0

这之前http://stackoverflow.com/questions/14771997/how-to-find-webcam –

回答

0

我有一对夫妇路线为你检查。

尝试添加对Interop.WIA.dll(Microsoft Windows图像采集库)的引用并使用以下代码枚举设备。然后,您可以使用设备属性筛选相关的。

using System; 
using WIA; 

namespace ConsoleApplication1 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     DoWork(); 
     Console.ReadKey(); 
    } 

    private static void DoWork() 
    { 
     var deviceManager1 = new DeviceManager(); 
     for (int i = 1; (i <= deviceManager1.DeviceInfos.Count); i++) 
     { 
      if (deviceManager1.DeviceInfos[i].Type == WiaDeviceType.CameraDeviceType|| deviceManager1.DeviceInfos[i].Type == WiaDeviceType.VideoDeviceType) 
      { 
       Console.WriteLine(deviceManager1.DeviceInfos[i].Properties["Name"].get_Value().ToString()); 
      } 
     } 
    } 
} 

}

如果不工作,你总是可以尝试使用DEVCON,这是微软的工具。 DEVCON允许从命令行管理设备。您可以尝试使用适当的标志调用它并读取输出。 (http://www.robvanderwoude.com/devcon.php

+0

谢谢乔恩.... geting一些lbxDevices错误..通过这些工作,看看这可以工作.... –

+0

lbxDevices是我正在填充的设备列表。你应该能够把它解释出来,不管你在做什么。显着部分是填充该列表的其余部分。 –

+0

对不起,我是C#的新手......我只想将它们列在控制台中。 –

相关问题