如何强制关闭所有IE进程 - 使用form_unload上的alert()

时间:2015-06-28 10:25:53

标签: c# winforms internet-explorer process kill

我编写了以下代码来关闭所有IE(Internet Explorer)进程。

private void Kill_IE()
{
    Process[] ps = Process.GetProcessesByName("IEXPLORE");

    foreach (Process p in ps)
    {
        p.Kill();
    }
}

问题是一些打开的IE窗口显示警告:

alert("do not close my web site"); //in JavaScript

confirm_box("do you really want to exit?" , "YES|NO"); //in JavaScript
退出前

Unload_Form ),我的程序无法关闭这些窗口。
我如何忽略这些警报并强制关闭那些窗口?

<小时/> 修改:
以下方法无法通过恼人的提醒关闭浏览器......

显示黑色控制台:

Process.Start("taskkill", "/im iexplore.exe /f /t");

隐藏黑色控制台:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "taskkill.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "/f /t /im iexplore.exe";
Process.Start(startInfo);

任何想法?

1 个答案:

答案 0 :(得分:1)

我已经测试了这段代码,它每次都适用于我。我正在使用IE11并打开了生成警报的远程和本地站点,并且进程仍然关闭而没有错误。

我建议将此过程包装在try / catch中,以查看是否存在任何异常,因为我认为错误位于其他地方。

private void Kill_IE()
{
    Process[] ps = Process.GetProcessesByName("IEXPLORE");

    foreach (Process p in ps)
    {
        try
        {
            if (!p.HasExited)
            {
                p.Kill();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(String.Format("Unable to kill process {0}, exception: {1}", p.ToString(), ex.ToString()));
        }
    }
}