这个问题,我在网上找了两天,还是没能解决,哪位大哥能帮我看看,难受。
我的主要代码。
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就一个句柄。
所有豆豆了,全部拿出来了。
取到hanlde还需要教怎么操作句柄么~~
实现的机理不一样,当然handle数量不一样,比如你可以创建一个窗口(一个handle),然后直接里面绘制控件——这不就是只一个handle了。但如果你拖一个button到里面 —— 这就是多个了。
可以买本windows编程了解一下windows原理,这样对于解决很多问题会有很好的思路,无论你将来做android、win还是什么,很多东西原理是一样的,基本解决问题的方法是一样的。
用Selenium?
有没有代码,没用过这个
谢谢,我最后用Ctrl + tab实现了tab切换。
IE的话提供了COM,句柄这种不能100%靠谱
谢谢,我最后用Ctrl + tab实现了tab切换。