Jalankan exe dari kode C #

163

Saya memiliki referensi file exe di proyek C # saya. Bagaimana cara meminta exe itu dari kode saya?

hari
sumber

Jawaban:

287
using System.Diagnostics;

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

Jika aplikasi Anda membutuhkan argumen cmd, gunakan sesuatu seperti ini:

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
sumber
1
startInfo.UseShellExecute = falseadalah hal yang luar biasa ... Ini bekerja untuk saya seperti pesona! Terima kasih! :)
RisingHerc
@ logganB.lehman proses hang selamanya di exeProcess.WaitForExit (); ada ide?
Naga
11

Contoh:

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

Menyusun Kode

Salin kode dan rekatkan ke metode Utama aplikasi konsol. Ganti "mspaint.exe" dengan jalur ke aplikasi yang ingin Anda jalankan.

miksiii
sumber
15
Bagaimana ini memberikan nilai lebih dari jawaban yang sudah dibuat? Jawaban yang diterima juga menunjukkan penggunaanProcess.Start()
Default
3
JADI - tidak apa-apa untuk membantu pemula dengan contoh langkah demi langkah yang disederhanakan dengan banyak detail yang dihapus. Juga
boleh
Saya hanya perlu cara cepat untuk mengeksekusi exe dan ini sangat membantu. Terima kasih :)
Sushant Poojary
7

Contoh:

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
sumber