DOBON.NET DOBON.NETプログラミング掲示板過去ログ

USBデバイスの情報を取得するには?

環境/言語:[win2k .net1.0]
分類:[.NET]

ごぶさたしてます。

デジカメはUSB接続が主ですが、デジカメをPCに接続したとき専用ソフトが立ち上がって画像を取得するもの(TWAIN対応orWIA対応)と、ドライブとして画像を取得するもの(マスストレージ対応)があります。
そこでTWAINはC++で開発しないといけませんので、マスストレージ対応のものについてお伺いしたいと思います。

ここから用件を述べさせていただきます。
USB機器のベンダー名やドライブタイプ又はマスストレージ対応 or TWAIN対応 or WIA対応かを認識するにはどんな手法があるのでしょうか?
USBの仕様等を読んでみましたがVB.netではどういったやり方があるのかはわかりませんでした、ご存知の方いらっしゃいましたら、ヒントもしくは良い書籍がありましたら情報をお寄せ下さい。
もしかしてVB.NETではむりかな。。。
こんばんは、アフロさん。ピラルクです。

(あまり突っ込んだことは知らないのですが...)

VB.NETから取れる「可能性」があるとしたらWMIでしょう。

API使うなら、
SetupDiEnumDeviceInfoにGUID_USBで列挙させて
SetupDiGetDeviceRegistryPropertyで詳細を調べる
というようなアプローチから入るのではないかと。
(これだけで目的のものが取れるかどうかは知りません(^^;)
レジストリ
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB or USBSTOR
にあるような情報ならおよそ取れます。
(DDKの範疇なのでOSごとの対応が要るかも)

手抜き(?)でいいなら、デバイス増設時にブロードキャスト
されるメッセージ(WM_DEVICECHANGE)にドライブレターが埋
まっているので、そこに\DCIMフォルダがあればデジカメと
扱って目的の処理(?)をするとか。
ピラルクさんありがとうございます。
大変参考になると思います。
出来ましたらご報告いたします。
そういえば前にのこの掲示板で報告するって言って
それっきりのものがあったような(汗
でもちゃんとこれについては経過報告いたします。
> ピラルクさん

>手抜き(?)でいいなら、デバイス増設時にブロードキャスト
>されるメッセージ(WM_DEVICECHANGE)にドライブレターが埋
>まっているので、そこに\DCIMフォルダがあればデジカメと
>扱って目的の処理(?)をするとか。
この方法で行うことにしました。
今後マスストレージに対応すると、マスストレージに現在対応していないメーカは
いっておりましたので、これでよいと思います。
解決済みチェック忘れました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板