[英]C# - Get index of Internet Explorer tabs
我正在搜索並試圖整天解決這個問題,所以我認為是時候問了。
在我的C#代碼中,我試圖獲取與瀏覽器中顯示的順序相同的IE標簽頁。
重要說明:我無法使用URL或Title來完成此操作,因為瀏覽器可以包含兩個打開了相同頁面的標簽。
為此,我嘗試了不同的方法:
我使用了Interop.SHDocVw庫,在該庫中試圖獲取所有IE窗口並獲取其標簽頁。 這種方法效果很好,但是選項卡按創建日期排序。 因此,如果我在IE中打開4個標簽頁,它會返回正確的順序,但是當我將一個標簽頁移到第一個位置時,該方法仍然顯示為第4個標簽頁。
List<int> hwnds = new List<int>(); ShellWindows shellWindows = new ShellWindows(); var explorer = shellWindows.Cast<InternetExplorer>() .ToList() .Where(item => item.Document is IHTMLDocument2); foreach (var internetExplorer in explorer) { hwnds.Add((internetExplorer.Document as IOleWindow).GetWindow()); } return windows;
我嘗試過的另一件事是實現IEAccessible獲取標簽的方式,但這對我根本不起作用。 https://social.msdn.microsoft.com/Forums/ie/en-US/03a8c835-e9e4-405b-8345-6c3d36bc8941/ie7-ie8-tab-interaction-accessibility-class?forum=ieextensiondevelopment
我嘗試的最后一件事是使用UI自動化,但是使用WinSDK Inspect工具,我只能看到當前打開的選項卡的hwnd是可見的。 否則,我只能看到帶有標題的按鈕,而沒有hwnds。
如果有人可以幫助我解決這個問題,我將非常感謝-因為我看不到任何其他解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.