Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: washandwear en 14 Octubre 2006, 10:57 am



Título: Problema al Ejecutar .EXE desde Visual Basic
Publicado por: washandwear en 14 Octubre 2006, 10:57 am
Trabajando en VB NET

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim pat As String = Directory.GetCurrentDirectory()
        cdialogo.Title = "Selecciona el Archivo a Depurar"
        cdialogo.Filter = "Ficheros soportados|*.*"
        cdialogo.FileName() = Label1.Text()
        regresa = cdialogo.ShowDialog()
        Label1.Text = cdialogo.FileName()
        System.IO.File.Copy(Label1.Text, pat & "\" & "vb.txt", True)       
   Label3.Text = pat
    End Sub





Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click       
        Process.Start("dep.exe")               
    End Sub

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


Tengo una aplicacion con dos botones "para no redundar en lo que hace lo demas" , en el primer boton busca el archivo x y lo copia como txt dentro del directorio
desde donde se corre la APLICACION, es decir lo copio por que lo necesito como temporal para poder manipularlo con el boton 2

Si realizo esos pasos secuenciados es decir boton 1 primero y boton 2 despues


Me aparece este error: Lo cual dice que no encuentra el archivo que le pido
osea dep.exe  (para aclarar dep.exe esta dentro del directorio de la APLICACION,"lo cual supongo que deberia correrlo")

Error :
-------------------------------------------------------------------------------------------
An unhandled exception of type 'System.ComponentModel.Win32Exception' occurred in system.dll

Additional information: The system cannot find the file specified
---------------------------------------------------------------------------------------------


Pero si presiono el boton 2 primero obviamente copiando antes "YO"  manualmente el archivo txt al directorio de la APLICACION  lo ejecuta sin problemas
descartando las posibilidades de que mi dep.exe este mal


Aclararando:

La funcion
        System.IO.File.Copy(Label1.Text, path & "\" & "vb.txt", True) 

Se que esta correcta por que en verdad si lo copia en donde yo quiero y lo puedo abrir con el notepad "solo para comprobar que lo hizo bien", la cuestion radica al momento de ejecutarlo
con el boton 2,por lo cual no creo que mi falla sea la funcion copiar, Lo que me hace pensar eso, es que si no  se perdera el path origen de la aplicacion al momento de copiar el archivo o que sucede?


Para que no me =( regañen que busque antes de postear , ya lo intente de estas maneras por separado cada una y nomas me despliega el CMD.exe donde se supone que se ejecuta mi applic.exe
pero se queda nomas abierta y no hace nada


   Dim cadena As String

Forma UNO
        cadena = Label3.Text & "\" & "dep.exe"    ' label3 esta en la funcion de arriba
        System.Diagnostics.Process.Start(cadena)     
Forma DOS
      System.Diagnostics.Process.Start("dep.exe")       
       
Forma TRES
       System.IO.File.Open(cadena, FileMode.Open)

Forma CUATRO
       Shell(cadena, AppWinStyle.NormalFocus, True)


el path que me esta desplegando la variable cadena , no tiene nada extraño me dice donde se encuentra el archivo
  por decir C:\hola mundo\dep.exe



:@ y Saben lo mas frustrante es que lo intente de esta forma y salio

Es decir al boton dos tambien le agregue un OpenFileDialog  , pero pues no quiero eso.
No quiero abrir un cuadro de dialogo primero para buscar el archivo que quiero copiar  y ABRIR DE NUEVO otro cuadro de dialogo para buscar
la dep.exe. Por lo mismo le estaba intentando como las otras cuatro opciones de arriba

Asi si sale:

        'abrelo.Title = "Selecciona Ejecutable"
        'abrelo.Filter = "Ejecutable|*.*"
        'abrelo.FileName() = Label3.Text()
        'cdialogo.ShowDialog()
        'Label3.Text = cdialogo.FileName()
        'System.Diagnostics.Process.Start(Label3.Text)




Osea que puede ser?? no se si a alguien le ha sucedido =S  ??

En verdad apreciaria mucho su ayuda


Título: Re: Problema al Ejecutar .EXE desde Visual Basic
Publicado por: karmany en 14 Octubre 2006, 17:13 pm
Eso es probablemente porque al pulsar primero el botón 1 y luego el botón 2, la ruta de la aplicación te la pone por defecto de donde has cogido el anterior archivo, me explico:
Si el archivo que has copiado, lo has cogido del escritorio, cuando pulses el botón 2 puedes poner por ej. esto:

 
Código:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim ruta As String
        ruta = Directory.GetCurrentDirectory & "\dep.exe"
        Process.Start(ruta)
    End Sub

y verás cómo la ruta (GetCurrentDirectory) , no da la ruta de tu aplicación que es donde debe estar tu dep.exe, sino que te da como resultado el escritorio.. la solución está, por lo tanto en modificar sencillamente esa "ruta".