プロが教えるわが家の防犯対策術!

プログラムでUSB機器が接続された事を認識するにはどうしたら良いのでしょうか?
デバイスマネージャの出すメッセージを受け取る様にするのだと思うのですが、どうやって、どのメッセージを処理すのでしょう。
よろしくお願いいたします。

A 回答 (6件)

さてさて、お手上げデスダよ。


自宅に帰ってから、いろいろUSBを試してみたものの、取れねぇーズラよ

うーむC掲示板に書いたほうが、ズバリを得られるかもしれぬ。

参考URLを得たり、ソースを得たら、VBにコンバートしてみてはどう?

ドライバは設計したことねぇズラし、サンプルもあまり転がってないのネ。

むずいズラよー

この回答への補足

いろいろ調べてちょっとわかってきました。

vc++ではCWnd::OnDeviceChangeイベントが発生するようですが、VBでは取れないもののようです。

でもVBで取れないイベントをwin32APIのSetWindowLong関数で取得できるようになるらしいです。

http://tokyo.cool.ne.jp/kanain/APIHTM/GetMsg.html
http://www.vbvbvb.com/jp/gtips/0501/gSetWindowLo …

とりあえずここらを調べて何とかなりそうかな?
いろいろありがとうございました。

補足日時:2003/07/25 16:40
    • good
    • 0

それらしき情報


http://www.osr.com/ntinsider/1998/Converting/con …

ちなみに
IRP系のメッセージはどこで聞いたの?

逆に参考URL求む

この回答への補足

これらはデバドラが処理するもののようです。
でも、ここらへんぐらいしか手掛かりがなくて。

デバイスドライバ関連の雑誌とかページとかに載ってます。
たとえば、
http://www5a.biglobe.ne.jp/~crab/winddk/pnp.html
とか。

ちょっと見たところ上記のページはWDMドライバの説明のような?英語が得意ではないので、もうちょっとじっくり読んでみないとはっきりしませんが・・・

補足日時:2003/06/25 17:22
    • good
    • 0

>IRP_MN_MOUNT_VOLUME/IRP_MN_REMOVE_DEVICE


ぬぉ、知らなかった。
メッセージ発行してるのネ。

SetWindowsHookExで取れるのかな?
    • good
    • 0

ここは見た?



参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=73258

この回答への補足

ドライバ関係はあれこれ調べてみました。
ドライバでは"IRP_MN_QUERY_START_DEVICE"または
"IRP_MN_MOUNT_VOLUME"とか"IRP_MN_REMOVE_DEVICE"
とかのメッセージが捕まえられるようです。
アプリではどうしたらよいのやら・・・。

補足日時:2003/06/24 14:57
    • good
    • 0

http://oshiete1.goo.ne.jp/kotaeru.php3?q=505982
という過去スレがあるけど、USB接続機器の認識後の操作なら可能かと思われ。

ていうか、装置の脱着だけ捕らえたらいいわけ?

この回答への補足

OnLine,OffLineの切り換えをするために装置の接続状態を取得したいと思っているのですけど・・・・・

補足日時:2003/06/24 13:26
    • good
    • 1

最新のMSDNを持っているなら説明が載っています。

(英語)
直接USBのホストコントローラを制御しないといけないので、VisualBasicでは不可能です。VC++でないと無理っぽ
    • good
    • 0
この回答へのお礼

ありがとうございます。やはりVisualBasicのみでは無理でしょうか。
もっと簡単に考えていたのですが、あれこれ探してもほとんど情報がないところを見ると一般的な仕様ではないのかも。仕様自体見直すべきかもしれません。

お礼日時:2003/06/24 13:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています