
24/02/2004, 02:44
|
| | Fecha de Ingreso: febrero-2004 Ubicación: U.S.A.
Mensajes: 7
Antigüedad: 21 años, 1 mes Puntos: 0 | |
'Este es un ejemplo de un form con un cuadro de Texto en el que se introduce la Unidad por ej. C:\
'Label3(0) muestra la Etiqueta del volumen
'Label3(1) muestra el num. de serie del volumen
'Label3(2) muestra el tipo de sistema de archivos
Hay dos botones Command1 (Mostrar) y Command2 (Salir)
Option Explicit
'Declaración de la función, sólo está en la API de 32 bits
'
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
Private Sub Command1_Click()
'Acción
Dim lVSN As Long, n As Long, s1 As String, s2 As String
Dim unidad As String
Dim sTmp As String
On Local Error Resume Next
'Se debe especificar el directorio raiz
unidad = Trim$(Text1)
'Reservar espacio para las cadenas que se pasarán al API
s1 = String$(255, Chr$(0))
s2 = String$(255, Chr$(0))
n = GetVolumeInformation(unidad, s1, Len(s1), lVSN, 0, 0, s2, Len(s2))
's1 será la etiqueta del volumen
'lVSN tendrá el valor del Volume Serial Number (número de serie del volumen)
's2 el tipo de archivos: FAT, etc.
'Convertirlo a hexadecimal para mostrarlo como en el Dir.
sTmp = Hex$(lVSN)
Label3(0) = s1
Label3(1) = Left$(sTmp, 4) & "-" & Right$(sTmp, 4)
Label3(2) = s2
End Sub
Private Sub Command2_Click()
Unload Me
End
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Asegurarnos de "liberar" la memoria.
Set Form1 = Nothing
End Sub |