2015-06-28 2 views
1

Я написал коды ниже, чтобы закрыть все процессы IE (Internet Explorer).Как сила закрыть все процессы IE - с alert() на form_unload

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

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

Проблема некоторые открытые окна показывают предупреждение:

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

или

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

перед выходом (Unload_Form) и моя программа не может закрыть эти окна ,
Как я могу игнорировать эти предупреждения и заставлять закрыть эти окна?


Edit:
Приведенные ниже способы не могут закрыть этот браузер с этой раздражающей дремали ...

Показать черную консоль:

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); 

Любая идея?

+0

Я проверил его снова с вкладкой IE и полем предупреждения, и это сработало. Нет проблем. – dotctor

ответ

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())); 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^