如何使用我的网址关闭打开的浏览器
当前正在尝试使用以下代码,如果浏览器未运行其他任何功能,则该代码正在运行。因此,我的代码打开浏览器并执行我的过程,然后关闭它。
如果浏览器已被其他用途打开,我的代码将打开新的浏览器,但关闭所有打开的浏览器。我只想关闭通过代码打开的最后一个浏览器。
//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”被视为子级。 如果已经打开浏览器,则新打开的浏览器将充当子浏览器,并且面临关闭它的问题。
我自己只需要关闭我通过代码打开的最后一个。怎么做?请给我一个答案。
谢谢。