我试图从c#代码关闭Microsoft Edge上所有打开的选项卡,但无法使其正常工作。尝试:
Process[] edgeProcessList = Process.GetProcessesByName("MicrosoftEdgeCP");
foreach (Process theprocess in edgeProcessList)
{
if (theprocess.MainWindowHandle != IntPtr.Zero)
{
SetForegroundWindow(theprocess.MainWindowHandle);
SendKeys.SendWait("^{W}");
Thread.Sleep(3000);
}
}
以及:
foreach(Process proc in edgeProcessList.ToList())
{
proc.Kill();
}
但都没有工作。这些过程确实会被杀死但新的过程会立刻重新出现。
在调试之后显示:
Process[] newProcessList = Process.GetProcessesByName("MicrosoftEdgeCP");
以及任务经理。有没有办法做到这一点?
想出来并编写了一些我需要工作的代码:
var tabs = driver.WindowHandles;
var x = Enumerable.Range(1, tabs.Count - 1).Reverse();
foreach(var i in Enumerable.Range(1, tabs.Count-1).Reverse())
{
Console.WriteLine(i);
driver.SwitchTo().Window(tabs[i]);
driver.Close();
driver.SwitchTo().Window(tabs[i - 1]);
}
用于杀死Edge浏览器实例的代码
Process[] Edge = Process.GetProcessesByName("MicrosoftEdge");
foreach (Process Item in Edge)
{
try
{
Item.Kill();
Item.WaitForExit(3000);
}
catch (Exception)
{
}
}