如何以编程方式关闭Microsoft Edge上的选项卡

问题描述 投票:1回答:2

我试图从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");

以及任务经理。有没有办法做到这一点?

c# tabs microsoft-edge
2个回答
0
投票

想出来并编写了一些我需要工作的代码:

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

0
投票

用于杀死Edge浏览器实例的代码

Process[] Edge = Process.GetProcessesByName("MicrosoftEdge");
            foreach (Process Item in Edge)
            {
                try
                {
                    Item.Kill();
                    Item.WaitForExit(3000);
                }
                catch (Exception)
                {
                }
            }
© www.soinside.com 2019 - 2024. All rights reserved.