C#-关闭打开的浏览器,该浏览器具有我的网址

时间:2018-08-13 12:01:33

标签: c#

如何使用我的网址关闭打开的浏览器

当前正在尝试使用以下代码,如果浏览器未运行其他任何功能,则该代码正在运行。因此,我的代码打开浏览器并执行我的过程,然后关闭它。

如果浏览器已被其他用途打开,我的代码将打开新的浏览器,但关闭所有打开的浏览器。我只想关闭通过代码打开的最后一个浏览器。

//Main program
Process[] localByName = Process.GetProcessesByName("iexplore");
int procCnt = localByName.Count();
if (procCnt == 0)
{
      Process proc = Process.Start("iexplore.exe", "https://www.web.com/");
      killChildren(proc.Id);
}
else if (procCnt >= 1)
{
      Process proc = Process.Start("iexplore.exe", "https://www.web.com/");
      int existIEid = 0;
      for (int i = 0; i < localByName.Count(); i++)
      {
            existIEid = localByName[i].Id;
      }  
      killChildren(existIEid);
}

//Kill process
private static void killChildren(int parentPID)
{
      ManagementObjectSearcher searcher = new ManagementObjectSearcher
                ("Select * From Win32_Process Where ParentProcessID=" + parentPID);
      ManagementObjectCollection moc = searcher.Get();
      foreach (ManagementObject mo in moc)
      {
          killChildren(Convert.ToInt32(mo["ProcessID"]));
      }
      try
      {
          Process proc = Process.GetProcessById(parentPID);
          proc.Kill();
      }
      catch (ArgumentException)
      {
          // Process already exited.
      }
  }

在任务管理器中观察到,“ iexplorer”被视为父级,“ iexplorer * 32”被视为子级。 如果已经打开浏览器,则新打开的浏览器将充当子浏览器,并且面临关闭它的问题。

我自己只需要关闭我通过代码打开的最后一个。怎么做?请给我一个答案。

谢谢。

0 个答案:

没有答案