VB6対応

 

Visual Basic 中学校 > VB6 サンプル >

フロッピーディスクドライブを取得する

 

以下のFloppy関数を使うと フロッピーディスクドライブを"A:\"のような文字列として取得できる。

ただし、実際にはFloppy関数は一番初めのリムーバブルメディアドライブを取得するだけなので、取得したドライブはUSBメモリ等である可能性もある。しかし、ほとんどの環境でフロッピーディスクドライブは一番初めのリムーバブルメディアドライブである。

VB6対応

Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Declare Function
GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
'■Floppy
'■機能:フロッピーディスクドライブが何ドライブか調べる
'■戻り値:フロッピーディスクドライブ名。たとえば"A:\"。
'■ フロッピーディスクドライブが見つからないときは空文字を返す。

Public Function Floppy() As String

    Dim Buffer As String * 106
    Dim DriveList As String
    Dim K As Integer

    '有効なドライブの一覧を取得する。
    Call GetLogicalDriveStrings(Len(Buffer), Buffer)

    'NULLをはずす。
    For K = 1 To Len(Buffer)
        If Mid(Buffer, K, 1) <> Chr(0) Then
            DriveList = DriveList & Mid(Buffer, K, 1)
        End If
    Next K

    'それぞれのドライブのタイプをチェックする。
    For K = 1 To Len(DriveList) \ 3
        If GetDriveType(Mid(DriveList, (K - 1) * 3 + 1, 3)) = 2 Then
            Floppy = Mid(DriveList, (K - 1) * 3 + 1, 3)
            Exit Function
        End If
    Next
K

    Floppy = ""

End Function