Ayuda con una variable

Iniciado por BorecK, 15 Enero 2007, 00:33 AM

0 Miembros y 1 Visitante están viendo este tema.

BorecK

Hola a todos, tengo un nuevo problema, resulta que quiero guardar una ruta de directorio por ejemplo: (C:\Archivos de programa) en una variable Global, supongamos que en un formulario necesito guardar la ruta en una variable global para manejar esa ruta en otro formulario mi problema es que no se guarda en la variable ya intente con integer, string, long hasta boolean.... yo se que no se declaran asi pero pues me desespere y intente de todo el codigo es el siguiente:

FORM 1
Private Sub Buscar_Click()
    On Error GoTo ErrorBuscar
    CMDialog.Filter = "Formato de sonido MP3 (*.mp3)|*.mp3|Archivos de audio (*.wav)|*.wav|Formato de sonido MIDI (*.midi)|*.midi|Todos los Archivos (*.*)|*.*"
    CMDialog.FilterIndex = 1
    CMDialog.Action = 1
     RutaText.Text = FRMConfiguracion.CMDialog.FileName
SalirBuscar:
    Exit Sub
ErrorBuscar:
    MsgBox Err.Description, 16, "ERROR"
    Resume SalirBuscar
End Sub

Private Sub Salvar_Click()
RutaText = Sonido
Unload Me
End Sub

FORM 2
Private Sub Timer1_Timer()
HoraActual.Caption = Time$
If Hora.Text <= HoraActual And DespertadorSi = True Then
On Error Resume Next
Set Objeto = CreateObject("WScript.Shell")
Objeto.Run Sonido
Beep
End If
End Sub

MODULE 1
Global Sonido As Integer


que debo hacer?

BorecK

#1
Ya lo solucione, la variable global tenia que ser string y en donde dice:

Private Sub Salvar_Click()
RutaText = Sonido
Unload Me
End Sub


lo cambie por:

Private Sub Salvar_Click()
Sonido = CMDialog.FileName
Unload Me
End Sub


El programa es un despertador donde puedes elegir la musica con la cual te va a despertar pero ahora me encontre con un problema que no puedo solucionar... para que reprodusca la musica tiene que tener un nombre corto como: Sonido.mp3 y debe estar en la ruta C:\ por ejemplo: C:\Sonido.mp3, lo que quiero es poder programarlo para abrir musica de mi carpeta Mi Musica y que acepte nombres como: C:\Documents and Settings\KillerByte\Mis documentos\Mi música\Billy Talent\05 - pins and needles.mp3, al parecer no acepta que los nombres de la cancion tengan espacios: 05 - pins and needles.mp3 ni acepta las rutas tan largas.... me puse a pensar y dije pues le pondre a la global String*100 pero no creo que sea eso... me sigue fallando podrian ayudarme  :-(

NYlOn

Lo que necesitas es que la ruta completa sea mas corta, como las usaba el DOS (creo xD).
Lo solucionas usando la API GetShortPathName del siguiente modo:

Private Declare Function GetShortPathName Lib "kernel32.dll" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

Private Sub Form_Load()
    Dim Ubicacion As String, retUbicacion As String
    retUbicacion = Space(255)
    Ubicacion = "c:\Archivos de programa\eMule\Incoming\08-Marcha de san lorenzo.mp3"
    GetShortPathName Ubicacion, retUbicacion, 255
    MsgBox retUbicacion
End Sub


Despues vos adaptalo a tu programa, espero que te sirva.

Saludos.-