我有一個表格(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