在IE中查找活动选项卡或URL或IntPtr windowHandle

时间:2012-08-31 21:00:35

标签: c# internet-explorer

我有一个IEView,它有很多IEWindows,每个IEWindow都有一个IETab,每个IETab都有选项卡的窗口句柄和该选项卡的url。

我目前正在使用

 WindowStateChanged(uint dwWindowStateFlags, uint dwValidFlagsMask)

了解标签何时更改。我不知道的是在启动时已经存在IE,当前活动选项卡是什么?如果我可以获得活动URL,我可以找到活动选项卡或者如果我可以获得活动选项卡窗口句柄,我可以获得活动选项卡。也许我应该爬上树并尝试getSelectedTabIndex来确定活动标签,因为我知道我的IETabs按照它们在IE中的确切顺序添加,我觉得这很有趣,可能不是同时发生的。

有谁知道如何

  1. 获取活动标签句柄或
  2. 获取活动标签的网址,以便我可以查找标签或
  3. 我将如何获取选项卡控件并获取所选选项卡的索引
  4. 或者可能找到专注的IntPtr句柄,因为此时的窗口正在成为焦点,并且希望该标签被认为是关注的对象?
  5. 感谢, 迪恩

1 个答案:

答案 0 :(得分:0)

嗯,我不确定这是否正确,但所选的Tab总是使用Winspy ++在组件列表中的最后一个Classname = FrameTab。当我切换标签时,列表的顺序会发生变化,所选的顺序会始终排在最后。这是针对IE 9 ...不确定其他版本。

所以,我认为使用Tab中的IntPtr句柄,我可以将树上升到Classname = IEFrame并获取Classname = FrameTab类型的子节点,最后一个是选定的选项卡。