2010-12-15 71 views
2

我試圖通過如何在IE的當前窗口中打開 - C#

System.Diagnostics.Process.Start("iexplore.exe", uniquePartOfUrl); 

到在IE中打開一些然而,這並不佔事實上窗口已經打開,如果是那麼我只想使用它。這怎麼能做到?

+0

爲什麼你需要一個窗口句柄? IE的API是COM,如果你想控制新的窗口/標籤,你應該要求IWebBrowser2(儘管你可以從IWebBrowser2獲得窗口/標籤句柄) – 2010-12-15 20:42:19

回答

0

在CodeProject上,存在着一個項目,「Capturing the Running IE Instances in C#

它可以讓你做到這一點的方法之一。

使用WIN32 API,可以枚舉打開的窗口,並對它們進行過濾以獲取IE的運行實例。

推薦您自動檢索

0

你可以嘗試這樣的事情:

var p = new System.Diagnostics.Process(); 
var s = new System.Diagnostics.ProcessStartInfo(uniquePartOfUrl); 
s.UseShellExecute = true; 
s.WindowStyle = ProcessWindowStyle.Normal; 
p.StartInfo = s; 
p.Start(); 

我沒有編譯器方便,現在對其進行測試,但這個想法是,它應該簡單地告訴操作系統「打開此網址」和讓操作系統決定如何使用現有的窗口,具體取決於應用程序。值得一試。

4

IMO,打開一個網頁,最好的方法是使用下面的語法:

Process.Start("http://www.mysite.com"); 

這樣的操作系統將在用戶的默認瀏覽器中打開它,並使用瀏覽器選項卡功能,如果它有該能力。當我已經選擇了我想要使用的瀏覽器時,沒有任何事情讓我更加惱火(好吧,也許有些事情會這樣做),這些程序迫使我無緣無故地使用特定的瀏覽器。在這裏尊重用戶的決定是件好事。

0

重用IE的現有的窗口,你可以在2種不同的方式

  1. 找到IE的當前實例,然後使用該實例中打開它接近它。這由@LaGrandMere提供的答案覆蓋

  2. 使用內置設置設置IE以使其自身重用。要使用此方法,您可以按照this Microsoft support article中給出的說明進行操作。

相關問題