2009-11-18 3 views
4

Есть ли способ в управляемом коде для перечисления устройств модема/телефонии, установленных в системе? Если у .NET нет пути, не могли бы вы указать мне направление?Список всех системных модемов

+0

Модемы? Я помню те ... Хотя я также помню дискеты и принтеры ... – tsilb

ответ

6

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: How To: (Almost) Everything In WMI via C# - Part 3: Hardware.. Автор создал простую оболочку класса вокруг объектов WMI, подобных MgmtclassGen.exe, но все это сделано для вас.

1

Просто некоторые мысли для будущих поколений.

@Christopher_G_Lewis предоставил очень хорошее решение. Но перед использованием WMI мы должны проверить, что Windows Management Instrumentation (WMI, название службы Winmgmt) работает (как это сделать?). Разумеется, MS рекомендует не касаться этой службы, потому что это часть системного материала, но люди иногда выключают ее.

Более того, иногда это может быть полезно check WMI version перед использованием.

Если вы хотите получить список модемов которые соединены на данный момент, вы можете проверить this solution. Он работает медленно, но показывает все подключенные модемы и исключает Null modem cables.

+0

Спасибо, что указал на gotchas. –

Смежные вопросы