- 締切済み
FDユニットとMOユニットの判定
早速質問します。 端末に接続されている有効なドライブの検索に、API関数の「GetDriveType」を使用して以下のモジュールを作成しています。 'A~Zまでを検索 For iCnt = 1 To 26 'A~Zのドライブを設定 szBuffer = Chr(64 + iCnt) & ":\" 'API呼出し uType = GetDriveType(szBuffer) '戻り値の判定 IF uType=0 or uType=1 then MsgBox szBuffer & "無効ドライブ" Else MsgBox szBuffer & "有効ドライブ" End IF Next このAPIの戻り値ですと、FDユニットとMOユニットは共に「uType=2(Removable)」のリターンとして帰ってきます。 FDとMOを区別する方法はないでしょうか? ちなみに、それぞれ媒体を挿入している場合は媒体容量で判定できるのですが、媒体を挿入していない状態で判定したいのでご教授をお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- osaosa42
- ベストアンサー率60% (20/33)
Shellオブジェクトを使えば、簡単に作れますよ。 参照設定で「Microsoft Shell Controls And Automation」を追加すると、Shellオブジェクトが使えるようになります。 ------------------------------------------------- Dim objShell As Shell 'シェルスクリプト Dim objFolder As Folder '2種類あるから気をつけて Dim objFolderItem As FolderItem Dim n As Integer Set objShell = New Shell Set objFolder = objShell.NameSpace(ssfDRIVES) 'マイコンピュータを取得 For n = 0 To objFolder.Items.Count - 1 Set objFolderItem = objFolder.Items.Item(n) If objFolderItem.IsFolder Then Debug.Print objFolderItem.Type Debug.Print objFolderItem.GetFolder.Title End If Next n Set objFolderItem = Nothing Set objFolder = Nothing Set objShell = Nothing -------------------------------------------------- 一度、使ってみてください。 奥が深くて面白いですよ。 じゃ、そゆことで。
- mnabe
- ベストアンサー率33% (427/1283)
A/Bドライブ以外なら、MOって判定ではダメ?? それ以外では、ドライバに情報を問い合わせるとか...すれば出来るような気がしますが...ちょっと簡単には調べられないので、気になるようでしたら、ご自分で調べてみて下さい。
補足
参考URLを見ていたのですが、「Win95やNT4では、Internet Explorer4.0をシェル統合モードでインストールしていないと使えません。」の記述がありました。 と言うことは「Internet Explorer4.0」をインストールしていない端末では使用できないということになってしまいます。 「Internet Explorer4.0」をインストールしていない端末でも使用できるようにはならないでしょうか?