Declare Function GetLogicalDriveStrings Lib "kernel32.dll" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Платформа: Win 95/98, Win NT
GetLogicalDriveStrings определяет имеющие силу логические диски на компьютере и размещает их названия корневых каталогов в строку lpBuffer. Каждое имя корневого каталога в буфере отделено нулевым символом, и полными строковыми концами в двух нулевых символах. Например, если существуют только A: и C: , строка будет " a: \ (пустой указатель) c: \ (пустой указатель) (пустой указатель) ", где (пустой указатель) представляет нулевой символ. Функция возвращает 0, если произошла ошибка, или длина строки, помещенной в lpBuffer, если функция выполнена успешно.
nBufferLength
Длина строки в буфере lpBuffer.
lpBufferСтрока,которая получает имена всех логических дисков.
Пример:
' Перечисляем имена всех корневых каталогов. Так как каждый вход в строке берет
' Четыре символа (три для имени и один для пустого указателя), мы можем рассчитать длину
' строки. Это освобождает нас от проблем относительно пустых указателей.
Dim drivenames As String ' получаем имена дисков
Dim thisdrive As String ' буфер для имени диска
Dim c As Long ' счетчик
Dim slength As Long ' длина возвращаемой строки
' Создаем место в буфере для имен дисков.
drivenames = Space(255) ' должно хватить
' Получаем имена всех дисков.
slength = GetLogicalDriveStrings(255, drivenames)
' считаем по 4 символа для извлечения имен каждого диска.
For c = 1 To slength Step 4 '
thisdrive = Mid(drivenames, c, 3) ' извлекаем 3-х символьную строку X:\ (где X-буква диска)
 
ebug.Print thisdrive ' показываем имена дисков
Next c
Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Платформа: Win 95/98, Win NT
GetDriveType определяет типы дисков на компьютере.Это могут быть жесткие диски,флоппи-диски, CD-ROM и др. Функция возвращает тип диска.Если 0-значит ошибка,если 1-значит диск не существует,другие возвращаемые значения означают следующее:
DRIVE_CDROM = 5
CD-ROM.
DRIVE_FIXED = 3
Жесткий диск.
DRIVE_RAMDISK = 6
RAM-диск.
DRIVE_REMOTE = 4
Сетевой диск.
DRIVE_REMOVABLE = 2
Сменный диск(напр.дискетта или любой сменный диск).
nDrive
Корневой каталог диска,как "c:\" или "a:\"
Пример
' Определяем тип диска D:
Dim drivetype As Long
drivetype = GetDriveType("d:\"
If drivetype = 1 Then Debug.Print "Диск D:\ не существует."
If drivetype = DRIVE_REMOVABLE Then Print "Диск D:\ сменный диск."
If drivetype = DRIVE_FIXED Then Print "Диск D:\ жесткий диск."
If drivetype = DRIVE_CDROM Then Print "Диск D:\ CD-ROM."
' и т.д.