Visual Basic - Obtener numero de serie de una unidad
Códigos Visual Basic
Este codigo se puede utilizar en las unidades de disco, Cd y Disco duro, para leer el numero de serie de la unidad especificada.
En primer lugar debemos crear un modulo
Proyecto > Agregar modulo
E introducir la primera parte del codigo
Posteriormente introducir el codigo en el formulario y un boton al que llamaremos Command1, el cual ejecutará la aplicacion.
En la linea 23 debemos modificar C: por la unidad de disco que deseemos.
Function GetSerialNumber(strDrive AsString) AsLong
Dim SerialNum AsLong
Dim res AsLong
Dim Temp1 AsString
Dim Temp2 AsString
Temp1 = String$(255, Chr$(0))
Temp2 = String$(255, Chr$(0))
res = GetVolumeInformation(strDrive, Temp1, _
Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))
GetSerialNumber = SerialNum
EndFunction
PrivateSub Command1_Click()
Call MsgBox(GetSerialNumber("c:"))
EndSub
ENLACE AL CODIGO
Si quieres enlazar desde tu pagina a este codigo
<!-- Inicio enlace Tutores.org -->
<a title="Tutores.org - Obtener numero de serie de una unidad" href="http://www.tutores.org/codigo/1068/" target="_blank">Obtener numero de serie de una unidad</a>
<!-- Final enlace Tutores.org -->
COMENTARIOS
Comentario usuario
jemchjemch
55
la parte que dice:
Temp1 = string$(255, Chr$(0))
Temp2 = string$(255, Chr$(0))
Dice que el signo pesos no puede ser usado, y que string es un tipo 'class' y no puede ser usado como una expresión
Eso lo arrojó MSVB2005
Comentario usuario
capcap
45
a mi tambien me sale el mismo error y no dicen si hay q usar una referencia o algo
Comentario usuario
SlikerSliker
25
Ese mensaje de error te lo da, por que este código es para ser usado en Visual Basic 6, no 2005, ni 2008. Visual Basic 5 (quizás), pero el uso del dólar o símbolo de pesos ( $ ) es para escribir variables cortas de tipo STRING. Por ejemplo: a) Dim x as STRING; b) Dim x$. Para los enteros (INTEGER) y simples (SINGLE) puede ser usados símbolos como (% ENTERO) y otros, pueden encontrar ayuda sobre este tema en la ayuda de Microsoft Visual Basic 6. Saludos =)
He usado este codigo, pero obtengo "0" como numero de serie del disco "C", en cambio si pongo d para ver el numero de serie de la unidad "D" obtengo "-2005661924". No se si es que hago algo mal porque esperaba que el numero de serie del disco C fuera algo distinto de 0.
Gracias.