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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (679)

我从当前的C#App调用新进程(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);
提问于
用户回答回答于

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

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

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

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

扫码关注云+社区

领取腾讯云代金券