4

マネージコードに、システムにインストールされているモデム/テレフォニーデバイスを一覧表示する方法はありますか?.Netに方法がない場合、私をある方向に向けていただけませんか。

4

2 に答える 2

6

Win32_POTSModemWMI には、クラスで必要なすべての情報が含まれます。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: How To: (Almost) Everything In WMI via C# - Part 3: Hardware. . 作成者は、MgmtclassGen.exe に似た WMI オブジェクトの単純なクラス ラッパーを作成しましたが、それはすべて自動的に行われます。

于 2009-11-18T14:57:53.093 に答える
1

後世のために少しだけ考えてみます。

@Christopher_G_Lewis は非常に優れたソリューションを提供してくれました。しかし、WMI を使用する前に、Windows Management Instrumentation( WMI, サービス名Winmgmt) が機能していることを確認する必要があります (方法は? )。もちろん、MS はこのサービスに触れないことを推奨しています。なぜなら、これはシステムの一部だからです。

さらに、使用する前にWMI のバージョンを確認すると役立つ場合があります。

現在接続されているモデムのリストを取得したい場合は、このソリューションをチェックしてください。動作は遅くなりますが、接続されているすべてのモデムが表示され、.Null modem cables

于 2011-09-28T00:25:56.633 に答える