是否有在托管代码的方式来列出安装在系统上的调制解调器/电话设备? 如果.NET没有有办法,你可以点我的方向?

有帮助吗?

解决方案

WMI将包含您在Win32_POTSModem类需要的所有信息。在C#或.Net,可以利用System.Management命名空间来查询WMI。

在.NET中,可以使用 MgmtclassGen.EXE 从平台SDK以产生表示WMI类的类对象。

在命令行是这样的:

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\mgmtclassgen.exe Win32_POTSModem /L CS /P c:\POTSModem\Win32_POTSModem.cs

,然后你可以用在你的代码:

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);
    }
  }
}

输出看起来像这样:

ThinkPad Modem - Internal Modem
        Speed: 56000

您可能也想看看这篇文章: CodeProject上:如何:(几乎)一切都在WMI通过C# - 3部分:硬件。笔者围绕创建WMI一个简单的类包装对象类似MgmtclassGen.exe,但其所有为你做。

其他提示

只是一些想法的后代。

提供了很好的解决方案@Christopher_G_Lewis。 但是,使用WMI之前,我们必须检查Windows Management InstrumentationWMI,服务名称Winmgmt)在工作(的怎么办呢?的)。当然,MS建议不要碰这个服务,因为它的系统的东西的一部分,但人们将其关闭的时候。

此外,有时也可能是有帮助的检查WMI版本使用它之前。

如果你想为获得调制解调器列表这是连接是在那一刻,你可以检查出的将此溶液。工程进展缓慢,但显示所有连接的调制解调器和排除Null modem cables

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top