Option Explicit
Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Public Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Public Function NameCDrive() As String Dim DrvString As String Dim TotDrvs As Long Dim Counter As Integer
TotDrvs = GetLogicalDriveStrings(0&, DrvString) 'TotDrvs возвращает общую длину передаваемой в программу строки
DrvString = String(TotDrvs - 1, " ") 'DrvString - буфер для строки
'Повторный вызов функции GetLogicalDriveStrings для заполнения строки правильными данными 'пример "a:\ c:\ d:\ e:\" TotDrvs = GetLogicalDriveStrings(TotDrvs, DrvString)
'Анализ и просмотр возвращаемой строки For Counter = 1 To TotDrvs Step 4 'если GetDriveType = GetDriveType, (то-есть 5), значит 'CD-ROM установлен и NameCDrive присваивается буква If GetDriveType(Mid(DrvString, Counter, 3)) = 5 Then NameCDrive = Mid(DrvString, Counter, 3) End If Next Counter
End Function
Функция "NameCDrive"
Вызывается с любого места проги, т.е. объявляется какая либо переменная, типа Dim strCDdrive As String, и ей присваивается значение -
strCDrive = NameCDrive
Ответить
|