Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

[SOLUCIONADO] seleccionar y almacenar ruta

Estas en el tema de seleccionar y almacenar ruta en el foro de Visual Basic clásico en Foros del Web. Amigos, este es mi primer tema, les cuento estoy diseñando un programa. La idea es poder abrir un .exe y almacenar la ruta. Para no ...
  #1 (permalink)  
Antiguo 17/09/2013, 18:16
Avatar de eatornini  
Fecha de Ingreso: septiembre-2013
Ubicación: Calama
Mensajes: 10
Antigüedad: 10 años, 7 meses
Puntos: 0
seleccionar y almacenar ruta

Amigos, este es mi primer tema, les cuento estoy diseñando un programa. La idea es poder abrir un .exe y almacenar la ruta. Para no tener que buscar el .exe cada ves que se abre el programa.

Tengo este código que funciona bien, hace lo que quiero, pero el problema es que ya almacenada la ruta, sigue abriendo la opción para seleccionar el .exe. Como hago para que no aparezca más, después de almacenar la ruta?

Código

Código:
Private Sub Command1_Click()
Dim Respuesta

'Verificar si existe
If Dir("C:\Program Files\KONAMI\Pro Evolution Soccer 6\PES6.exe", vbArchive) = vbNullString Then



'Si el usuario elige "Si", con el "CommonDialog" usamos "CommonDialog1.ShowOpen" para que el usuario busque el ejecutable
    If Respuesta = vbNullString Then

        CommonDialog1.Filter = "Archivos Ejecutables (*.exe)|*.exe"
        CommonDialog1.ShowOpen

'si el usuario selecciona cancelar que salga del sub
        If CommonDialog1.FileName = "" Then Exit Sub

'Si selecciona un ejecutable que lo abra
        Shell CommonDialog1.FileName, vbNormalFocus
        
    End If
Else
'En caso de que en la comprobación si exista el ejecutable que lo abra.
    Shell "C:\Windows\notepad.exe", vbNormalFocus
End If

Open "C:\RutaApp.txt" For Output As #1
      Print #1, CommonDialog1.FileName
Close #1

Me.WindowState = 1
End Sub
Muchas gracias amigos
  #2 (permalink)  
Antiguo 18/09/2013, 01:18
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: seleccionar y almacenar ruta

Creo que esto es lo que pides:

Código vb:
Ver original
  1. Private Sub Command1_Click()
  2.  
  3. Static Respuesta as string ' creamos una variable que no se pierde
  4. ' NOTA; esta variable la deberias hacer global y cargarla con el contenido
  5. ' del fichero rutaapp.txt antes de entrar en esta sub.
  6. ' de todas formas asi sirve.
  7.  
  8.  
  9. 'Verificar si existe
  10. ' si la variable no se ha cargado la cargamos
  11. if respuesta="" then respuesta="C:\Program Files\KONAMI\Pro Evolution Soccer 6\PES6.exe"
  12. ' y si no es valida pedimos la nueva ruta
  13. If Dir(respuesta, vbArchive) = vbNullString Then
  14.  
  15.  
  16.  
  17. 'Si el usuario elige "Si", con el "CommonDialog" usamos "CommonDialog1.ShowOpen" para que el usuario busque el ejecutable
  18.    If Respuesta = vbNullString Then
  19.  
  20.         CommonDialog1.Filter = "Archivos Ejecutables (*.exe)|*.exe"
  21.         CommonDialog1.ShowOpen
  22.  
  23. 'si el usuario selecciona cancelar que salga del sub
  24.        If CommonDialog1.FileName = "" Then Exit Sub
  25.  
  26. 'Si selecciona un ejecutable que lo abra
  27.        Shell CommonDialog1.FileName, vbNormalFocus
  28.  
  29. ' Y ESTO SOLO SE GUARDA AQUI, SI LO GUARDAS DONDE ESTABA
  30. ' SE GUARDA SIEMPRE AUNQUE LA RUTA QUE CONTIENE YA SEA VALIDA
  31. Open "C:\RutaApp.txt" For Output As #1
  32.       Print #1, CommonDialog1.FileName
  33. Close #1
  34.  
  35.        
  36.     End If
  37.  
  38. Else
  39. 'En caso de que en la comprobación si exista el ejecutable que lo abra.
  40.    Shell respuesta, vbNormalFocus
  41. End If
  42.  
  43.  
  44. Me.WindowState = 1
  45. End Sub
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 18/09/2013 a las 01:25
  #3 (permalink)  
Antiguo 18/09/2013, 09:50
Avatar de eatornini  
Fecha de Ingreso: septiembre-2013
Ubicación: Calama
Mensajes: 10
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: seleccionar y almacenar ruta

Muchas gracias por la respuesta.
Amigo, lo coloque tal cual, y no hace nada, solo minimiza, pero no da la opción de encontrar el .exe
  #4 (permalink)  
Antiguo 18/09/2013, 11:31
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: seleccionar y almacenar ruta

Es que no he probado el codigo. Te sobra una comparacion y no habiamos cargado Respuesta con el camino al fichero.
Esto si funciona:

Código vb:
Ver original
  1. Private Sub Command1_Click()
  2.  
  3.  
  4.  
  5. Static Respuesta As String ' creamos una variable que no se pierde
  6.  
  7. ' NOTA; esta variable la deberias hacer global y cargarla con el contenido
  8.  
  9. ' del fichero rutaapp.txt antes de entrar en esta sub.
  10.  
  11. ' de todas formas asi sirve.
  12.  
  13.  
  14.  
  15.  
  16.  
  17. 'Verificar si existe
  18.  
  19. ' si la variable no se ha cargado la cargamos
  20.  
  21. If Respuesta = "" Then Respuesta = "C:\Program Files\KONAMI\Pro Evolution Soccer 6\PES6.exe"
  22.  
  23. ' y si no es valida pedimos la nueva ruta
  24.  
  25. If Dir(Respuesta, vbArchive) = vbNullString Then
  26.  
  27.  
  28.         CommonDialog1.Filter = "Archivos Ejecutables (*.exe)|*.exe"
  29.  
  30.         CommonDialog1.ShowOpen
  31.  
  32.  
  33.  
  34. 'si el usuario selecciona cancelar que salga del sub
  35.  
  36.         If CommonDialog1.FileName = "" Then Exit Sub
  37.  
  38.         Respuesta = CommonDialog1.FileName
  39.    
  40.  
  41. ' Y ESTO SOLO SE GUARDA AQUI, SI LO GUARDAS DONDE ESTABA
  42.  
  43. ' SE GUARDA SIEMPRE AUNQUE LA RUTA QUE CONTIENE YA SEA VALIDA
  44.  
  45.       Open "C:\RutaApp.txt" For Output As #1
  46.  
  47.          Print #1, CommonDialog1.FileName
  48.  
  49.       Close #1
  50. 'Si selecciona un ejecutable que lo abra
  51.  
  52.         Shell CommonDialog1.FileName, vbNormalFocus
  53.  
  54.  
  55.  
  56. Else
  57.  
  58. 'En caso de que en la comprobación si exista el ejecutable que lo abra.
  59.  
  60.     Shell Respuesta, vbNormalFocus
  61.  
  62. End If
  63.  
  64.  
  65.  
  66.  
  67.  
  68. Me.WindowState = 1
  69.  
  70. End Sub

De todas formas tendras que cargar con el contenido del fichero RutaApp la variable Respuesta (cambiale el nombre) al comienzo de la sub o al arrancar el programa porque si no te lo va a preguntar siempre que lo ejecutes.

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 18/09/2013 a las 11:38
  #5 (permalink)  
Antiguo 18/09/2013, 14:41
Avatar de eatornini  
Fecha de Ingreso: septiembre-2013
Ubicación: Calama
Mensajes: 10
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: seleccionar y almacenar ruta

Gracias amigo, no entendí lo ultimo, la verdad es que llevo apenas 1 semana en vb6 y no tengo mucho conocimiento.

ahora me funciona, se almacena la ruta, pero al cerrar y abrir la aplicación, vuelve a pedir la ruta :S

aquí dejo el proyecto, amigo podrías revisarlo por favor

https://www.dropbox.com/s/adbbntscbkpgxzs/Ayuda.rar

saludos y gracias
  #6 (permalink)  
Antiguo 18/09/2013, 15:43
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: seleccionar y almacenar ruta

Eso era lo que yo te decia que te pasaria.

Y esta es basicamente la solucion que te daba.


Código vb:
Ver original
  1. Private Sub Command1_Click()
  2.  
  3. Static Respuesta As String ' creamos una variable que no se pierde
  4.  
  5. If Respuesta = "" Then
  6.   If Dir("C:\RutaApp.txt", vbArchive) <> vbNullString Then
  7.     Open "C:\RutaApp.txt" For Input As #1
  8.       Line Input #1, Respuesta
  9.     Close #1
  10.   Else
  11.     Respuesta = "C:\Program Files\KONAMI\Pro Evolution Soccer 6\PES6.exe"
  12.   End If
  13. End If
  14.  
  15. If Dir(Respuesta, vbArchive) = vbNullString Then
  16.  
  17.         CommonDialog1.Filter = "Archivos Ejecutables (*.exe)|*.exe"
  18.  
  19.         CommonDialog1.ShowOpen
  20.  
  21. 'si el usuario selecciona cancelar que salga del sub
  22.  
  23.         If CommonDialog1.FileName = "" Then Exit Sub
  24.  
  25.         Respuesta = CommonDialog1.FileName
  26.    
  27.         Open "C:\RutaApp.txt" For Output As #1
  28.  
  29.           Print #1, CommonDialog1.FileName
  30.  
  31.         Close #1
  32.  
  33. 'Si selecciona un ejecutable que lo abra
  34.  
  35.         Shell CommonDialog1.FileName, vbNormalFocus
  36.  
  37. Else
  38.  
  39. 'En caso de que en la comprobación si exista el ejecutable que lo abra.
  40.  
  41.     Shell Respuesta, vbNormalFocus
  42.  
  43. End If
  44.  
  45. Me.WindowState = 1
  46.  
  47. End Sub

Se puede hacer de muchas formas y esta no es la mejor, pero tendras que aprender equivocandote como todos.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #7 (permalink)  
Antiguo 19/09/2013, 00:39
Avatar de eatornini  
Fecha de Ingreso: septiembre-2013
Ubicación: Calama
Mensajes: 10
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: seleccionar y almacenar ruta

Me funciona bien, salvo un pequeño error, al volver abrir el programa y colocar que vuelva a ejecutar el .exe, lo hace, pero en forma independiente. y el programa lanzar error, señalando que faltan algunos archivos para iniciarse :S

esto me tiene de cabeza :(

Última edición por eatornini; 19/09/2013 a las 00:57
  #8 (permalink)  
Antiguo 19/09/2013, 01:34
Avatar de eatornini  
Fecha de Ingreso: septiembre-2013
Ubicación: Calama
Mensajes: 10
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: seleccionar y almacenar ruta

Cita:
Iniciado por eatornini Ver Mensaje
Me funciona bien, salvo un pequeño error, al volver abrir el programa y colocar que vuelva a ejecutar el .exe, lo hace, pero en forma independiente. y el programa lanzar error, señalando que faltan algunos archivos para iniciarse :S es como si lo ejecutara de forma distinta, a como lo hace normalmente

esto me tiene de cabeza :(
Lo que me llama la atención, es que al eliminar el archivo rutaapp del disco local c, me sigue abriendo el .exe, pero me lanza error :(
  #9 (permalink)  
Antiguo 19/09/2013, 05:03
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: seleccionar y almacenar ruta

No se, a mi me funciona perfectamente.
Como no tengo el juego, cuando no existe el fichero rutaapp.txt me hace buscar el exe y guarda la ruta.
La siguiente vez arranca sin problemas (otro exe, claro, el juego no lo tengo).
Si es el juego el que te da error prueba este codigo.
Hacemos que el programa cambie el directorio de trabajo al del juego a ver si asi pita.

Código vb:
Ver original
  1. Private Sub Command1_Click()
  2.  
  3. Static Respuesta As String ' creamos una variable que no se pierde
  4.  
  5. If Respuesta = "" Then
  6.   If Dir("C:\RutaApp.txt", vbArchive) <> vbNullString Then
  7.     Open "C:\RutaApp.txt" For Input As #1
  8.       Line Input #1, Respuesta
  9.     Close #1
  10.   Else
  11.     Respuesta = "C:\Program Files\KONAMI\Pro Evolution Soccer 6\PES6.exe"
  12.   End If
  13. End If
  14.  
  15. If Dir(Respuesta, vbArchive) = vbNullString Then
  16.  
  17.         CommonDialog1.Filter = "Archivos Ejecutables (*.exe)|*.exe"
  18.  
  19.         CommonDialog1.ShowOpen
  20.  
  21. 'si el usuario selecciona cancelar que salga del sub
  22.  
  23.         If CommonDialog1.FileName = "" Then Exit Sub
  24.  
  25.         Respuesta = CommonDialog1.FileName
  26.    
  27.         Open "C:\RutaApp.txt" For Output As #1
  28.  
  29.           Print #1, CommonDialog1.FileName
  30.  
  31.         Close #1
  32.  
  33.  
  34. End If
  35.  
  36.  
  37. ChDir Left$(Respuesta, Len(Respuesta) - Len(Dir$(Respuesta)))
  38.  
  39. Shell Respuesta, vbNormalFocus
  40.  
  41.  
  42. Me.WindowState = 1
  43.  
  44. End Sub
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #10 (permalink)  
Antiguo 21/09/2013, 05:12
Avatar de eatornini  
Fecha de Ingreso: septiembre-2013
Ubicación: Calama
Mensajes: 10
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: seleccionar y almacenar ruta

te pasaste :D ahora si que si amigo, un millon de gracias por tu ayuda, quedo perfecto, marco como solucionado :D

gracias (Y)

Etiquetas: almacenar, ruta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:09.