Chạy exe từ mã C #


163

Tôi có một tham chiếu tệp exe trong dự án C # của tôi. Làm thế nào để tôi gọi exe đó từ mã của tôi?

Câu trả lời:


286
using System.Diagnostics;

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

Nếu ứng dụng của bạn cần đối số cmd, hãy sử dụng một cái gì đó như thế này:

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 = falselà một điều tuyệt vời ... Nó làm việc cho tôi như một cơ duyên! Cảm ơn bạn! :)
RisingHerc

@ logganB.lehman quá trình treo mãi mãi trên exeProcess.WaitForExit (); bất kỳ ý tưởng?
Rồng


11

Thí dụ:

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

Biên soạn mã

Sao chép mã và dán nó vào phương thức Main của ứng dụng console. Thay thế "mspaint.exe" bằng đường dẫn đến ứng dụng bạn muốn chạy.


15
Làm thế nào điều này cung cấp nhiều giá trị hơn các câu trả lời đã được tạo ra? Câu trả lời được chấp nhận cũng cho thấy việc sử dụngProcess.Start()
Mặc định

3
VÌ VẬY - Sẽ ổn khi giúp người mới bắt đầu với các ví dụ đơn giản, từng bước với nhiều chi tiết bị loại bỏ. Cũng ok để sử dụng mũ: P
DukeDidntNukeEm

Tôi chỉ cần một cách nhanh chóng để thực hiện exe và điều này thực sự hữu ích. Cảm ơn bạn :)
Poojary Sushant

7

Thí dụ:

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

2

Tôi biết điều này đã được trả lời tốt, nhưng nếu bạn quan tâm, tôi đã viết một thư viện giúp việc thực thi các lệnh dễ dàng hơn nhiều.

Kiểm tra nó ở đây: https://github.com/twitchax/Sheller .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.