C#-当我调用System.Diagnostics.Process.Start时,新进程自动将被终止

时间:2018-09-03 18:10:12

标签: c# process

我从当前C#应用程序调用新进程(C#应用程序),我使用:

Process proc = new Process();
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.Arguments = "/c "+filePath;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.Start();
proc.WaitForExit();

我可以在任务管理器中看到新进程,但是它立即被杀死

我用代码解决了这个问题:

ProcessStartInfo psi = new ProcessStartInfo();
psi.WorkingDirectory = Path.GetDirectoryName(filePath);
psi.FileName = filePath;
psi.ErrorDialog = true;
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
Process proc = Process.Start(psi);

1 个答案:

答案 0 :(得分:1)

您还可以在System.Diagnostic.Process中使用“ cmd.exe”命令运行应用程序 使用:

 System.Diagnostic.Process.Start("cmd.exe /C "+filepath);

此命令将运行,并在运行程序后关闭cmd。 如果要等待结果(可能是错误),可以使用:

 System.Diagnostic.Process.Start("cmd.exe /K "+filepath);