Question

Est-il possible dans le code managé à la liste du modem / appareils de téléphonie installés sur le système? Si .Net ne dispose pas d'une façon, pourriez-vous me pointer dans une direction?

Était-ce utile?

La solution

WMI contiendra toutes les informations dont vous avez besoin dans la classe Win32_POTSModem. En C # ou .Net, vous pouvez utiliser l'espace de noms System.Management pour interroger WMI.

Dans .Net, vous pouvez utiliser MgmtclassGen.EXE à partir de la plate-forme SDK pour générer un objet de classe représentant la classe WMI.

La ligne de commande serait comme ceci:

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

et vous pouvez l'utiliser dans votre code:

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

Sortie ressemble à ceci:

ThinkPad Modem - Internal Modem
        Speed: 56000

Vous pouvez également jeter un oeil à cet article: CodeProject: Comment: ( presque) Tout dans WMI via C # - Partie 3: Matériel .. L'auteur a créé une simple enveloppe de classe autour des objets WMI semblable à MgmtclassGen.exe, mais son tout fait pour vous.

Autres conseils

Juste quelques pensées pour les générations futures.

@Christopher_G_Lewis fourni une très bonne solution. Mais avant d'utiliser WMI, nous devons vérifier que Windows Management Instrumentation (WMI, nom du service Winmgmt) travaille ( comment le faire? ). Bien sûr, MS recommande de ne pas toucher ce service, parce que cela fait partie des choses de système, mais les gens l'éteindre parfois.

De plus, parfois, il peut être utile de vérifier la version WMI avant de l'utiliser.

Si vous voulez obtenir la liste des modems qui sont connecté pour le moment, vous pouvez consulter cette solution . Il fonctionne lentement, mais montre tous les modems et exclut connecté Null modem cables.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top