Letra unidad de CD en uso Visual Basic

Hola, tengo el siguiente problema, necesito reprodcir un video con la siguiente linea:
MMControl1.filename = "f:\c.mpg"
¿Es para reproducirlo en un CD pero NO en todos los PC la letra de la unidad es "F:\" que puedo hacer?. Desde ya muchas gracias.

1 Respuesta

Respuesta
1
Puedes hacer uso de las apis de windows para obtener una unidad de cd-rom te anexo el código para ver si lo puedes implementar si tienes alguna duda, preguntame:
'obtiene el volumen del cd
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 Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Const DRIVE_REMOVABLE = 2
Private Const DRIVE_FIXED = 3
Private Const DRIVE_REMOTE = 4
Private Const DRIVE_CDROM = 5
Private Const DRIVE_RAMDISK = 6
Public Function unidad() As String
Dim r&, allDrives$, JustOneDrive$, pos%, DriveType&
Dim CDfound As Integer
allDrives$ = Space$(64)
r& = GetLogicalDriveStrings(Len(allDrives$), allDrives$)
allDrives$ = Left$(allDrives$, r&)
Do
pos% = InStr(allDrives$, Chr$(0))
If pos% Then
JustOneDrive$ = Left$(allDrives$, pos%)
allDrives$ = Mid$(allDrives$, pos% + 1, Len(allDrives$))
DriveType& = GetDriveType(JustOneDrive$)
If DriveType& = DRIVE_CDROM Then
CDfound% = True
Exit Do
End If
End If
Loop Until allDrives$ = "" Or DriveType& = DRIVE_CDROM
If CDfound% Then
unidad = Mid(UCase$(JustOneDrive$), 1, 2)
Else
MsgBox "Su sistema no posee CD-ROM o unidad no encontrada."
unidad = ""
End If
End Function
Unicamente declara una variable de tipo string que va a recibir el valor encontrado por la función ejm:
a = unidad
Suerte
Que pasa si el pc posee más de una unidad... como se cual es la que se esta utilizando con mi cd.
Lo que puedes hacer es modificar la función para que en vez de salir cuando encuentre el primer dispositivo cd_rom te concatene todas las unidades de cd_rom que tiene la pc, y revisar unidad por unidad hasta que encuentres el archivo que quieres manipular: por ejemplo si la función te regresa:
d:, e:
Seria cuestión de ponerle la ruta a la unidad:
d:\c.mpg y checar si esta el archivo, si no esta buscar en e:\c.mpg y si no esta significa que no han insertado el cd de tu aplicación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas