如何强制关闭所有 IE 进程 - 在 form_unload 上使用 alert()
How force close all IE processes - with alert() on form_unload
我写了下面的代码来关闭所有 IE (Internet Explorer) 进程。
private void Kill_IE()
{
Process[] ps = Process.GetProcessesByName("IEXPLORE");
foreach (Process p in ps)
{
p.Kill();
}
}
问题是某些打开的 IE windows 显示警告:
alert("do not close my web site"); //in JavaScript
或
confirm_box("do you really want to exit?" , "YES|NO"); //in JavaScript
before exit(Unload_Form) 我的程序无法关闭那些 windows.
我怎样才能忽略这些警报并强制关闭那些 windows?
编辑:
以下方法无法关闭带有烦人警报的浏览器...
显示黑色控制台:
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);
有什么想法吗?
我已经测试了这段代码,它每次都对我有效。我正在使用 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()));
}
}
}
我写了下面的代码来关闭所有 IE (Internet Explorer) 进程。
private void Kill_IE()
{
Process[] ps = Process.GetProcessesByName("IEXPLORE");
foreach (Process p in ps)
{
p.Kill();
}
}
问题是某些打开的 IE windows 显示警告:
alert("do not close my web site"); //in JavaScript
或
confirm_box("do you really want to exit?" , "YES|NO"); //in JavaScript
before exit(Unload_Form) 我的程序无法关闭那些 windows.
我怎样才能忽略这些警报并强制关闭那些 windows?
编辑:
以下方法无法关闭带有烦人警报的浏览器...
显示黑色控制台:
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);
有什么想法吗?
我已经测试了这段代码,它每次都对我有效。我正在使用 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()));
}
}
}