2012-03-31 115 views
3

任何人都可以告訴我如何關閉按鈕上的.exe文件使用c#。我有如何使用C#如下運行按鈕點擊exe文件的想法:如何關閉按鈕上的.exe應用程序點擊

string str = @"C:\windows\system32\notepad.exe"; 
process.StartInfo.FileName = str; 
process.Start(); 

但誰能告訴我如何關閉在C#中的按鈕,點擊.EXE應用程序?

回答

1

你可以使用:

Process.Kill(); 

或者殺死記事本的所有實例,你可以這樣做:

foreach (var process in Process.GetProcessesByName("notepad")) { 
    process.Kill(); 
} 
+0

我不認爲問題是如何殺死計算機上的所有記事本。 – svick 2012-03-31 12:24:31

+1

我認爲它幾乎告訴OP如何在場景中使用它。 – nawfal 2012-03-31 12:32:28

+0

@nawfal,它現在做,但是當我寫我的評論時,這個答案只是沒有解釋的第二段代碼。 – svick 2012-03-31 12:43:23

0
processes = Process.GetProcessesByName(procName); 
    foreach (Process proc in processes) 
    { 
     if(proc.MainWindowTitle.equals(myTitle)) 
     {   
     proc.CloseMainWindow(); 
     proc.WaitForExit(); or use tempProc.Close(); 
     } 
} 
+3

爲什麼你使用'GetProcessById()'你已經有一個'Process'? – svick 2012-03-31 12:16:52

+0

我已經先選擇了proccess,然後迭代它們以找到關於標題欄文本的過程,然後關閉它 – 2012-03-31 12:19:07

+0

但這並不能解釋我在問什麼。你爲什麼不簡單地在'if'中調用'proc.CloseMainWindow()'? – svick 2012-03-31 12:21:24

4

我想你想打電話CloseMainWindow()Process。這類似於單擊窗口的關閉按鈕,所以它可能不會真正關閉應用程序。

例如,如果用戶在窗口中編輯了一些文本但未保存,則會顯示「您要保存更改嗎?」對話框。

如果您想真正關閉應用程序,無論如何,您可以使用Kill()。這可能會導致數據丟失(對文件的編輯不會被保存),但這對您來說可能不是問題。如果MDI child window

private void btnClose_Click(object sender, EventArgs e) 
    { 
     Close(); 
    } 

這將關閉當前窗口:

1

您應該在按鈕下方寫點擊這樣的事情。否則它會關閉應用程序(假設你只有一個窗口打開)。

+0

我認爲查詢是關於關閉一個進程而不是關閉MDI窗口。 – 2013-02-06 06:35:45

相關問題