列出所有系统调制解调器
托管代码中是否有一种方法可以列出系统上安装的调制解调器/电话设备? 如果.Net没办法,你能指点我吗?
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
然后你可以在你的代码中使用它:
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:如何:(几乎)通过C#在WMI中的所有内容 – 第3部分:硬件。 。 作者创建了一个类似于MgmtclassGen.exe的WMI对象的简单类包装器,但它们都是为你完成的。
对后代只是一些想法。
@Christopher_G_Lewis提供了非常好的解决方案。 但在使用WMI之前,我们必须检查Windows Management Instrumentation
( WMI
,服务名称Winmgmt
)是否正常工作( 如何操作? )。 当然,MS建议不要触摸此服务,因为它是系统内容的一部分,但人们有时会将其关闭。
此外,有时在使用之前检查WMI版本可能会有所帮助。
如果您想获得此刻连接的 调制解调器列表 ,您可以查看此解决方案 。 它工作缓慢,但显示所有连接的调制解调器,并排除Null modem cables
。