📄 form1.frm
字号:
VERSION 5.00
Begin VB.Form Form1
Caption = "获取磁盘驱动器类型"
ClientHeight = 2670
ClientLeft = 3795
ClientTop = 1905
ClientWidth = 4035
LinkTopic = "Form1"
ScaleHeight = 2670
ScaleWidth = 4035
Tag = "hello"
Begin VB.ListBox List1
Height = 2010
Left = 120
TabIndex = 1
Top = 240
Width = 3855
End
Begin VB.CommandButton Command1
Caption = "获取信息"
Height = 375
Left = 1440
TabIndex = 0
Top = 2280
Width = 975
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Declare Function GetLogicalDrives Lib "kernel32" () As Long
Private Const DRIVE_UNKNOWN = 0
Private Const DRIVE_NO_ROOT_DIR = 1
Private Const DRIVE_REMOVABLE = 2
Private Const DRIVE_FIXED = 3
Private Const DRIVE_REMOTE = 4
Private Const DRIVE_CDROM = 5
Private Const DRIVE_RAMDISK = 6
' 用来返回磁盘驱动器的个数
Public Function DriveCount() As Integer
Dim BitMask As Long
Dim j, i
BitMask = GetLogicalDrives()
For i = 0 To 24
If BitMask And 2 ^ i Then
j = j + 1
End If
Next i
DriveCount = j
End Function
' 返回驱动器的名称
Public Function LoadDrivenames(An_Array() As String) As Long
Dim j, i
Dim lpBuffer As String
ReDim An_Array(128) As String
lpBuffer = Space$(1024)
' 返回当前所有逻辑驱动器的根驱动器路径
GetLogicalDriveStrings Len(lpBuffer), lpBuffer
j = InStr(lpBuffer, Chr$(0))
' 存储磁盘驱动器的名称到An_Array中
Do While j > 0
An_Array(i) = Left$(lpBuffer, j - 1)
i = i + 1
lpBuffer = Mid$(lpBuffer, j + 1)
j = InStr(lpBuffer, Chr$(0))
Loop
ReDim Preserve An_Array(DriveCount)
End Function
' 返回磁盘驱动器的类型
Public Function Types(Optional sDrive As String) As String
Select Case GetDriveType(sDrive)
Case DRIVE_UNKNOWN
Types = "不能识别"
Case DRIVE_NO_ROOT_DIR
Types = "不存在"
Case DRIVE_REMOVABLE
Types = "可移除驱动器"
Case DRIVE_FIXED
Types = "固定驱动器"
Case DRIVE_REMOTE
Types = "远程驱动器"
Case DRIVE_CDROM
Types = "光盘驱动器"
Case DRIVE_RAMDISK
Types = "随机存取磁盘"
Case Else
Types = "ERROR"
End Select
End Function
Private Sub Command1_Click()
Dim DrivesN() As String
Dim i As Integer
Me.Cls
Print "驱动器个数:" & DriveCount
Call LoadDrivenames(DrivesN)
For i = 0 To DriveCount - 1
List1.AddItem DrivesN(i) & Types(DrivesN(i))
Next i
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -