以编程方式运行可执行文件.NET

时间:2010-07-19 20:53:35

标签: .net process executable

我想在.NET服务器端代码中执行一个程序。

到目前为止,我有这个:

    Process p = new Process();  
    p.StartInfo.FileName = "myProgram.exe";
    p.StartInfo.Arguments = " < parameter list here > ";
    p.Start();
    p.Close();

这是一个控制台程序。发生的事情是控制台反复打开和关闭而不会停止。

3 个答案:

答案 0 :(得分:3)

你想要,

Process p = new Process();  
    p.StartInfo.FileName = "myProgram.exe";
    p.StartInfo.Arguments = " < parameter list here > ";
    p.Start();
    p.WaitForExit();

您的代码中发生的事情是您启动该过程并立即关闭它, 你需要的是调用WaitForExit(),它实际上等待进程自己关闭,

在应用关闭之前打印输出:

Process p = new Process();  
p.StartInfo.FileName = "myProgram.exe";
p.StartInfo.Arguments = " < parameter list here > ";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
p.WaitForExit();
Console.WriteLine(p.StandardOutput.ReadToEnd());

答案 1 :(得分:2)

查看BackgroundWorker课程。这是more detailed walkthrough/example的用法。

答案 2 :(得分:0)

该代码不会产生无限循环。它将启动一个程序,然后立即关闭该过程。 (你可能不想关闭它,而是等待进程结束)。