Pantalla y Música antes de abrir Libro

28/04/2006 - 18:17 por Luis Caro | Informe spam
Saludos.
Alguien de Ustedes me había colaborado para colocar una Pantalla antes de
abrir un Libro.
Voy a abrir ahora el Libro y me aparece el siguiente comentario"El
dispositivo especificado no está abierto o MCI no lo reconoce.
Luego me abre la Pantalla,y como esta la había diseñado con Música de
Fondo,me vuelve a aparecer el mismo comentario.Se muestra la Pantalla
Inicial,pero la Música desapareció.Creo que cambié la Ubicación del Archivo
de ésta.
En el Userform me aparece lo siguiente
Private Sub Image1_Click()

End Sub

Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:20"), "KillTheForm"
End Sub

En This Workbook:
Private Sub Workbook_Open()
Usar_mciExecute "Play " & Archivo
UserForm1.Show
End Sub

En Modulo:
Option Private Module
Public Const Archivo As String = "C:\Mis Documentos\\Mis Webs\Cine en
Casa\blade.mid"
Public Declare Function Usar_mciExecute _
Lib "winmm.dll" Alias "mciExecute" ( _
ByVal Comando As String) As Long
Sub KillTheForm()
Usar_mciExecute "Stop " & Archivo
Unload UserForm1
End Sub
Ya aparece corregida la dirección de la Música


Qué debo cambiar para volver a la normalidad?
Gracias.
 

Leer las respuestas

#1 Héctor Miguel
28/04/2006 - 19:57 | Informe spam
hola, Luis Caro !

1) estas usando el metodo 'mciExecute' para 'tocar' la musica y en las conversaciones habia la siguiente 'nota':
___ inicia transcripcion ___
notas: si la musica es muy 'larga'... se seguira escuchando aun despues de cerrar el formulario :))
para detenerla, usa la misma funcion, 'pero' con 'Stop'
[p.e.] Usar_mciExecute "Stop " & Archivo <=MISMO ARCHIVO <= OJO
-> solo una 'observacion'... la cadena 'completa' [ruta + directorio/s + archivo + EXTension]
-> NO debera tener 'espacios' <== [p.e. C:\Mis doc\este archivo.mid' o... C:\Mi mus...]
[te mandaria un error 'diciendo': mmsystem263 no es un componente MCI registrado...] :((
[a menos que 'recortes' la ruta completa al tipo de archivos MS-DOS de 8+3]
¨¨¨¨¨ fin de transcripcion ¨¨¨¨¨

2) para 'corregir' la ruta [larga] completa que le estas pasando como 'parametro'...
es necesario llamar a otra funcion de las API's de windows para obtener el nombre en formato 8+3

a) -> agrega las siguientes lineas en el modulo de codigo 'normal'
ANTES DEL PROCEDIMIENTO: -> Sub KillTheForm() <= OJO OJO OJO
Public Declare Function ObtenRutaCorta _
Lib "Kernel32" _
Alias "GetShortPathNameA" ( _
ByVal RutaLarga As String, _
ByVal RutaCorta As String, _
ByVal Bufer As Long) As Long
Public Function RecortarNombre(ByVal NombreLargo As String) As String
Dim Pos As Byte, NombreCorto As String
NombreCorto = Space(128)
Pos = ObtenRutaCorta(NombreLargo, NombreCorto, Len(NombreCorto))
RecortarNombre = LCase(Left(NombreCorto, Pos))
End Function

b) cambia las siguientes instrucciones:

1) en el procedimiento: -> Private Sub Workbook_Open()
de: -> Usar_mciExecute "Play " & Archivo
a: -> Usar_mciExecute "Play " & RecortarNombre(Archivo)

2) en el procedimiento: -> Sub KillTheForm()
de: -> Usar_mciExecute "Stop " & Archivo
a. -> Usar_mciExecute "Stop " & RecortarNombre(Archivo)

nota: es probable que salga 'mas barato' [en lineas de codigo] un CreateObject("Scripting.FileSystemObject")
que las llamadas a las dos API's agregadas en los ejemplos de esta propuesta :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ consulta original __
... una Pantalla antes de abrir un Libro y me aparece el siguiente comentario
"El dispositivo especificado no esta abierto o MCI no lo reconoce."
... la habia dise#ado con Musica de Fondo... muestra la Pantalla... pero la Musica desaparecio.
Creo que cambie la Ubicacion del Archivo de esta...
En el Userform me aparece lo siguiente
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:20"), "KillTheForm"
End Sub
En This Workbook:
Private Sub Workbook_Open()
Usar_mciExecute "Play " & Archivo
UserForm1.Show
End Sub
En Modulo:
Option Private Module
Public Const Archivo As String = "C:\Mis Documentos\\Mis Webs\Cine en Casa\blade.mid"
Public Declare Function Usar_mciExecute _
Lib "winmm.dll" Alias "mciExecute" ( _
ByVal Comando As String) As Long
Sub KillTheForm()
Usar_mciExecute "Stop " & Archivo
Unload UserForm1
End Sub
Ya aparece corregida la direccion de la Musica.,. Que debo cambiar para volver a la normalidad?

Preguntas similares