2012-03-31 79 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

相关问题