我有一个表格(MainForm)。 MainForm有一个按钮,可拨打Editor.exe。 exe文件呼叫者代码显示在下面:如何关闭子进程而不影响父进程
private void InsertEquaButtonClick(object sender, EventArgs e)
{
Process p = Process.Start(Editor.exe);
string test = p.ProcessName;
p.WaitForExit();
}
Editor.exe是一个单独的可执行的文件,它提供了一个用户输入形式;用户在该窗体中输入一个图像文件后,点击确定按钮,关闭该图像并放入MainForm。
这里是OK按钮的代码:
.......
encoder.Save(s);// Save image to MainForm
var processes = Process.GetProcessesByName("Editor");
foreach (Process proc in processes)
{
proc.CloseMainWindow(); // Propblem is here
// proc.Close();
}
..........
的问题是,当我点击编辑OK按钮,所有的应用程序(MainForm,然后Editor.exe)关闭。
那么,如何杀掉Editor.exe(Child Process)而不杀死MainForm进程(Parent Process)呢?
我一直尝试:
proc.close()
和
pro.Kill()
和
...
,但他们没有工作。
非常感谢您的帮助。
出于好奇,为什么要调用一个完全独立的可执行文件,而不是让编辑器作为项目/解决方案的一部分?另外,你有没有在断点中检查'processes'的内容? – Logarr
为什么你需要手动关闭进程?你不能在OK按钮处理程序中执行'this.Close()'吗? –
@Logarr:因为Editor.exe是另一个我不能放到我的项目中的项目。当我在进程内容编辑器进程和MainForm进程中调试时。但是当我关闭编辑器进程然后mainform进程立即关闭 – tiendv