Internet explorer 如何通过单击链接获得对Internet Explorer窗口的IWebBrowser2引用?

Internet explorer 如何通过单击链接获得对Internet Explorer窗口的IWebBrowser2引用?,internet-explorer,com,iwebbrowser2,Internet Explorer,Com,Iwebbrowser2,假设我打开一个新的Internet Explorer窗口,例如,单击HTML链接中带有target=“\u blank”的链接。进一步假设我是通过COM编程实现的。我意识到我可以附加到DWebBrowserEvents2::NewWindow3事件,并在打开新窗口时收到通知。如何获取对新打开窗口的引用,以便也可以对其进行操作 注意事项: 我特别不想取消 NewWindow事件并实例化 并返回一个新的空白浏览器窗口 在ppDisp参数中,如果我能提供帮助 它 我考虑过要找一个 每个IE窗口(使用

假设我打开一个新的Internet Explorer窗口,例如,单击HTML链接中带有target=“\u blank”的链接。进一步假设我是通过COM编程实现的。我意识到我可以附加到DWebBrowserEvents2::NewWindow3事件,并在打开新窗口时收到通知。如何获取对新打开窗口的引用,以便也可以对其进行操作

注意事项:

  • 我特别不想取消 NewWindow事件并实例化 并返回一个新的空白浏览器窗口 在ppDisp参数中,如果我能提供帮助 它
  • 我考虑过要找一个 每个IE窗口(使用FindWindow或其他类似工具),要求 位置,并将其与 这是我的论点,但我不认为 如果目标有一个 重定向在它里面
  • 这是一个自动化测试框架,所以我 特别是推动互联网 浏览器,而不是托管的WebBrowser 控制
  • 我完全知道这将找不到由showModalDialog()创建的窗口

您能否提供更多关于您是如何做到这一点的详细信息?您是否有一个BHO在执行驾驶或某些外部流程?如果是,那是什么?这不是BHO,而是一个外部过程。它恰巧是用C语言编写的,但也可以简单地说是C++、java,甚至是Ruby。我很清楚这种方法面临的UAC和受保护模式问题,但出于这个问题的目的,让我们假设它们不存在。你能提供一些关于你是如何做到这一点的详细信息吗?您是否有一个BHO在执行驾驶或某些外部流程?如果是,那是什么?这不是BHO,而是一个外部过程。它恰巧是用C语言编写的,但也可以简单地说是C++、java,甚至是Ruby。我很清楚这种方法面临的UAC和受保护模式问题,但就这个问题而言,假设它们不存在。