C#ActiveX/IE 10/多个选项卡/获取ActiveX主窗口句柄
我有一个ActiveX项目在IE10中愉快地运行 出现了一种情况,需要我获取控件运行所在选项卡的MainWindowHandle 以下代码返回IE的MainWindowHandle,而不是运行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
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
- 那将是通缉犯标签的第六条