列出所有系统调制解调器

div*_*nci 4 .net c# modem telephony

托管代码中是否有一种方法可以列出系统上安装的调制解调器/电话设备?如果.Net没办法,你能指点我吗?

Chr*_*wis 6

WMI将包含Win32_POTSModem课程中所需的所有信息.在C#或.Net中,您可以使用System.Management命名空间来查询WMI.

在.Net中,您可以使用平台SDK中的MgmtclassGen.EXE生成表示WMI类的类对象.

命令行是这样的:

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\mgmtclassgen.exe Win32_POTSModem /L CS /P c:\POTSModem\Win32_POTSModem.cs
Run Code Online (Sandbox Code Playgroud)

然后你可以在你的代码中使用它:

using System;
using System.Collections.Generic;
using System.Management;
using ROOT.CIMV2.Win32;

public class MyClass
{
  public static void Main()
  {
    foreach (POTSModem modem in POTSModem.GetInstances()) {
      Console.WriteLine(modem.Description);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

输出如下:

ThinkPad Modem - Internal Modem
        Speed: 56000
Run Code Online (Sandbox Code Playgroud)

您还可以查看本文:CodeProject:如何:(几乎)通过C#在WMI中的所有内容 - 第3部分:硬件..作者创建了一个类似于MgmtclassGen.exe的WMI对象的简单类包装器,但它们都是为你完成的.