ドライブリストボックスでUSBを選択するには

解決


VT250F  URL  2008-03-09 16:17:24  No: 100442

ドライブリストボックスでUSBを選択するには

以下のテスト例の様にUSBがささっているのに、
ListIndexに値をセットしても選択状態にならないのですが、
解決方法はないでしょうか。
なおUSBの抜き差し検知にはSYSINFO.OCXを使うことにしますが、
検知しても選択しないことには便利にできません。
よろしくお願いします。

'もしFがあればFを選択(選択状態にならない  これが問題)
'  FにUSBが刺さっててもエラーになる
'  実行時エラー68:デバイスが準備されていません
'FドライブはListIndexに値をセットしても選択されない
'  タイマーで監視してListIndexに値をセットしても選択状態にならない

Private Sub Form_Load()
Dim iix As Integer
    
    With Drive1
      '***   ドライブリストボックスでUSBを選択する   ***
      For iix = 0 To .ListCount - 1
        If UCase(.list(iix)) = "F:" Then
          On Error Resume Next
          .ListIndex = iix   'イベント連鎖
          Exit For
        End If
      Next
    End With
End Sub


K.J.K.  2008-03-09 19:27:26  No: 100443

もし接続されていて且つフォーマットされているにも関わらずそのエラーが出ている、ということは、VB側ではないのでは。

もしくは、DriveのChangeイベントもしくはそこから連鎖するイベント中でフォーマットされていないドライブのファイル情報にアクセスしようとしているとか。例えば、

Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
End Sub

として、これでディスクが入っていないAドライブを選択すると、このエラーが発生しますよね。


VT250F  2008-03-10 03:53:29  No: 100444

確かにフォーマットされていないUSBでした。
フォーマットしたUSBなら選択状態になりました。
USBのセクタにライトするプログラムを作っていたので、
勘違いしてしまいました。お騒がせしました。
どうもありがとうございます。


VT250F  2008-03-10 03:56:20  No: 100445

解決しました。ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加