Avatar billede sorenstrom Nybegynder
04. november 2003 - 17:34 Der er 2 kommentarer og
1 løsning

Oprette liste over lokale drev

Jeg vil gerne kunne lave en liste over alle lokale drev.
Måske via DriveListBox.
Jeg vil altså gerne have sorteret alle eventuelle netværksdrev fra, samt CD-ROM drev.

Kan det lade sig gøre?

/Søren
Avatar billede sjh Nybegynder
04. november 2003 - 23:00 #1
'----------------------------------------- Form1 -----------------------------------------
Option Explicit

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

Public Sub GetDrives(ByRef arrDrives() As String)
Dim i As Integer
Dim j As Integer
Dim strOne As String
Dim strOut As String
Dim strDrives As String * 255

  strDrives = Left$(strDrives, GetLogicalDriveStrings(255, strDrives))
  ReDim arrDrives(0) As String

  For i = 1 To Len(strDrives)
    strOne = Mid$(strDrives, i, 1)
    Select Case strOne
          Case "A" To "Z", "a" To "z", ":"
            strOut = (strOut & strOne)
          Case "\"
            ReDim Preserve arrDrives(j) As String
            arrDrives(j) = (strOut & strOne)
            j = j + 1: strOut = ""
    End Select
  Next
End Sub

Private Sub Form_Load()
Dim i As Integer
Dim strType As String
Dim arrDrive() As String

  Call GetDrives(arrDrive)

  For i = 0 To UBound(arrDrive)
    Select Case GetDriveType(arrDrive(i))
        Case 2: strType = "Removable"
        Case 3: strType = "Drive Fixed"
        Case 4: strType = "Remote"
        Case 5: strType = "CD-ROM"
        Case 6: strType = "RAM disk"
        Case Else: strType = "Unrecognized"
    End Select
    List1.AddItem arrDrive(i) & " " & strType '<- her kommer det ud i (List1)
  Next
End Sub
'----------------------------------------- Form1 -----------------------------------------
Avatar billede sjh Nybegynder
04. november 2003 - 23:30 #2
(sorteret alle eventuelle netværksdrev fra, samt CD-ROM drev)

Private Sub Form_Load()
Dim i As Integer
Dim strType As String
Dim arrDrive() As String

  Call GetDrives(arrDrive)

  For i = 0 To UBound(arrDrive)
    Select Case GetDriveType(arrDrive(i))
        Case 2: strType = "Removable" '<- A:\ og B:\
        Case 3: strType = "Drive Fixed" '<- C:\ osv...
    End Select
    List1.AddItem arrDrive(i) & " " & strType '<- her kommer det ud i (List1)
  Next
End Sub
Avatar billede sorenstrom Nybegynder
17. november 2003 - 10:07 #3
1000-tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester