从浏览器获取窗口和选项卡

时间:2015-10-25 06:08:30

标签: c# google-chrome internet-explorer firefox

这是一个非常简单的问题,有几个部分,我不完全确定是可能的。

  1. 选择浏览器,任何浏览器。这可以在任何浏览器中完成。我最初的愿望是Chrome,但它似乎是最不可能工作的人。
  2. 需要有办法区分不同的窗口。
  3. 它需要能够读取给定窗口中所有打开的选项卡的URL。
  4. 阅读浏览器窗口的大小和位置(我已经有了这个功能,所以它不是必需的。)
  5. 我有一个现有的Windows窗体应用程序。理想情况下,我希望能够打开浏览器窗口并保持对它的某些了解。基本上在重新加载文件之后,我希望它能够以与保存时完全相同的方式打开浏览器窗口。我并不关心选项卡中的任何信息,因此我真正需要的是能够重新打开已打开的网址,并知道哪个网址属于哪个窗口以及按哪个顺序排列。

    到目前为止,我已经能够阅读所有打开的标签页,但我还无法区分哪个标签属于哪个窗口,因此无法正常运行。老实说,除非某种参考组件(到目前为止我还没能找到),我根本无法做到这一点。但是,也许有人知道这样做的方法。

1 个答案:

答案 0 :(得分:0)

我对此问题感到困惑,但我的猜测是您正在开发一个应用程序,并且您希望能够获得所有打开的浏览器窗口,获取每个窗口中打开的选项卡列表,并获取每个打开选项卡的URL。

每个浏览器都会有所不同,因为每个浏览器的结构都不同,而且你会做一些板下的东西/黑客来完成这项工作。

此处有一个相当完整的答案,说明如何获取打开标签的网址:How can I get URLs of open pages from Chrome and Firefox?
它涵盖了IE(在问题中),Firefox,Opera和Chrome。

就获取打开的浏览器窗口而言,您可以对USER32 EnumWindows API进行一些研究。 http://pinvoke.net/default.aspx/user32.EnumWindows