タイトル : Re: プラグアンドプレイでポートの開放、切断をしたい 投稿日 : 2010/06/02(Wed) 20:03 投稿者 : K.J.K.
> 現在システム情報コントロールとMSCommを利用して > USB接続の仮想COMポートをプラグアンドプレイで認識したら > ポート開放、切断したらポートも切断するようなプログラムを > 作りました。ですが、いざ動かすと意図しない現象が発生し原因が > さっぱりわからないので助言をいただきたいと思い質問しました。 結構前のですが、 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37850&forum=7&start=16 辺りに似たような事例がありますね。 > 何回やってもイベントが発生しないならまだしもこのような現象は > どうして起こるのでしょうか。 推測ですけれども、USBで接続されたデバイスの検知と、仮想COMポートとしての デバイスの検知が一致している理由がないからでしょう。USB機器が外されていても、 仮想COMポートがOpenされている以上は勝手には閉じないのでしょう。 で、抜き差ししてPortOpenは一切しない場合に、起きるイベントは一度ずつだけなの でしょうか? イベント引数の DeviceID に異なる値が入ったイベントが発生している、 ということはないでしょうか? もっとも手元のWindowsXP機でデバイスを抜き差ししてみたところ、起きて欲しかった イベントが起きていないということもありましたので、真面目にやるのであれば、 直接 API を用いないといけないのかもしれません。 |