• 締切済み

プログラムでUSB機器が接続された事を認識するにはどうしたら良いのでしょうか?

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

みんなの回答

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.6

さてさて、お手上げデスダよ。 自宅に帰ってから、いろいろUSBを試してみたものの、取れねぇーズラよ うーむC掲示板に書いたほうが、ズバリを得られるかもしれぬ。 参考URLを得たり、ソースを得たら、VBにコンバートしてみてはどう? ドライバは設計したことねぇズラし、サンプルもあまり転がってないのネ。 むずいズラよー

Yoko317
質問者

補足

いろいろ調べてちょっとわかってきました。 vc++ではCWnd::OnDeviceChangeイベントが発生するようですが、VBでは取れないもののようです。 でもVBで取れないイベントをwin32APIのSetWindowLong関数で取得できるようになるらしいです。 http://tokyo.cool.ne.jp/kanain/APIHTM/GetMsg.html http://www.vbvbvb.com/jp/gtips/0501/gSetWindowLongEnLink.html とりあえずここらを調べて何とかなりそうかな? いろいろありがとうございました。

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.5

それらしき情報 http://www.osr.com/ntinsider/1998/Converting/converting.htm ちなみに IRP系のメッセージはどこで聞いたの? 逆に参考URL求む

Yoko317
質問者

補足

これらはデバドラが処理するもののようです。 でも、ここらへんぐらいしか手掛かりがなくて。 デバイスドライバ関連の雑誌とかページとかに載ってます。 たとえば、 http://www5a.biglobe.ne.jp/~crab/winddk/pnp.html とか。 ちょっと見たところ上記のページはWDMドライバの説明のような?英語が得意ではないので、もうちょっとじっくり読んでみないとはっきりしませんが・・・

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.4

>IRP_MN_MOUNT_VOLUME/IRP_MN_REMOVE_DEVICE ぬぉ、知らなかった。 メッセージ発行してるのネ。 SetWindowsHookExで取れるのかな?

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.3

ここは見た?

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

補足

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

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.2

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

Yoko317
質問者

補足

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

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.1

最新のMSDNを持っているなら説明が載っています。(英語) 直接USBのホストコントローラを制御しないといけないので、VisualBasicでは不可能です。VC++でないと無理っぽ

Yoko317
質問者

お礼

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

関連するQ&A

  • USB接続の周辺機器を認識してくれません

    USBで接続する周辺機器をPCが認識してくれません。 最近までは正常に作動していました。 今のところ、4つあるUSBのポートに関係なく、周辺機器は光学式マウス、デジカメ、プリンターを試しましたが、いずれもだめです。 ただし、光学式マウスをみると電源はPCから取っているようです。 デバイスマネージャでも調べましたが、異常らしきメッセージはありませんでした。 非常に困っています。どなたか解決法のご教授よろしくお願いします。

  • USB機器を接続しても認識しません

    IBMのX40ですがUSBが使えず困っています。 状況は下記です。 1.デバイスマネージャは正常に認識している。一旦デバイスマネージャからUSBコントローラ/ハブを削除して起動しなおしたところ新しいUSBコントローラ/ハブとして正常に検出されましたが、コネクタにUSBメモリやマウスを繋いでも認識しません。 2.外部電源の外付けHDDをUSB接続したところHDD側では自動的に接続を検出して電源が入りましたがPC側ではまったく反応無しで認識しません。 3.USBに変換するPCカードをカードバスに差込んで、そのUSBコネクタにUSBメモリやマウスを接続すると問題なく認識し、普通に使える。 これってX40のUSBポートがハード的に壊れているのでしょうか?

  • USB接続のスカイプ機器を認識しません。

    USB接続のスカイプ機器を認識しません。 WindowsXPでスカイプを利用するために、USBのスカイプ機器を購入したのですが、 パソコンが認識しません。不明なデバイスと出ます。 デバイスマネージャーでデバイスを削除して、もう一度繋ぎ直しても変わりませ ん。 購入店に持ち込んで聞いてみたのですが、その店のパソコンでは複合デバイスと してきちんと認識できました。 なお、我が家のパソコンはMSIのU123というノートパソコンです。 OSはWinXPでSP3です。 問題のUSBスカイプ機器はDC-NCTEL1という物ですが、すでにメーカーサポートは終了しているので、お手上げ状態です。 唯一残されたメーカーのサポートページからは、スカイプのコントロールソフトのようなものがダウンロードでき、別途ドライバは用意されていません。 もともとプラグアンドプレイでドライバのインストール作業は必要がないはずですし。 よろしくお願いします。

  • USB機器を認識しない

    ネットオークションでノートPCを落札したのですが、USB機器を認識しません。 機種名:東芝Dynabook SS2000 DS75P/2 OS:WindowsXP(本来はWin2K) CPU:PenIII750MHz HDD:20GB メモリー:128MB 実行してみたこと: ・コントロールパネル内の「東芝HWセットアップ」でUSB機器が有効である事を確認。 ・BIOSでUSBが有効になっていることを確認。 ・デバイスマネージャでUSBが有効である事を確認。 ・デバイスマネージャで「USBルートハブ」の「電源の管理」で「電力の節約のために...」の  チェックを外す。(dynabook公式サイトのFAQに記載) 使用したUSB機器はUSBマウス、携帯電話の接続ケーブル等。もちろん他のPCで認識する事を確認しました。 OSは本来W2Kの機種(プロダクトキーあり)ですが、動作確認用にXPが入っています。ただしドライバがあたっており、SS 2000(DS80P/2?)のリカバリでXPのインストールをしたのではないかと思います。 美品で気に入っているため、どうにか直したいと考えています。ご存知の事があれば教えてください。

  • USBの認識が消えた

    ある日Windowsを再起動したら、接続していたUSB機器が4つ全て認識しなくなっていました。ドライバをアンインストールしたわけでもなく、また再インストールしても不認識です。接続すると、「! USBデバイスが認識されません このコンピュータに接続されている USBデバイスの1つが正しく機能していないことが、Windowsによって認識されていません。問題を解決するにはこのメッセージをクリックしてください」と出ます。 デバイスマネージャのUSB(Universal Serial Bus)コントローラを見ると上から、 「USB ルートハブ」が3つ、 「標準 OpenHCD USBホストコントローラ」が2つ、 「不明なデバイス」が4つ表示されてます。 どうすればよいでしょうか。答えの分かる方いましたら教えてください。 OS:WindowsXP SP1 マザーボード:ASUS A7N8X

  • USBポートが機器を認識しないのですが・・・

    購入後2年弱のVAIO VGC-Hモデルです。 USBポートに外付けハードディスクと、無線LAN機器を接続して使用していたのですが、突然に機器を認識しなくなりました。 ほかのUSB機器を一通り試した見ましたが認識せずデバイスマネージャーにも機器名が表示されません。 デバイスマネージャーの表示は通常通りで、特に「?」マークや「!」マークがついているといったような状況ではありません。念のため更新を行ってみましたが、やはり同様の結果になりました。 USBから電源を取る携帯電話の充電ケーブルなどは正常に動作します。 ハードディスクのバックアップを外付けに取ろうと思っていた矢先でしたので大変困っています。 どなたか同様の症状に悩まされた方、いらっしゃいましたらご教授をいただければ幸いです。 宜しくお願い致します。

  • USB機器をまったく認識しなくなりました

    Windows XPのノートパソコンで今まで使用できていたUSB機器(マウス、プリンタ、デジカメ、MO)がすべて認識できなくなりました。設定などは特に変更していないのですが、どのUSB機器をつないでも反応がなく、使用できなくなりました。過去の質問に対する回答を参考にして、以下のことをやってみたのですが、解決できません。 ・USB端子が2つあるので別の端子に接続 ・それぞれの機器のドライバを再インストール ・デバイスマネージャーで「USBルートハブ」、「USBユニバーサルホストコントローラ」が正常に動作していることを確認 なお、USB端子から電力を供給しているMOは接続すると電源ランプが正常に点灯します。すべてのUSB機器が同時に認識できなくなったので、USB機器側ではなく、PC本体側の問題だと思うのですが、対応策、アドバイスなどありましたら、よろしくお願いします。

  • USB機器認識しない。ドライバーエラー。

    NECのノートPC、PC-VKL24AAG1を使用しています。Windows10PROですが、いつからかUSBメモリーやUSB接続プリンターが認識しなくなりました。おなじUSB接続のマウスやキーボートは認識します。USBメモリーも認識するものもあります。デバイスマネージャーでドライバーのインストールをするとコード 1 「このデバイスは正しく構成されていません。 (コード 1)」となりインストールできません。デバイスドライバーはどこかのサイトにありますか。よろしくお願いいたします。 ※OKWAVEより補足:「NEC 121ware :周辺機器」についての質問です

  • USB外付け機器の認識失敗

    以前にも一回質問したのですがよくわからないところと新たな情報があったので改めて質問します。Vipowerという外付けのUSB HDケース(ドッキングステーション)を使用しています。接続は専用のUSBケーブルです。OSはWinXPです。これまで認識していたのに突然認識しないようになりました。以前にもこのようなことがあったのですがいつの間にか復活しました。他の周辺機器とつなぎ替えたりしたとき起こるようです。Macにつないだ場合は異常なく認識されます(もちろんMacで初期化したHD)。ですからケーブルや機器の異常ではないようです。HDも異常はありません。ネット上でデバイスマネージャーが間違いを覚えてそれが繰り返されるのでそのデバイスマネージャーを削除しなければ治らないということが書いてあったような気がします。他の周辺機器の接続に左右されているような気がします。どこをどのようにしたらよいのか教えてください。

  • パソコンにUSB機器を挿してゲームをしてる認識され

    パソコンにマウス、キーボード、ヘッドホンをUSBで接続しているのですがゲームをしてる最中USB機器が認識されません等のメッセージが表示され抜き差しを行ってもデバイスが認識されません。 再起動すると治るのですがまたゲームをしていると再発してしまいます。

専門家に質問してみよう