我在IE10中有一个愉快地运行的ActiveX项目。
出现了一种情况,需要我获取运行控件的选项卡的MainWindowHandle。
以下代码返回IE的MainWindowHandle - 而不是运行ActiveX控件的选项卡:
Process.GetCurrentProcess().MainWindowHandle
如果我运行此代码,它会返回多个句柄,具体取决于打开的标签数量:
Process[] IEPROCS = Process.GetProcessesByName("iexplore");
foreach(Process Proc in IEPROCS) {
//output code
Proc.MainWindowHandle.ToString();
}
那么如何确定运行ActiveX的选项卡的句柄?
对于“Legacy”目的,我必须在.NET V2中执行此操作,因此WindowsInteroptHelper是不可能的。
答案 0 :(得分:1)
我会这样做:
获取控件窗口的Win32 HWND:IntPtr hWnd = this.Handle.ToPointer();
使用GetParent走向父窗口链,直到找到一个Win32类名为TabWindowClass
的窗口(GetClassName可用于获取其名称类)。
这将是想要的IE标签的HWND。