Maison >développement back-end >C++ >Comment puis-je utiliser la dernière version Internet Explorer avec le contrôle C # WebBrowser?
Le contrôle WebBrowser dans l'application
C # Windows Forms utilise Internet Explorer 7 par défaut. Bien qu'il puisse être modifié à 9 via la technologie "Simulation du navigateur", cela ne peut pas accéder à la dernière version Internet Explorer.
Pour permettre au contrôle WebBrowser d'utiliser la dernière version Internet Explorer, vous devez configurer un élément de registre. Ce qui suit est un fragment de code:
La valeur de registre de différentes versions IE
<code class="language-csharp">private void SetIEKeyForWebBrowserControl(string appName, int ieVersion) { try { string keyPath = Environment.Is64BitOperatingSystem ? @"SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION" : @"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION"; Microsoft.Win32.RegistryKey registryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(keyPath, true); string appKeyName = string.Format("{0}.exe", appName); if (registryKey.GetValue(appKeyName) == null) { registryKey.SetValue(appKeyName, ieVersion, Microsoft.Win32.RegistryValueKind.DWord); MessageBox.Show("应用程序设置已成功应用"); } else { MessageBox.Show("应用程序设置已存在"); } } catch (Exception ex) { MessageBox.Show("应用程序设置失败", ex.Message); } }</code>
Les valeurs de clés suivantes correspondent à la version spécifique de l'explorateur Internet:
11001 (0x2af9) -Tact
11000 (0x2af8) -TactDéfinissez automatiquement l'élément de registre pour la dernière version IE
Ce qui suit est un exemple de code, qui est utilisé pour déterminer et définir automatiquement l'élément de registre pour la dernière version IE:
<code class="language-csharp">using mshtml; public static int GetLatestIEVersion() { int version = 0; try { object versionObject = InternetExplorerManager.GetActiveVersion(); if (versionObject == null) throw new Exception("无法确定最新的IE版本。"); version = (int)versionObject; } catch { version = 7; } return version; }</code>
Autres conseils
Pour les systèmes d'exploitation 64-bits, assurez-vous que les autorisations nécessaires ont été accordées dans le registre, par exemple, en utilisant la propriété "DevideDexecutionLevel" en utilisant la "demande d'emploi" demandedExecutionLeve "dans la liste des applications.
<code class="language-csharp">private void Form1_Load(object sender, EventArgs e) { int latestVersion = GetLatestIEVersion(); SetIEKeyForWebBrowserControl("MyApplication", latestVersion); }</code>Si des problèmes de compatibilité se produisent, envisagez d'ajouter
Meta Marks à votre page Web.
Cette réponse révisée simplifie le code, supprime la vérification inutile deCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!