タイトル : プラグアンドプレイでポートの開放、切断をしたい 投稿日 : 2010/06/02(Wed) 14:37 投稿者 : たまご
使用言語:VB6 経験:半年 環境:windows2000 お世話になっております。 現在システム情報コントロールとMSCommを利用して USB接続の仮想COMポートをプラグアンドプレイで認識したら ポート開放、切断したらポートも切断するようなプログラムを 作りました。ですが、いざ動かすと意図しない現象が発生し原因が さっぱりわからないので助言をいただきたいと思い質問しました。 現象としては 一回目の接続:イベント発生でポート開放 一回目の切断:イベント発生せず 二回目の接続:イベント発生せず、右下のタスクバーにハードウェア取り外しアイコンが表示 二回目の切断:イベント発生せず。アイコンは消える 三回目の接続:イベント発生せず。 三回目の切断:イベント発生でポート切断 四回目以降同じループ。 何回やってもイベントが発生しないならまだしもこのような現象は どうして起こるのでしょうか。 希望する動作はやはり接続・切断されるたびにイベントが発生してほしいのです。 ポートを開放しなければこのような現象は現れません。 何か意見をいただけたら幸いです。よろしくお願いします。 ※参考コード Private Sub Form_Load() MSComm1.CommPort = 3 'ポート番号設定 ・・・ポート設定 End Sub '接続イベント Private Sub SysInfo1_DeviceArrival(ByVal DeviceType As Long, ByVal DeviceID As Long, ByVal _ DeviceName As String, ByVal DeviceData As Long) MSComm1.PortOpen = True 'ポートオープン Debug.Print "IN"; DeviceType 'イベント発生確認用 End Sub '切断イベント Private Sub SysInfo1_DeviceRemoveComplete(ByVal DeviceType As Long, ByVal DeviceID As Long, _ ByVal DeviceName As String, ByVal DeviceData As Long) MSComm1.PortOpen = False 'ポートクローズ Debug.Print "OUT "; DeviceType 'イベント発生確認用 End Sub |