お世話になります。
vb6でフロッピードライブやCDR/Wドライブの存在するか?
有ればそのドライブ名を知りたいのですが?
どうすればよろしいですか?
追加です。
自作ソフトをフロッピーやCDに書込したいのですが。
パソコンによってドライブが違うため、デフォルトでドライブを決められません。
パソコン毎に書込可能なドライブをデフォルト表示したいのですが。
API関数のGetDriveTypeを使用します
GetDriveType =>ドライブのタイプを取得
<引数>
nDrive:ドライブを指定
@戻り値@
0 未知
1 存在しない
2 フロッピーディスク
3 ハードディスク
4 ネットワークドライブ
5 CD- ROM
6 RAMディスクドライブ
CDR/RWまで分かるかどうかは分かりませんが、
フロッピーディスクドライブは識別できそうです。
花ちゃんのサイト(http://www.bcap.co.jp/hanafusa/index.html)にコードが具体的に載っているので、転記しておきます。
--
Option Explicit 'SampleNo=079 WindowsXP VB6.0(SP5) 2002.05.17
'ドライブの種類を取得する(P914)
Private Declare Function GetDriveType Lib "kernel32" _
Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Const DRIVE_TYPE_UNDTERMINED = 0 'ドライブが不明
Private Const DRIVE_NO_ROOT_DIR = 1 'ルートディレクトリなし
Private Const DRIVE_REMOVABLE = 2 'フロッピー又はリムーバブルディスク
Private Const DRIVE_FIXED = 3 '固定ディスク(ハードディスク)
Private Const DRIVE_REMOTE = 4 'リモート又はネットワークドライブ
Private Const DRIVE_CDROM = 5 'CD-ROMドライブ
Private Const DRIVE_RAMDISK = 6 'RAM ディスク
Private Sub Command1_Click()
Dim i As Integer
Dim Ret As Long
Dim Drive As String
List1.Clear
For i = 65 To 75 'A〜Kドライブまでを調査
Drive = Chr$(i) & ":\"
Ret = GetDriveType(Drive)
Select Case Ret
Case DRIVE_TYPE_UNDTERMINED
List1.AddItem Chr$(i) & _
" : 不明なドライブです。"
Case DRIVE_NO_ROOT_DIR
List1.AddItem Chr$(i) & _
" : ルートディレクトリがありません。"
Case DRIVE_REMOVABLE
List1.AddItem Chr$(i) & _
" : フロッピー又はリムーバブルディスクです。 "
Case DRIVE_FIXED
List1.AddItem Chr$(i) & _
" : 固定ディスク(ハードディスク)です。 "
Case DRIVE_REMOTE
List1.AddItem Chr$(i) & _
" : リモート又はネットワークドライブです。 "
Case DRIVE_CDROM
List1.AddItem Chr$(i) & _
" : CD-ROMドライブです。 "
Case DRIVE_RAMDISK = 6
List1.AddItem Chr$(i) & _
" : RAM ディスクです。 "
End Select
Next i
End Sub
ありがとうございました。
GetDriveTypeの使用で解決出来ました。