Pergunta

Existe uma maneira no código gerenciado para listar os dispositivos modem/telefonia instalados no sistema? Se .NET não tiver uma maneira, você poderia me apontar em uma direção?

Foi útil?

Solução

WMI conterá todas as informações necessárias no Win32_POTSModem classe. Em c# ou .net, você pode utilizar o System.Management namespace para consultar o WMI.

Dentro .NET, você pode usar Mgmtclassgen.exe Do SDK da plataforma para gerar um objeto de classe que representa a classe WMI.

A linha de comando seria assim:

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

E então você pode usar isso em seu código:

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

A saída se parece com o seguinte:

ThinkPad Modem - Internal Modem
        Speed: 56000

Você também pode querer dar uma olhada neste artigo: CodeProject: Como: (quase) tudo no WMI via C# - Parte 3: Hardware.. O autor criou um invólucro de classe simples em torno de objetos WMI semelhantes ao mgmtclassgen.exe, mas tudo está feito para você.

Outras dicas

Apenas alguns pensamentos para as gerações futuras.

@Christopher_g_lewis forneceu uma solução muito boa. Mas antes de usar o WMI, temos que verificar isso Windows Management Instrumentation (WMI, Nome do Serviço Winmgmt) está funcionando (como fazer isso?). Obviamente, a MS recomenda não tocar nesse serviço, porque faz parte do material do sistema, mas às vezes as pessoas o deslizam às vezes.

Além disso, às vezes pode ser útil Verifique a versão WMI antes de usá -lo.

Se você quiser Obtenha a lista de modems que são conectado No momento, você pode conferir esta solução. Funciona devagar, mas mostra todos os modems conectados e exclui Null modem cables.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top