2017-11-08 26 views
-3

DBT_DEVICEARRIVALイベントを検出した後、USBポートの情報を読み取る方法を探しています。 [C#の] WindowsのでUSBシリアルポートへのアクセス - >プロパティ - >詳細[c#]

、デバイスマネージャを介して、私は多くの情報を読み取ることができています:

デバイスマネージャ - >詳細 - - > USBシリアルポート - > [プロパティ]> [プロパティ] - > [XXXX(例えばメーカー)

誰でもプログラムでその情報にC#でアクセスする方法を教えていただけますか?

ありがとうございました!

+0

私は "c#read usb manufacturer"を探して、たくさんの例を得ました。それらの理由があなたのために働かないのですか? – mammago

+0

VB.Netにもかかわらず、これは役に立つかもしれません:https://stackoverflow.com/questions/41782308/acces-device-information-with-c-sharp-or-vb – Diado

答えて

0

クイックスニペットは、あなたは

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSSerial_PortName"); 
    foreach (ManagementObject queryObj in searcher.Get()) { 
     .... 
    } 

を始めるために例queryObj [「のInstanceName」]のために、インスタンス値のためのマニュアルを参照してください。ToStringメソッド()多くの場合、メーカーまたは/およびモデル名を含んでいます。

+0

ありがとうございました。私はwin32_PnPEntityを使用して、後になったポートを手に入れました。しかし、別の問題に直面しています(回避策あり)。私は、特定のハードウェアが接続されているかどうかを確認するためのUSBプラグイン/アウトイベントを検出しようとしています。イベントの直後にwin32_PnPEntityを問い合わせると、InvalidCastExceptionが発生するようです。私は5000ms以上待つ必要があることを発見しました。これは問題を解決します。より洗練された回避策を知っていますか? – AlkiZaganiaris

+0

そのイベントではうまくいきませんでしたので、私が試した回避策はありませんでした(私が使用したシリアルデバイスは、ほとんど常にプラグインされていました)。おそらく、500または1000msごとにループテストを試してみてください(もちろん、試行回数のループで最大値を設定します)。 – Rob

関連する問題