C#ActiveX/IE 10/多个选项卡/获取ActiveX主窗口句柄

C#ActiveX/IE 10/多个选项卡/获取ActiveX主窗口句柄,c#,activex,C#,Activex,我有一个ActiveX项目在IE10中愉快地运行 出现了一种情况,需要我获取控件运行所在选项卡的MainWindowHandle 以下代码返回IE的MainWindowHandle,而不是运行ActiveX控件的选项卡: Process.GetCurrentProcess().MainWindowHandle 如果运行此代码,它将根据打开的选项卡数量返回多个句柄: Process[] IEPROCS = Process.GetProcessesByName("iexplore"); fo

我有一个ActiveX项目在IE10中愉快地运行

出现了一种情况,需要我获取控件运行所在选项卡的MainWindowHandle

以下代码返回IE的MainWindowHandle,而不是运行ActiveX控件的选项卡:

 Process.GetCurrentProcess().MainWindowHandle
如果运行此代码,它将根据打开的选项卡数量返回多个句柄:

 Process[] IEPROCS = Process.GetProcessesByName("iexplore");
 foreach(Process Proc in IEPROCS) {

     //output code
     Proc.MainWindowHandle.ToString();

 }
那么,如何确定ActiveX正在运行的选项卡的句柄呢

出于“传统”目的,我必须在.NET V2中执行此操作,因此WindowsInteroptHelper是不可能的。

我将执行以下操作:

  • 获取控件窗口的Win32 HWND:
    IntPtr HWND=this.Handle.ToPointer()

  • 用于遍历窗口的父链,直到找到一个具有Win32类名的窗口
    TabWindowClass
    (可用于获取类的名称)

  • 那将是通缉犯标签的第六条