CD_ROM Drive

How to detect/find a CD-ROM Drive?
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

     Private Const DRIVE_CDROM = 5
      Private Const DRIVE_FIXED = 3
      Private Const DRIVE_RAMDISK = 6
      Private Const DRIVE_REMOTE = 4
      Private Const DRIVE_REMOVABLE = 2
      Private Const DRIVE_UNKNOWN = 0    'Unknown, or unable to be determined.

      Public Declare Function GetDriveTypeA Lib "kernel32" (ByVal nDrive As String) As Long

Public Function CDletter() As String

    Dim x As String
    Dim c As Integer
    For c = 0 To 25
        x = Chr(Asc("a") + c) & ":\"
        If GetDriveTypeA(x) = DRIVE_CDROM Then
            CDletter = x
            Exit Function
        End If

End Function

      Public Function DriveType(sDrive As String) As String
         ' Returns the drive type if possible.
         Dim lRet As Long

         lRet = GetDriveTypeA(sDrive & ":\")
         Select Case lRet
            Case 0
               'DriveType = "Cannot be determined!"
               DriveType = "Unknown"

            Case 1
               'DriveType = "The root directory does not exist!"
               DriveType = "Unknown"
            Case DRIVE_CDROM:
               DriveType = "CD-ROM Drive"

            Case DRIVE_REMOVABLE:
               DriveType = "Removable Drive"

            Case DRIVE_FIXED:
               DriveType = "Fixed Drive"

            Case DRIVE_REMOTE:
               DriveType = "Remote Drive"
         End Select

      End Function

      Public Function GetDriveType(sDrive As String) As Long

         Dim lRet As Long
         lRet = GetDriveTypeA(sDrive & ":\")

         If lRet = 1 Then
            lRet = 0
         End If

         GetDriveType = lRet

      End Function


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.