WebBrowser 是 Windows Form 應用程式中用來顯示 Web 網頁的控制項。 底下幾個與 WebBrowser 相關的議題,做個記錄備忘一下。
如何設定使用新版的IE
使用 WebBrowser 時,它會依據 .Net Framework 版本,自動使用其預設的 IE 版本。 例如可能你的主機已經更新到 IE10 ,可是 WebBrowser 還在使用 IE9 或 IE8 的版本。 如果要取得目前運行的 IE 版本,可以透過 WebBrowser.Version 屬性。
變更預設版本
WebBrowser 不會因為系統已更新了新的 IE 版本,就自動使用新的 IE 版本。你必須自行變更系統的註冊碼,讓 Windows 系統知道應用程式想使用的 IE 版本。
32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION 64 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
在不同版本的系統下,你可以依據上面資訊找到 FEATURE_BROWSER_EMULATION 機碼。 若特定的應用程式,要使用特定的 IE 版本,你只要在該機碼下新增一個與應用程式相同名稱的 Dword 值,設定的值可參閱 Internet Feature Controls (B..C) 這篇文章,不同的值會對應到不同的 IE 版本。
像下圖中的例子,就是指定 MyTrip.exe 應用程式,使用 IE11 版本
使用程式修改預設版本
為了方便設定,也可以透過程式碼,直接進行以上註刪碼的變更。
public Form1() { InitializeComponent(); var appName = Process.GetCurrentProcess().MainModule.ModuleName; Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", appName, 11000, RegistryValueKind.DWord); }
如何在不同的 WebBrowser 控制項中使用獨立的 Cookie
有時候,你必須同時使用多個 WebBrowser 連結特定網站進行操作, 若這個網站使用 Cookie 儲存識別資訊,而你又必須分別使用不同使用者進行登入,那麼你將難以避免互相干擾的問題。 這是因為,只要在同一個 Process 中,所有的 WebBrowser 都會共用同一個 Cookie 資訊。 也就是若在同一個應用程式中,使用到多個 WebBrowser 控制項,不管它們是否位在同一個 Form 中,它們都將共用同一個 Cookie 資訊,
目前不知道如何解決,只能先重覆執行多組應用程式,才可分別在不同表單中建立不同使用者連線。
你好: 我在WINDOWS 7系統中更改註冊表可以使用。但是WINDOWS 10系統中卻無法使用,請問有解嗎?
回覆刪除