>本文說明瞭如何強制C#Windows表單應用程序中的WebBrowser控件,以使用Internet Explorer的最新安裝版本。 默認行為是使用IE7,但可以覆蓋。
>
>解決方案涉及修改註冊表密鑰。 這可以在應用程序啟動或安裝期間以編程方式完成。 提供的代碼提供了兩種方法:一種更簡單的方法和一種使用助手類的更高級方法。
>方法1:直接註冊表修改
此方法使用應用程序的名稱直接設置註冊表密鑰。 鑰匙值確定使用的IE版本。
<code class="language-csharp">private void Form1_Load(object sender, EventArgs e) { string appName = Process.GetCurrentProcess().ProcessName + ".exe"; SetIEVersionKey(appName, 11001); // Use IE11 (Edge mode, regardless of DOCTYPE) - Adjust as needed } private void SetIEVersionKey(string appName, int ieVersion) { RegistryKey regKey = null; try { // Handle 64-bit and 32-bit systems regKey = Environment.Is64BitOperatingSystem ? Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true) : Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true); if (regKey == null) { MessageBox.Show("Registry access failed."); return; } if (regKey.GetValue(appName) == null || (int)regKey.GetValue(appName) != ieVersion) { regKey.SetValue(appName, ieVersion, RegistryValueKind.DWord); MessageBox.Show("IE version setting applied successfully."); } else { MessageBox.Show("IE version setting already present."); } } catch (Exception ex) { MessageBox.Show($"Registry operation failed: {ex.Message}"); } finally { regKey?.Close(); } }</code>
方法2:動態IE版本檢測的助手類 此高級方法使用助手類(
)確定最新安裝的IE版本並應用適當的註冊表設置。
WebBrowserHelper
<code class="language-csharp">public class WebBrowserHelper { // ... (GetEmbVersion, FixBrowserVersion, FixBrowserVersion_Internal, GetBrowserVersion methods as provided in the original input) ... } // Usage: WebBrowserHelper.FixBrowserVersion(); // Uses the latest detected IE version // or WebBrowserHelper.FixBrowserVersion("MyApplicationName"); // Specifies application name</code>
註冊表鍵值:
11001
<requestedExecutionLevel level="highestAvailable" uiaccess="false"/>
> meta標籤。 以上是如何強制WebBrowser控件使用最新安裝的Internet Explorer版本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!