程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 取得Disk Driver List與各個Driver的型態

取得Disk Driver List與各個Driver的型態

編輯:VB綜合教程

  

Private Declare Function GetDriveType Lib "kernel32" _
  Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Declare Function GetLogicalDriveStrings Lib "kernel32" _
  Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, _
  ByVal lpBuffer As String) As Long
'GetDriveType()的傳回值意義如下:
'0  The drive type cannot be determined.
'1  The root directory does not exist.
'2  The drive can be removed from the drive.
'3  The disk cannot be removed from the drive.
'4  The drive is a remote (network) drive.
'5  The drive is a CD-ROM drive.
'6  The drive is a RAM disk.
Private Sub Command1_Click()
Dim drv() As String, i As Long
Dim DrvType As Long
Call GetAvailDriver(drv())
For i = LBound(drv) To UBound(drv)
  DrvType = GetDriveType(drv(i))
  Select Case DrvType
   Case 2
     Debug.Print drv(i), "軟碟"
   Case 3
     Debug.Print drv(i), "硬碟"
   Case 4
     Debug.Print drv(i), "網路磁碟"
   Case 5
     Debug.Print drv(i), "光碟"
   Case 6
     Debug.Print drv(i), "RamDisk"
   Case Else
     Debug.Print drv(i), "不明"
  End Select
Next i
End Sub
'取得所有可用的DiskDriver List
Public Sub GetAvailDriver(DriverName() As String)
Dim totlen As Long
Dim buff As String, totDrvCnt As Long
Dim i As Long, tmpstr As String, j As Long
buff = String(255, 0)
totlen = GetLogicalDriveStrings(256, buff)
'取得的值如: "a:\"+Chr(0)+"c:\"+Chr(0) + "d:\"+Chr(0) + Chr(0)
'而這個例子中傳回長度(totlen)是12
buff = Left(buff, totlen)
totDrvCnt = 0
For i = 1 To totlen
  tmpstr = Mid(buff, i, 1)
  If tmpstr = Chr(0) Then
   totDrvCnt = totDrvCnt + 1
  End If
Next i
ReDim DriverName(totDrvCnt - 1)
j = 0
For i = 1 To totDrvCnt
  j = InStr(1, buff, Chr(0))
  DriverName(i - 1) = Left(buff, j - 1)
  buff = Mid(buff, j + 1)
Next i
End Sub

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved