Ejecute un exe desde el código C #

163

Tengo una referencia de archivo exe en mi proyecto C #. ¿Cómo invoco ese exe desde mi código?

hari
fuente

Respuestas:

286
using System.Diagnostics;

class Program
{
    static void Main()
    {
        Process.Start("C:\\");
    }
}

Si su aplicación necesita argumentos de cmd, use algo como esto:

using System.Diagnostics;

class Program
{
    static void Main()
    {
        LaunchCommandLineApp();
    }

    /// <summary>
    /// Launch the application with some options set.
    /// </summary>
    static void LaunchCommandLineApp()
    {
        // For the example
        const string ex1 = "C:\\";
        const string ex2 = "C:\\Dir";

        // Use ProcessStartInfo class
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.CreateNoWindow = false;
        startInfo.UseShellExecute = false;
        startInfo.FileName = "dcm2jpg.exe";
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;
        startInfo.Arguments = "-f j -o \"" + ex1 + "\" -z 1.0 -s y " + ex2;

        try
        {
            // Start the process with the info we specified.
            // Call WaitForExit and then the using statement will close.
            using (Process exeProcess = Process.Start(startInfo))
            {
                exeProcess.WaitForExit();
            }
        }
        catch
        {
             // Log error.
        }
    }
}
Logan B. Lehman
fuente
1
startInfo.UseShellExecute = falsefue algo increíble ... ¡Me funcionó de maravilla! ¡Gracias! :)
RisingHerc
El proceso @ logganB.lehman se bloquea para siempre en exeProcess.WaitForExit (); ¿alguna idea?
Dragón
11

Ejemplo:

System.Diagnostics.Process.Start("mspaint.exe");

Compilando el Código

Copie el código y péguelo en el método Principal de una aplicación de consola. Reemplace "mspaint.exe" con la ruta a la aplicación que desea ejecutar.

miksiii
fuente
15
¿Cómo proporciona esto más valor que las respuestas ya creadas? La respuesta aceptada también muestra el uso deProcess.Start()
Predeterminado
3
Entonces, está bien ayudar a un principiante con ejemplos simplificados, paso a paso, con muchos detalles eliminados. También está bien usar mayúsculas: P
DukeDidntNukeEm
Solo necesitaba una forma rápida de ejecutar el exe y esto fue realmente útil. Gracias :)
Sushant Poojary
7

Ejemplo:

Process process = Process.Start(@"Data\myApp.exe");
int id = process.Id;
Process tempProc = Process.GetProcessById(id);
this.Visible = false;
tempProc.WaitForExit();
this.Visible = true;
Hamid
fuente