Jalankan exe dari kode C #


163

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

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

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.


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;

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.