Как принудительно закрыть все процессы IE - с помощью alert() на form_unload

Я написал коды ниже, чтобы закрыть все процессы 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 ответ

Решение

Я проверил этот код, и он работает каждый раз для меня. Я использую IE11 и открыл как удаленные, так и локальные сайты, которые генерируют оповещения, а процессы по-прежнему закрываются без ошибок.

Я предлагаю обернуть этот процесс в попытку / улов, чтобы посмотреть, не возникли ли какие-либо исключения, так как я считаю, что ошибка кроется в другом месте.

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()));
        }
    }
}
Другие вопросы по тегам