Pregunta: | 46 - LEER EL NUMERO DE SERIE DE UN DISCO |
Autor: | Jorge |
Quisiera saber como lo puedo hacer para que en Visual Basic (Preferente) 5 o en C para Windows (cualquier versión) pueda leer el numero de serie de un disco sin que el usuario se de cuenta, o sea sin tener que salir a MS-DOS o ejecutar el comando DIR. Necesito ayuda. |
Respuesta: | Hernaldo Alvarez |
La función que se usa es: GetVolumeInformation El ejemplo es un Form con una caja de texto en la que se introduce la unidad (directorio raíz, realmente), de la que queremos mostrar la información. Ver resp46.txt |
Respuesta: | Daniel |
La respuesta te la ha dado Hernaldo Alvarez, pero en algunas ocasiones y con la versión 5 de VBasic, cuando lees la unidad C:, te devuelve como número de serie el 0, por lo que no te asustes |
Respuesta: | Enric |
En un .bas introduce la llamada a la libreria siguiente: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 LongEn el form introduce el siguiente codigo:NVolSize = 0: NVolNumber = 0: NMaxCompLength = 0 |
Respuesta: | Emanuel Areias |
Lidié con ese asunto y lo resolví definitivamente de una manera "primitiva", ya que las funciones de la API o de VB me devolvían 0 (cero) varias veces. Hice un pequeño programita en Clipper, que ejecuta el comando DIR del DOS y envía el resultado a un archivo de texto, después extraigo de allí el codiciado número de serie del disco. No tuve más problemas, y es una función que uso en todos mis programas. |