Foros del Web » Programación para mayores de 30 ;) » .NET »

VB 2005 - Ejecutar .exe

Estas en el tema de VB 2005 - Ejecutar .exe en el foro de .NET en Foros del Web. Hola amigos!!! quiero ejecutar un exe desde mi aplicación y he encontrado el comando Shell, pero por lo que veo este devuelve un entero y ...
  #1 (permalink)  
Antiguo 03/10/2008, 09:35
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
VB 2005 - Ejecutar .exe

Hola amigos!!!
quiero ejecutar un exe desde mi aplicación y he encontrado el comando Shell, pero por lo que veo este devuelve un entero y lo que quiero es mostrar el log de lo que hace dicha aplicación que abro.


Me podeis hechar un cable?



Gracias
  #2 (permalink)  
Antiguo 03/10/2008, 09:37
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: VB 2005 - Ejecutar .exe

Usa el objeto Process

y ese te regresa el output de tu aplicacion.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 03/10/2008, 09:54
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: VB 2005 - Ejecutar .exe

y como lo muestro luego?
tengo que ejecutar algo como

miarchivo.exe s 3 0 999 c:\ruta\archiv.extension


gracias por tu rapidez
  #4 (permalink)  
Antiguo 03/10/2008, 10:26
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: VB 2005 - Ejecutar .exe

Process miproceso = new Process();

miproceso.StartInfo.FileName = "MIARCHIVO.exe";
miproceso.UseShellExecute=false;
miproceso.StartInfo.Arguments = "s 3 0 999 c:\ruta\archiv.extension";
miproceso.StartInfo.RedirectStandardOutput = true;
miproceso.Start();
string output = miproceso.StandardOutput.ReadToEnd();


output tendra todo el resultado que arrojo tu aplicacion de consola.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5

Última edición por Peterpay; 06/10/2008 a las 06:49
  #5 (permalink)  
Antiguo 06/10/2008, 01:37
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: VB 2005 - Ejecutar .exe

mil gracias de nuevo, aunque en vb no existen las mismas funciones, almenos he cogido la idea, espero que me vaya bien.

A continuacion te pongo las lineas de tu codigo que en VB no existen

miproceso.UseShellExecute=false;
miproceso.StartInfo.RedirectStandardOutput = true;

y después imagino que miproceso es una variable del tipo Process como notePad.
  #6 (permalink)  
Antiguo 10/10/2008, 01:51
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: VB 2005 - Ejecutar .exe

sigo sin conseguirlo, ahora tengo este código:
Código:
        Console.WriteLine(Shell(My.Application.Info.DirectoryPath & "\drivers\wmplw.exe s 3 0 " & n & My.Application.Info.DirectoryPath & "\" & folderAscGen & My.Settings.nombreArchivo, AppWinStyle.MaximizedFocus, False, -1))
la cuestión es que quiero ejecutar este exe
wmplw.exe s 3 0 C:\path1\pathN\default.asc

y deseo mostrar el log de dicho archivo.


Gracias de nuevo
  #7 (permalink)  
Antiguo 10/10/2008, 14:24
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 19 años, 6 meses
Puntos: 8
Respuesta: VB 2005 - Ejecutar .exe

Hola tengo una duda...........

wmplw.exe s 3 0 C:\path1\pathN\default.asc

entiendo que wmplw.exe es un ejecutable
pero que es: s 3 0 C:\path1\pathN\default.asc

son parametros o que?

si son parametros ejecutalo asi:
System.Diagnostics.Process.Start(@"C:\Documents and Settings\" , "s", "3", "0", @"C:\path1\pathN\default.asc");
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #8 (permalink)  
Antiguo 13/10/2008, 01:21
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: VB 2005 - Ejecutar .exe

si, son parametros.

Al final encontre este codigo
Código:
    Private Sub btEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btEnviar.Click
        Dim strArgumentos As String = "127.0.0.1"
        Dim strExe As String = "ping"


        'Console.WriteLine(Shell(My.Application.Info.DirectoryPath & "\drivers\wmplw.exe s 3 0 " & n & My.Application.Info.DirectoryPath & "\" & folderAscGen & My.Settings.nombreArchivo, AppWinStyle.MaximizedFocus, False, -1))
        'proceso.Start(My.Application.Info.DirectoryPath & "\drivers\wmplw.exe", " s 3 0 " & n & My.Application.Info.DirectoryPath & "\" & folderAscGen & My.Settings.nombreArchivo)

        'Armar el proceso a ejecutar
        Dim startInfo As ProcessStartInfo = New ProcessStartInfo(strExe, strArgumentos)

        'Para poder manupular la salida indicamos que no se ejecute el shell
        startInfo.UseShellExecute = False

        '(...)UseShellExecute debe ser true si se desea establecer ErrorDialog en true(...)
        startInfo.ErrorDialog = False

        'Sin ventana...
        startInfo.CreateNoWindow = True

        'Deseamos manipular la salida del proceso, para ello debemos establecer que se redirija la salida
        startInfo.RedirectStandardOutput = True

        Try
            Dim p As Diagnostics.Process = System.Diagnostics.Process.Start(startInfo)

            'Leemos la salida (objeto StreamReader)
            Dim sr As System.IO.StreamReader = p.StandardOutput
            Dim cadenaSalida As String = sr.ReadToEnd()
            sr.Close()

            'La visualizamos en el textbox. Un ejemplo basico ;)...
            My.Forms.FrmCaptura.txtbxCaptura.Text = cadenaSalida
            My.Forms.FrmCaptura.Show()
        Catch ex As Exception
            My.Forms.FrmCaptura.txtbxCaptura.Text = (ex.Message)
            My.Forms.FrmCaptura.Show()
        End Try
    End Sub
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 07:33.