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 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". |