我正在使用此代码在我的wpf应用程序中允许浏览器功能模拟:
string executablePath = Environment.GetCommandLineArgs()[0];
MessageBox.Show(executablePath);
string executableName = System.IO.Path.GetFileName(executablePath);
MessageBox.Show(executableName);
MessageBox.Show("Is64BitOperatingSystem : " + Environment.Is64BitOperatingSystem);
string key = string.Empty;
if (Environment.Is64BitOperatingSystem)
key = @"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
else
key = @"SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION";
RegistryKey registrybrowser = Registry.CurrentUser.OpenSubKey(key, true);
MessageBox.Show(registrybrowser.ToString());
if (registrybrowser == null)
{
RegistryKey registryFolder = Registry.CurrentUser.OpenSubKey
(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl", true);
MessageBox.Show(registryFolder.ToString());
registrybrowser = registryFolder.CreateSubKey("FEATURE_BROWSER_EMULATION");
}
registrybrowser.SetValue(executableName, 0x02710, RegistryValueKind.DWord);
registrybrowser.Close();
当我尝试在Windows XP(SP2,FW 4)上运行我的应用程序时,registrybrowser对象为null,因为我猜不到密钥。 如何在Windows XP上设置此功能模拟?
答案 0 :(得分:0)
我的Windows XP上没有FeatureControl注册表项。以下是如何解决它:
string executablePath = Environment.GetCommandLineArgs()[0];
string executableName = System.IO.Path.GetFileName(executablePath);
string key = @"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
RegistryKey registrybrowser = Registry.CurrentUser.OpenSubKey(key, true);
if (registrybrowser == null)
{
RegistryKey registryFolder = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl", true);
if (registryFolder == null)
{
RegistryKey registryFolderParent = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main", true);
registryFolderParent.CreateSubKey("FeatureControl");
registryFolder = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl", true);
}
registrybrowser = registryFolder.CreateSubKey("FEATURE_BROWSER_EMULATION");
}
registrybrowser.SetValue(executableName, 0x2AF9, RegistryValueKind.DWord);
registrybrowser.Close();