質問

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

役に立ちましたか?

解決

WMIを使用すると、Win32_POTSModemクラスに必要なすべての情報が含まれています。 C#や.NETでは、WMIを照会するSystem.Management名前空間を利用することができます。

.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の:どのようにするには:( C#を経由でWMIのほぼ)すべて - 第3部:ハードウェアに。著者は、WMIの周りに単純なクラスラッパーを作成しましたMgmtclassGen.exeと同様のオブジェクトが、そのすべてのあなたのために行われます。

他のヒント

将来の世代のためのいくつかの考え。

@Christopher_G_Lewis は非常に良い解決策を提供してくれました。ただし、WMI を使用する前に次のことを確認する必要があります。 Windows Management Instrumentation (WMI, 、 サービス名 Winmgmt) は働いている (どうやってするの?)。もちろん、MS はこのサービスには触れないことをお勧めします。これはシステムの一部であるためですが、時々このサービスをオフにする人もいます。

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

あなたがしたい場合は モデムリストを取得する それは 接続されています 現時点では、チェックアウトできます この解決策. 。動作は遅いですが、接続されているすべてのモデムを表示し、モデムを除外します。 Null modem cables.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top