如何使用C# 控制IE浏览器切换页面tab

2020-06-28 14:52发布

问题:

这个问题,我在网上找了两天,还是没能解决,哪位大哥能帮我看看,难受。

我的主要代码。
SHDocVw.ShellWindows IETabs = new SHDocVw.ShellWindows();
foreach (SHDocVw.ShellBrowserWindow ieTab in IETabs) {
if (Path.GetFileNameWithoutExtension(ieTab.FullName).ToLower().Equals("iexplore")) {
IntPtr int32 = (IntPtr)ieTab.HWND;
SwitchToThisWindow(int32, true);
}
}

用spy++发现ie各个tab是一个句柄,也就是int32 循环出来的值都一样,content是各自不同的句柄。
Chrome所有tab content就一个句柄。

所有豆豆了,全部拿出来了。

回答1:

取到hanlde还需要教怎么操作句柄么~~

实现的机理不一样,当然handle数量不一样,比如你可以创建一个窗口(一个handle),然后直接里面绘制控件——这不就是只一个handle了。但如果你拖一个button到里面 —— 这就是多个了。

可以买本windows编程了解一下windows原理,这样对于解决很多问题会有很好的思路,无论你将来做android、win还是什么,很多东西原理是一样的,基本解决问题的方法是一样的。



回答2:

用Selenium?



回答3:

IE的话提供了COM,句柄这种不能100%靠谱



标签: c# windows ie