Duda Sobre Visual Basic 6.0

Iniciado por GarnoX, 19 Septiembre 2011, 00:02 AM

0 Miembros y 3 Visitantes están viendo este tema.

GarnoX

Hola buenos tardes:)
Tengo una pequeña duda he estado leyendo sus guias de hace un buen tiempo y se me ocurrio la idea de crear un launcher
para  X cosa  pero el problema llega cuando yo quiero usar  los exe para ejecutarlo en su mismo directorio

el codigo que tengo en vb 6.0 lo llevo asi:)

Private Sub Command1_Click()
On Error GoTo error:
If Shell(App.Path & "\gta_sa.exe", vbNormalFocus) Then
Else
error:
MsgBox ("No se encontro el Archivo")
End If


hay se que tengo el código bien porque solo tengo que meter elProyecto.exe en la carpeta del juego..

la cosa cambia cuando lo que yo quiero hacer  es Tener el proyecto.exe Fuera de la Carpeta del juego  llame al juego igual pero espeficicando la carpeta..


Gracias Por la ayuda :)

raul338

El foro de vb es acá

Y en lugar de usar App.Path, deberias guardar la ruta completa en un string (ya sea leyendo de un archivo de configuracion, por ejemplo)

GarnoX

Cita de: raul338 en 19 Septiembre 2011, 00:08 AM
El foro de vb es acá
Y en lugar de usar App.Path, deberias guardar la ruta completa en un string (ya sea leyendo de un archivo de configuracion, por ejemplo)

Ok... Pero  yo el juego lo tengo En una Carpeta en el usb :) y cada vez cambia la Letra eso seria un problema cuando  por X cosa la Unidad me dejara de ser E:\


Por cierto:

si el foro de Vb es ese pero por ningun lado vi dudas o preguntas en el :) asi que la puse aca Si hay agun moderador que me haga el favor de mover el post  Thanks so much

raul338

Como que no viste preguntas? :xD hay varios hilos con dudas ahí :P

Entonces, Te conviene tomar la unidad activa del App.Path (haciendo un Instr + Mid$ buscando los ":" para obtener la letra de la unidad) y de ahi agregarle la ruta relativa :P

Ej

Shell(strLetraUnidad & ":\Juegos\MiJueguito.exe")

GarnoX

Cita de: raul338 en 19 Septiembre 2011, 00:16 AM
.............................. Te conviene tomar la unidad activa del App.Path (haciendo un Instr + Mid$ buscando los ":" para obtener la letra de la unidad) y de ahi agregarle la ruta relativa :
ej:
Shell(strLetraUnidad & ":\Juegos\MiJueguito.exe")

no entendí :(

Lo que me quieres decir que es mas Facil App.path q llame la ubicacion donde esta ejecutando el Proyecto.exe y  Verifique la Letra  una vez verificada Dejarle el string con la Supuesta Ruta Por ejemplo "X:\Juegos\MiJueguito.exe") donde X sera La Variable de la Letra de la unidad...

Ok eso fue lo que  :xD yo entendi pero no entendi como hacerlo : :-\

raul338

Entendiste bien, como hacerlo, ya te dije :xD con InStr y Mid$

GarnoX

Cita de: raul338 en 19 Septiembre 2011, 01:11 AM
Entendiste bien, como hacerlo, ya te dije :xD con InStr y Mid$

pero la cosa es que no se usar las funciones  instr y mid :-\

Hurubnar

#7
Buenas GarnoX:

Al conectar la unidad flash al PC, la ruta de este archivo (el que ejecutará el juego) sería:
X:\Folder1

Y el path de gta_sa.exe sería:
X:\

Pues bien, si guardamos la ruta X:\Folder1 en una variable y logramos eliminar la siguiente parte: Folder1  y añadir la cadena de texto gta_sa.exe, lograremos la ruta del ejecutable gta_sa.exe, es decir: X:\gta_sa.exe


Código (vb) [Seleccionar]
'Code by Herio
Dim var0 as String

'Cargamos la ruta en la variable var0
var0 = App.Path

'Modificamos la ruta, para conseguir la del gta_sa.exe
var0 = Replace(var0, "Folder1", "gta_sa.exe", , , vbTextCompare)

'Ejecutamos gta_sa.exe
Shell(var0)


Es algo primitivo, pero no es que tenga grandes conocimientos de Visual Basic 6.0 ... Aún así, espero que te ayude.

Un saludo,
atte. Herio

PD No lo he testeado.


Elemental Code

pero usa la funcion left :P

si o si la letra de la unidad va a ser la primera desde la izquierda.
La segunda van a tener que ser los dos puntos :
y la tercera una contrabarra \

ej:
C:\Archivos de Programa\Te tiro el rayo
El primer caracter es "C"
El seguno caracter es ":"
y el tercero es "\"

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas

Hurubnar

Elemental Code tiene razón, yo ni me acordaba de la función left (la más simple y eficaz para lo que quieres hacer).

Para lograr la letra de la unidad te bastaría con:

Código (vb) [Seleccionar]
Dim var0 as String
var0 = Left(App.Path, 1)


Por lo que solo faltaría sumarle a la variable var0 la ruta restante de gta_sa.exe

Aquí hay información sobre esta y otras funciones (muy simple):
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5.htm#left-mid-right

Un saludo,
atte. Herio