[C#]透過 SHDocVw 將 Internet Explorer 轉址
一、問題描述
如何撰寫程式,讓 Internet Explorer 進行轉址?
註 : 本文用於回答 MSDN 論壇發問
http://social.msdn.microsoft.com/Forums/zh-TW/233/thread/ae461fa1-0257-402c-a3d0-30520c7cf1aa
二、方法
在此提供一種方式是使用 SHDocVw,請先將專案加入參考 Microsoft HTML Object Library 與 Microsoft Internet Controls
接著撰寫程式碼,功能是將 IE 網址為 http://tw.yahoo.com/ 轉址為 http://www.dotblogs.com.tw/chou/
//using System.Runtime.InteropServices;
//using System.IO;
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
private void timer1_Tick(object sender, EventArgs e)
{
// 取得目前 Shell 的所有視窗
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();
object missing = Type.Missing;
foreach (SHDocVw.InternetExplorer ie in shellWindows)
{
// 判斷視窗是否為 iexplore
if (Path.GetFileNameWithoutExtension(ie.FullName).ToLower().Equals("iexplore"))
{
// 判斷此 Internet Explorer 網址是否為 http://tw.yahoo.com/
if (ie.LocationURL == "http://tw.yahoo.com/")
{
// 修改網址為 http://www.dotblogs.com.tw/chou/
ie.Navigate("http://www.dotblogs.com.tw/chou/",
ref missing, ref missing, ref missing, ref missing);
}
}
}
}
三、執行結果
範例下載 : [C#]透過 SHDocVw 將 Internet Explorer 轉址.rar
四、相關參考與連結
[C#]透過 SHDocVw 與 GetForegroundWindow 取得正在使用的 Internet Explorer 網址