Часто задаваемые вопросы и ответы по программированию на VB
Последнее обновление: 28.03.03
Q: Как определить какие диски установлены в системе?
А1 (M@trix): Если юзер не использует прогу типа dnameex-a (диск С: мона назвать "АВС"), то используйте это.
Option Explicit
'константы, соответствующие возможным значениям,
'возвращаемым функцией GetDriveType
Const DRIVE_REMOVABLE = 2
Const DRIVE_FIXED = 3
Const DRIVE_REMOTE = 4
Const DRIVE_CDROM = 5
Const DRIVE_RAMDISK = 6
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Sub Form_Click()
Dim i, Drv, D$
For i = 0 To 25 ' проверяем все возможные диски от А до Z
D$ = Chr$(i + 65) & ":\"
Drv = GetDriveType(D$)
Select Case Drv
Case DRIVE_REMOVABLE
Print "Drive " & D$ & " is removable."
Case DRIVE_FIXED
Print "Drive " & D$ & " is fixed."
Case DRIVE_REMOTE
Print "Drive " & D$ & " is remote."
Case DRIVE_CDROM
Print "Drive " & D$ & " is CD-ROM."
Case DRIVE_RAMDISK
Print "Drive " & D$ & " is RAM disk."
Case Else
End Select
Next i
End Sub
A2 (Lamer): C использованием Microsoft Scripting Runtime (файл srcrun.dll). Подключить ее можно через
Project->References. Программа примерно выгляди так:
Dim drv
Dim fso
set fso = CreateObject("Scripting.FileSystemObject")
For Each drv In fso.Drives
MsgBox drv.DriveLetter & " " & drv.DriveType
Next
drv.DriveType принимает значения
1 - съёмный
2 - жёсткий
3 - сетевой
4 - CD-ROM
FAQ составлен по материалам Форума на Исходниках.Ру.
Составитель:
Crew
Copyright © 2002 by Sources.ru. All rights
reserved.