0

我知道我们可以使用Process.Start静态方法来创建独立的进程,但我面临的问题是,每当我关闭我的原始程序时,它最终都会关闭我创建的进程。

我检查了任务管理器/进程资源管理器,发现该进程仍在层次结构中。所以我尝试使用 cmd.exe 调用它(就像一个中间进程),这最终使我的目标程序从进程树中分离出来。但是关闭行为根本没有改变。

我尝试使用两者Application.Current.Shutdown以及this.Close()在程序中关闭我的原始文件,但两者都有相同的行为。似乎我的应用程序正在跟踪所有产生的进程,但我没有写任何类似的东西,并在关闭时将它们杀死。

知道为什么会这样吗?我正在为单击按钮的事件处理程序方法中创建进程,这可能是原因吗?它可以用 Process 类修复还是我需要使用一些较低级别的东西?

用于进程创建的代码:

try
{
   ProcessStartInfo rn = new ProcessStartInfo();
   rn.CreateNoWindow = false;
   rn.UseShellExecute = true;
   rn.FileName = "cmd.exe";
   rn.Arguments = String.Format(" /C start {0} -t:{1} {2}", ExeFile, Pass, User);
   rn.WindowStyle = ProcessWindowStyle.Hidden;
   Process.Start(rn);
}
catch(Exception ec)
{
   MessageBox.Show(String.Format("Unable to Start Client: {0}", ec.Message), "Error Starting Client", MessageBoxButton.OK, MessageBoxImage.Error);

}
Application.Current.Shutdown();
4

1 回答 1

0

检查您的命令“cmd.exe /C start ExeFile -t:pass user”是否正常工作。我认为,ExeFile 崩溃了。

于 2013-05-29T03:39:34.160 回答