ドライブリストボックスで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
もし接続されていて且つフォーマットされているにも関わらずそのエラーが出ている、ということは、VB側ではないのでは。
もしくは、DriveのChangeイベントもしくはそこから連鎖するイベント中でフォーマットされていないドライブのファイル情報にアクセスしようとしているとか。例えば、
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
として、これでディスクが入っていないAドライブを選択すると、このエラーが発生しますよね。
確かにフォーマットされていないUSBでした。
フォーマットしたUSBなら選択状態になりました。
USBのセクタにライトするプログラムを作っていたので、
勘違いしてしまいました。お騒がせしました。
どうもありがとうございます。
解決しました。ありがとうございました。
ツイート | ![]() |