使用谷歌地图时网络浏览器警告的C#版本-Windows 7和Internet Explorer 8



我使用VS 2013和C#web浏览器控件,但当我在Windows 8及更早版本(例如,安装了Internet Explorer 8的Windows 7(上运行.exe文件时,请打开https://maps.google.com页面上写着"你的浏览器旧了,请更新它"。

我已经用三种方法更改了注册表设置,但不起作用。

它的第一个代码和链接:

链接:在网络浏览器控件中使用最新版本的Internet Explorer

private void SetIE11KeyforWebBrowserControl()
{
var appName = Process.GetCurrentProcess().ProcessName + ".exe";
RegistryKey Regkey = null;
try
{
// For 64 bit machine
if (Environment.Is64BitOperatingSystem)
Regkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@  "SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EM  ULATION", true);
else  //For 32 bit machine
Regkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@  "SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EM  ULATION", true);

// If the path is not correct or
// if the user haven't priviledges to access the registry
if (Regkey == null)
{
if (Environment.Is64BitOperatingSystem)
Regkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey  (@"SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EM  ULATION");
else  //For 32 bit machine
Regkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey  (@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EM  ULATION");
}

string FindAppkey = Convert.ToString(Regkey.GetValue(appName));

// Check if key is already present
if (FindAppkey == "11000")
{
Regkey.Close();
//MessageBox.Show("Application set IE Key value");
return;
}
else
{
Regkey.SetValue(appName, unchecked((int)0x2AF8), RegistryValueKind.DWord);
}

// Check for the key after adding
FindAppkey = Convert.ToString(Regkey.GetValue(appName));

if (FindAppkey != "11000")
throw new Exception("Can not set IE key for web browser");
else
{
Regkey.Close();
//MessageBox.Show("Application set IE Key value");
}
}
catch (Exception ex)
{
MessageBox.Show("Application Settings Failedn" + ex.Message);
}
finally
{
// Close the Registry
if (Regkey != null)
Regkey.Close();
}

第二个代码:

public class Helper
{
public static void SetBrowserEmulation(
string programName, IE browserVersion)
{
if (string.IsNullOrEmpty(programName))
{
programName = AppDomain.CurrentDomain.FriendlyName;
RegistryKey regKey = Registry.CurrentUser.OpenSubKey(
"Software\Microsoft\Internet Explorer\Main" +
"\FeatureControl\FEATURE_BROWSER_EMULATION", true);
if (regKey != null)
{
try
{
regKey.SetValue(programName, browserVersion,
RegistryValueKind.DWord);
}
catch (Exception ex)
{
throw new Exception("Error writing to the registry", ex);
}
}
else
{
try
{
regKey = Registry.CurrentUser.OpenSubKey("Software" +
"\Microsoft\Internet Explorer\Main" +
"\FeatureControl", true);
regKey.CreateSubKey("FEATURE_BROWSER_EMULATION");
regKey.SetValue(programName, browserVersion,
RegistryValueKind.DWord);
}
catch (Exception ex)
{
throw new Exception("Error accessing the registry", ex);
}
}
}
}
}

public enum IE
{
IE7 = 7000,
IE8 = 8000,
IE8StandardsMode = 8888,
IE9 = 9000,
IE9StandardsMode = 9999,
IE10 = 10000,
IE10StandardsMode = 10001
}

第三个及其链接:链接:如何让WebBrowser控件显示现代内容

HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMainFeatureControlFEATURE_BROWSER_EMULATION
"YourApplicationFileName.exe"=dword:00002af9
"YourApplicationFileName.vshost.exe"=dword:00002af9

更新1:

我使用默认的C#Web浏览器控件(IE基础(http://whatsmybrowser.org说:您的浏览器是"Windows 7上的Internet Explorer 8">

更新2:

当我在Windows7上安装IE11时,我的.exe文件工作正常,但我想用代码更改设置,而不是安装IE11。

在阅读您提供的链接时,需要理解的关键是它没有为您提供最新版本的IE(即IE 11(,而是为您提供了安装在您的机器上的最新版本IE。

你的机器安装了IE 8。由于C#web浏览器控件使用的IE版本与您的机器安装的版本相同,因此您的C#应用程序使用的是IE 8。

不幸的是,谷歌地图不再支持IE 8。

因此,您有三组选项:

  1. 在机器上升级IE(例如,升级到IE 11(
  2. 升级机器上的操作系统(例如Windows 10(-因为这将自动为您升级IE
  3. 使用使用IE以外的控件进行渲染的控件(web浏览器控件除外(。我不知道有什么好处质量选项

相关内容

  • 没有找到相关文章

最新更新