Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat memaksa kawalan Webbrowser untuk menggunakan versi terkini Internet Explorer?
Artikel ini menerangkan cara memaksa kawalan Webbrowser dalam aplikasi C# Windows Forms untuk menggunakan versi terkini Internet Explorer. Tingkah laku lalai adalah menggunakan IE7, tetapi ini boleh ditindih.
Kaedah 1: Pengubahsuaian Pendaftaran Langsung
Kaedah ini secara langsung menetapkan kunci pendaftaran menggunakan nama aplikasi. Nilai utama menentukan versi IE yang digunakan.
<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>
Kaedah 2: Kelas penolong untuk pengesanan versi IE dinamik
Kaedah lanjutan ini menggunakan kelas penolong () untuk menentukan versi IE yang dipasang terkini dan memohon tetapan pendaftaran yang sesuai. 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>
Pertimbangan penting:
11001
<requestedExecutionLevel level="highestAvailable" uiaccess="false"/>
<meta content="IE=11" http-equiv="X-UA-Compatible"></meta>
dengan nama sebenar aplikasi anda jika menggunakan versi bernama kelas Helper. Pilih kaedah yang paling sesuai dengan keperluan anda dan sentiasa menguji dengan teliti. "MyApplicationName"
Atas ialah kandungan terperinci Bagaimanakah saya dapat memaksa kawalan Webbrowser untuk menggunakan versi terkini Internet Explorer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!