Uruchom plik exe z kodu C #


163

Mam odwołanie do pliku exe w moim projekcie C #. Jak wywołać ten plik exe z mojego kodu?

Odpowiedzi:


287
using System.Diagnostics;

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

Jeśli twoja aplikacja potrzebuje argumentów cmd, użyj czegoś takiego:

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

1
startInfo.UseShellExecute = falseto była niesamowita rzecz ... Działało na mnie jak urok! Dziękuję Ci! :)
RisingHerc

Proces @ logganB.lehman zawiesza się na zawsze w exeProcess.WaitForExit (); dowolny pomysł?
Dragon


11

Przykład:

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

Kompilowanie kodu

Skopiuj kod i wklej go do metody Main aplikacji konsolowej. Zastąp „mspaint.exe” ścieżką do aplikacji, którą chcesz uruchomić.


15
W jaki sposób zapewnia to większą wartość niż już utworzone odpowiedzi? Zaakceptowana odpowiedź pokazuje również użycieProcess.Start()
Default

3
WIĘC - dobrze jest pomóc początkującym w uproszczonych przykładach krok po kroku z wieloma szczegółami usuniętymi. Również można używać kapsli: P
DukeDidntNukeEm

Potrzebowałem tylko szybkiego sposobu na wykonanie exe i to było naprawdę pomocne. Dziękuję :)
Sushant Poojary

7

Przykład:

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.