让WebBrowser控件指定内核版本

/ win32+MFC / 没有评论 / 2116浏览

今天偶然发现的,原来通过注册表能够让ie强制渲染到某个版本.....(果然是坑爹的ie)

void WINAPI WriteWebBrowserRegKey(LPCTSTR lpKey,DWORD dwValue)
{
	HKEY hk;
	//CDuiString str = L"Software\\WOW6432Node\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\";
	//str += lpKey;
	//RegCreateKey(HKEY_CURRENT_USER,str.GetData(),&hk);
	//RegSetValueEx(hk,L"TroyBrowser.exe",NULL,REG_DWORD,(const byte*)&dwValue,4);
	//RegCloseKey(hk);

	CDuiString str1 = L"Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\";
	str1 += lpKey;
	RegCreateKey(HKEY_CURRENT_USER,str1.GetData(),&hk);
	RegSetValueEx(hk,L"TroyBrowser_d.exe",NULL,REG_DWORD,(const byte*)&dwValue,4);
	RegCloseKey(hk);
}

WriteWebBrowserRegKey(L"FEATURE_BLOCK_LMZ_IMG",1);
WriteWebBrowserRegKey(L"FEATURE_BLOCK_LMZ_OBJECT",1);
WriteWebBrowserRegKey(L"FEATURE_BLOCK_LMZ_SCRIPT",1);
WriteWebBrowserRegKey(L"FEATURE_Cross_Domain_Redirect_Mitigation",1);
WriteWebBrowserRegKey(L"FEATURE_ENABLE_SCRIPT_PASTE_URLACTION_IF_PROMPT",1);
WriteWebBrowserRegKey(L"FEATURE_LOCALMACHINE_LOCKDOWN",1);

WriteWebBrowserRegKey(L"FEATURE_INTERNET_SHELL_FOLDERS",0);
WriteWebBrowserRegKey(L"FEATURE_BROWSER_EMULATION",11000);//ie11
WriteWebBrowserRegKey(L"FEATURE_ZONE_ELEVATION",1);
WriteWebBrowserRegKey(L"FEATURE_SCRIPTURL_MITIGATION",1);
WriteWebBrowserRegKey(L"FEATURE_BLOCK_LMZ_SCRIPT",1);
WriteWebBrowserRegKey(L"FEATURE_GPU_RENDERING",1);

这是对应的ie版本号的值

alt