目前想做IE瀏覽器的一個監聽程式,搜集資料,了解到ShellWindows()可以獲取到windows物件,如下代碼
static ShellWindows shellWindows;
static void Main(string[] args)
{
if (shellWindows == null)
{
shellWindows = new ShellWindows();
}
shellWindows.WindowRegistered += new DShellWindowsEvents_WindowRegisteredEventHandler(Register);
int openIECount = shellWindows.Count;
IEnumerator items = shellWindows.GetEnumerator();
Console.WriteLine("正在監聽IE...");
Console.ReadKey();
}
但是在第一步,通過ShellWindows()進行實體物件的時候,就出現了問題,程式倒是沒報錯,但是完全運行不下去,通過對物件shellWindows 添加監視,發現給出的資訊為:

現在向不明白到底出什么問題了!!!
uj5u.com熱心網友回復:
雖然還是不明白發生了什么,但是我是想通過回圈得到每一個item,每個item其實對應一個windows視窗程式(但有意思的是發現只會獲取到IE瀏覽器和windows的打開的檔案夾視窗,其他諸如QQ瀏覽器,酷狗播放器都獲取不到。),修改代碼,發現其實是可以運行下去的,如下:InternetExplorer ie = (InternetExplorer)shellWindows.Item(i)
我也不明白它的底層原理是什么,而且為什么shellwindows實體化的時候為何會出現那樣的提示。
另外,發現,這種方法在WIN7的IE11上是穩定的。但是在WIN10的IE11非常不穩定:具體表現為:一方面有時候獲取不到IE的某個頁面,另一方面100%獲取不到非在地址輸入框中輸入地址的網頁,即如果通過頁面的鏈接跳轉過去的網頁,通過這種方法在WIN10是獲取不到的,這個在網上搜,有一種解釋是,IE瀏覽器對同一個ip的網址只創建一個行程,可是在WIN7上就沒問題,不懂!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/79125.html
標籤:C#
上一篇:C# Winform初體驗
