Process.Kill不适用于与默认Web浏览器关联的进程

时间:2015-09-20 03:10:48

标签: c#

我在C#中编写了一个控制台应用程序,它在以下命令中打开了一个浏览器。

Process webprocess =  Process.Start("http://www.hashgurus.com");

但是在完成工作后我想关闭浏览器。我试图杀死这个过程,但它不起作用。

webprocess.Kill();

2 个答案:

答案 0 :(得分:0)

Process webBrowser = Process.Start( url );
webBrowser.WaitForExit();
webBrowser.Kill();
webBrowser.WaitForExit();

注意我不知道大多数现代网络浏览器都可以使用多进程浏览器。如果您想确定,请使用递归kill-all-child-processes方法来确保树中的所有子进程都被终止。但是我相信多进程浏览器中的子进程进程会检测他们的父进程是否被杀死,然后在那种情况下提交仪式seppuku。

答案 1 :(得分:0)

您可以尝试获取所有进程的列表并迭代它们并杀死您想要的进程。您需要使用System.Diagnostics

下面介绍一些如何运作的步骤:

  1. 制作一系列流程
  2. 将数组中的项目设置为所有正在运行的进程(我认为使用诊断程序有类似GetProcesses()方法)
  3. 对于数组中的每个进程
  4. 检查窗口的标题(我认为是.MainWindowTitle
  5. 如果是要杀死的浏览器,请终止该进程(例如检查进程名称是否为“chrome”,如果是,则kill