Private Declare Function GetVolumeInformation Lib "kernel32" _ Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _ ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As _ Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength _ As Long, lpFileSystemFlags As Long, ByVal _ lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize _ As Long) As Long
Public Function VolumeName(Optional Drive As String = "C:\") Dim sBuffer As String sBuffer = Space$(255)
If Len(Drive) = 1 Then Drive = Drive & ":\" If Len(Drive) = 2 And Right$(Drive, 1) = ":" _ Then Drive = Drive & "\"
If GetVolumeInformation(Drive, sBuffer, Len(sBuffer), 0, 0, 0, _ Space$(255), 255) = 0 Then ' fejl
Else VolumeName = Left$(sBuffer, InStr(sBuffer, Chr$(0)) - 1) End If
End Function
Private Sub Form_Load() Dim fso Set fso = CreateObject("Scripting.FileSystemObject")
Dim dr For Each dr In fso.Drives MsgBox "drev " & dr.driveletter & Chr(13) & "Navn = " & VolumeName(dr.driveletter) Next
hmm.. ok jeg prøver lige :D - så kan man evt. definere i en options ting hvad den hedder... som standard hedder den Removable Disk (i:) - men den hedder ikke noget når man højre klikker så det kan nok ikke bruges... jeg prøver lige...
Opret en form med en textbox (text1) og en knap (command1)
Paste flg kode ind på formen.
//akj
' kode start
Option Explicit
Private Declare Function GetVolumeInformation Lib "kernel32" _ Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _ ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As _ Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength _ As Long, lpFileSystemFlags As Long, ByVal _ lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize _ As Long) As Long
Public Function VolumeName(Optional Drive As String = "C:\") Dim sBuffer As String sBuffer = Space$(255)
If Len(Drive) = 1 Then Drive = Drive & ":\" If Len(Drive) = 2 And Right$(Drive, 1) = ":" _ Then Drive = Drive & "\"
If GetVolumeInformation(Drive, sBuffer, Len(sBuffer), 0, 0, 0, _ Space$(255), 255) = 0 Then ' fejl
Else VolumeName = Left$(sBuffer, InStr(sBuffer, Chr$(0)) - 1) End If
End Function
Private Sub Command1_Click()
Command1.Enabled = False
If Len(Text1.Text) < 1 Then MsgBox "Indtast et drevnavn" Exit Sub End If
Dim fso Dim done As Boolean Set fso = CreateObject("Scripting.FileSystemObject")
Dim dr For Each dr In fso.Drives 'MsgBox "drev " & dr.driveletter & Chr(13) & "Navn = " & VolumeName(dr.driveletter) If LCase(VolumeName(dr.driveletter)) = LCase(Text1.Text) Then MsgBox ("'" & Text1.Text & "' fundet som drev " & dr.driveletter) done = True Exit For End If Next
If done = False Then MsgBox ("Drevet blev ikke fundet") End If
Command1.Enabled = True
End Sub
Private Sub Form_Load() Command1.Caption = "Find drev" Text1.Text = "MuVo" End Sub
Du får lov at beholde de 200 fra det andet spørgsmål men husk det til en anden gang.
Held og lykke med projektet
//akj
Synes godt om
Ny brugerNybegynder
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.