Visual Basic - Nombre de la unidad

Life is soft - evento anual de software empresarial
 
Vista:

Nombre de la unidad

Publicado por Alcatelo (13 intervenciones) el 05/10/2003 21:07:10
Hola, necesito saber donde puedo obtener el nombre por defecto de una unidad sin nombre, es decir, si la unidad C: no tiene etiqueta obtengo una cadena vacia. Pues lo que yo quiero es que me de el valor "Disco local" y no vale ponerlo yo directamente como constante.

Un saludo. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Nombre de la unidad

Publicado por Cecilia Colalongo (3116 intervenciones) el 06/10/2003 01:06:02
Lo puedes hacer con GetDriveType:

Private Declare Function GetDriveType Lib "Kernel" _
(ByVal nDrive As Integer) As Integer

En http://guille.costasol.net/vb_api01.htm#api005 tienes un ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Nombre de la unidad

Publicado por Alcatelo (13 intervenciones) el 06/10/2003 11:50:42
Gracias por contestarme, pero no es eso lo que busco, sino obtener la etiqueta (volumen) de una unidad. Si insertas un CR-Rom aparece el volumen de dicho CD, pero si no tiene volumen, aparece "Disco compacto (D:)", pues yo quiero obtener el valor que recibe dicha unidad si, por ejemplo, no hay ningun CD en la unidad.

No se si me he explicado bien.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Nombre de la unidad

Publicado por Cecilia Colalongo (3116 intervenciones) el 06/10/2003 11:57:29
Tendrías que hacer una combinación entre esa función y ésta:

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

Dim Serial As Long, VName As String, FSName As String

VName = String$(255, Chr$(0))
FSName = String$(255, Chr$(0))
GetVolumeInformation "C:\", VName, 255, Serial, 0, 0, FSName, 255

VName = Left$(VName, InStr(1, VName, Chr$(0)) - 1)
FSName = Left$(FSName, InStr(1, FSName, Chr$(0)) - 1)

MsgBox "La etiqueta C:\ es '" + VName + "', el sistema de archivos de C:\ es '" + FSName + "' y el número de serie de C:\ es '" + Trim(Str$(Serial)) + "'", vbInformation + vbOKOnly
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Nombre de la unidad

Publicado por Alcatelo (13 intervenciones) el 06/10/2003 12:37:48
Gracias de nuevo, pero si lo pruebas, tambien obtienes una cadena vacia. (siempre que, como he dicho antes, no tenga una etiqueta definida por el usuario)

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Para Cecilia

Publicado por Alcatelo (13 intervenciones) el 06/10/2003 18:06:26
Con esto ya esta, pero muchas gracias.

Public Function NombreEtiqueta(Unidad As String) As Variant
Dim fs, d, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(Unidad)
NombreEtiqueta = d.VolumeName
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Para Cecilia

Publicado por Cecilia Colalongo (3116 intervenciones) el 07/10/2003 12:28:46
¿Qué es esto para mí? no recuerdo haber hecho ninguna pregunta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ya, pero si una respuesta

Publicado por Alcatelo (13 intervenciones) el 07/10/2003 14:45:49
Es la respuesta a mi propia pregunta, el "Para Cecilia" era para darte las gracias y la respuesta era para los que les haya interesado la pregunta que hice.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar