ドライブの種類を調べる
指定されたドライブがどんな種類か調べるテクニックです。
サンプル(32bit) ダウンロード
'ドライブの種類のチェックAPI Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Public Const DRIVE_REMOVABLE = 2 Public Const DRIVE_FIXED = 3 Public Const DRIVE_REMOTE = 4 Public Const DRIVE_CDROM = 5 Public Const DRIVE_RAMDISK = 6 Private Sub FORMAT_SYORI(DRIVE_STR As String) 'フォーマットダイアログの表示 Dim sWORK_STR As String Dim nDRIVE_NO As Long Dim nRC As Long 'ドライブ名のA-Zチェック sWORK_STR = StrConv(Left$(Trim$(DRIVE_STR), 1), vbUpperCase) If (Asc(sWORK_STR) < 65) Or (90 < Asc(sWORK_STR)) Then Beep MsgBox "ドライブ名が不正です。" + Chr$(10) + Chr$(10) + "ドライブ名は A〜Z のみ指定できます。", vbCritical, "ドライブ名不正!!" Exit Sub End If 'リムーバブル ディスク チェック If GetDriveType(sWORK_STR + ":\") <> DRIVE_REMOVABLE Then Beep MsgBox "ドライブ " + sWORK_STR + ": はリームバブル ディスクではありません。", vbExclamation, sSYORI_NAME + "[HD等は初期化できません]" Exit Sub End If 'ドライブ名→ドライブ番号に変更 nDRIVE_NO = Asc(sWORK_STR) - 65 Screen.MousePointer = vbHourglass 'フォーマットダイアログの表示 nRC = SHFormatDrive(Me.hwnd, nDRIVE_NO, 0, 1) Screen.MousePointer = vbDefault End Sub
サンプル解説
GetDriveType関数で指定されたドライブの種類を調べています。
引数は次の通りです。
(引数の名前は、Declare Functionで指定したものです)
メンバー I/O 説明 nDrive In ドライブ名
必ず、調べたいドライブのルートパスを指定します。(例:c:\)戻り値は次の通りです。
DRIVE_REMOVABLE FD・MO等のリムーバブルメディア DRIVE_FIXED ハードディスク DRIVE_REMOTE ネットワークドライブ DRIVE_CDROM CD−ROMドライブ DRIVE_RAMDISK RAMドライブ サンプルでは、指定されたドライブがリムーバブルメディアのドライブかどうかを調べています。
[ Window Close ]