簡體   English   中英

C#ActiveX / IE 10 /多個選項卡/獲取ActiveX MainWindowHandle

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM