[英]C# ActiveX / IE 10 / Multiple Tabs / Get ActiveX MainWindowHandle
我有一個在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的選項卡的句柄?
出於“傳統”的目的,我必須在.NET V2中執行此操作,因此WindowsInteroptHelper成為不可能。
我會這樣做:
獲取控件窗口的Win32 HWND: IntPtr hWnd = this.Handle.ToPointer();
使用GetParent可以向上移動窗口的父級鏈,直到找到帶有Win32類名稱TabWindowClass
的窗口(可以使用GetClassName來獲取類的名稱)。
那就是想要的IE標簽頁的HWND。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.