Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: GarnoX en 19 Septiembre 2011, 00:02 am



Título: Duda Sobre Visual Basic 6.0
Publicado por: GarnoX en 19 Septiembre 2011, 00:02 am
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:)

Código:
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 :)


Título: Re: Duda Sobre Visual Basic 6.0
Publicado por: raul338 en 19 Septiembre 2011, 00:08 am
El foro de vb es acá (http://foro.elhacker.net/programacion_visual_basic-b50.0/)

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)


Título: Re: Duda Sobre Visual Basic 6.0
Publicado por: GarnoX en 19 Septiembre 2011, 00:12 am
El foro de vb es acá (http://foro.elhacker.net/programacion_visual_basic-b50.0/)
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


Título: Re: Duda Sobre Visual Basic 6.0
Publicado por: raul338 en 19 Septiembre 2011, 00:16 am
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")


Título: Re: Duda Sobre Visual Basic 6.0
Publicado por: GarnoX en 19 Septiembre 2011, 00:32 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 : :-\


Título: Re: Duda Sobre Visual Basic 6.0
Publicado por: raul338 en 19 Septiembre 2011, 01:11 am
Entendiste bien, como hacerlo, ya te dije :xD con InStr y Mid$


Título: Re: Duda Sobre Visual Basic 6.0
Publicado por: GarnoX en 19 Septiembre 2011, 01:34 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 :-\


Título: Re: Duda Sobre Visual Basic 6.0
Publicado por: Hurubnar en 19 Septiembre 2011, 14:26 pm
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
  1. 'Code by Herio
  2. Dim var0 as String
  3.  
  4. 'Cargamos la ruta en la variable var0
  5. var0 = App.Path
  6.  
  7. 'Modificamos la ruta, para conseguir la del gta_sa.exe
  8. var0 = Replace(var0, "Folder1", "gta_sa.exe", , , vbTextCompare)
  9.  
  10. 'Ejecutamos gta_sa.exe
  11. 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.



Título: Re: Duda Sobre Visual Basic 6.0
Publicado por: Elemental Code en 19 Septiembre 2011, 17:57 pm
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ódigo:
C:\Archivos de Programa\Te tiro el rayo
El primer caracter es "C"
El seguno caracter es ":"
y el tercero es "\"


Título: Re: Duda Sobre Visual Basic 6.0
Publicado por: Hurubnar en 19 Septiembre 2011, 18:27 pm
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
  1. Dim var0 as String
  2. 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 (http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5.htm#left-mid-right)

Un saludo,
atte. Herio


Título: Re: Duda Sobre Visual Basic 6.0
Publicado por: GarnoX en 20 Septiembre 2011, 03:05 am
buenos chicos estoy haciendo experimentos :) si me sale bien les aviso :)  :silbar: :silbar:

-----------------------------------------

edit: es buena idea que instale el CD de los msdn de visual basic 6 porque tengo instalado tanto el 6 como el net ultimaste 2010 :)