• 締切済み

USBカメラの識別について

DIRECTXを利用したUSBカメラの開発をVC.netで行っています。 デバイスを選択時にEnumRegFilterExを利用してデバイス検索を 行っているのですが、複数の同じ型番のカメラを利用したときに デバイスリストには、同じ名前で表示されているため、例えば どちらかのカメラが切断された場合にその区別がつきません。 できればデバイス名の後ろにUSBのポートアドレスのような1意のキー で管理したいのですが、そのようなキーを取得する方法はあるのでしょうか?よく複数カメラを使用するソフトを見るとカメラ名の後ろに #1とか#2とかつけられていますがどのようにつけていると思われますか? 申し訳ありませんが、詳しい方がいらっしゃいましたらご教授願います。

みんなの回答

回答No.2

 こんばんは。  当方にはUSBで接続された機器が無いので、試し様が無いのですが、DeviceIOControl()系のAPIで、接続機器から直接シリアル番号等のデータを問い合わせる事が出来る筈です。  此れはデバイスドライバ開発用のwindows DDK/WDKをインストールしていないと使えませんが、win32APIサイドで手軽に機器からシリアル番号等を問い合わせる手段が皆無に等しい為、ドライバ系以外ソフトでも、機器の詳細データをダイアログ等に表示したいが為にwindows DDK/WDKを導入する事は珍しくありません。  VBやC#と言った高水準な言語から呼び出しを試みているサイトも比較的よく散見致しますので、検討されてみては如何でしょう。  http://www.usefullcode.net/mt-search.cgi?tag=DeviceIoControl&blog_id=1

haku_juzi
質問者

お礼

回答ありがとうございます。検討してみます。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

以下だけ。 >よく複数カメラを使用するソフトを見るとカメラ名の後ろに#1とか#2とかつけられていますがどのようにつけていると思われますか? 普通に、デバイスを取得した際(起動初期時やデバイスイベント検出時)にデバイス情報を更新後、頭から順にチェックしていって、同じ名称が複数あった場合につけていると思う。 (ドライバーが自動で付けてくれる場合もないわけではない)

haku_juzi
質問者

お礼

回答ありがとうございます。 やはりそうなのでしょうか・・・。 例えば、USBポートに2台カメラが接続されている状態で 2台目のカメラに接続した場合に、例えば1台目をUSBポート から抜くとデバイスリストには1台のカメラが表示されます。 そのときにその1台が接続されていたカメラだったのか接続されて いないカメラだったかを知りたいのです。

関連するQ&A