Domanda

C'è un modo in codice gestito per elencare i dispositivi modem / Telefonia installati sul sistema? Se .NET non dispone di un modo, mi può puntare in una direzione?

È stato utile?

Soluzione

WMI conterrà tutte le informazioni necessarie nella classe Win32_POTSModem. In C # o .Net, è possibile utilizzare lo spazio dei nomi System.Management per interrogare WMI.

In .Net, è possibile utilizzare MgmtclassGen.EXE dalla piattaforma SDK per generare un oggetto di classe che rappresenta la classe WMI.

La riga di comando sarebbe come questo:

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

e quindi è possibile utilizzare che nel codice:

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

Output assomiglia a questo:

ThinkPad Modem - Internal Modem
        Speed: 56000

Si potrebbe anche voler dare un'occhiata a questo articolo: CodeProject: How To: ( quasi) tutto in WMI tramite C # - Parte 3: Hardware .. L'autore ha creato una semplice classe wrapper per oggetti WMI simile a MgmtclassGen.exe, ma il suo tutto fatto per voi.

Altri suggerimenti

Solo alcuni pensieri per le generazioni future.

@Christopher_G_Lewis previste soluzione molto buona. Ma prima di utilizzare WMI dobbiamo controllare che Windows Management Instrumentation (WMI, servizio di nomi Winmgmt) sta lavorando ( come fare? ). Naturalmente, MS raccomanda non toccare questo servizio, perché fa parte di roba di sistema, ma la gente spegnerlo qualche volta.

Inoltre, a volte può essere utile a verificare la versione WMI prima di utilizzarlo.

Se si desidera ottenere l'elenco dei modem che sono connected in questo momento, è possibile controllare questa soluzione . Funziona lentamente, ma mostra tutti i modem ed esclude collegato Null modem cables.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top