用VC开发自己的浏览器时,我们一般用浏览器插件或CHtmlView,但是开发完后,你会发现其内核用的是IE6的,那么要如何指定要使用的内核版本呢?
可以在注册表添加应用程序使用的内核版本
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
"MyApplication.exe" = dword 9000
MyApplication.exe改成你自己的程序名称。
参考代码如下:
void AdaptIeVersion()
{
TCHAR szVersion[64] = {0};
DWORD dwSize = 64;
HKEY hKey = NULL;
// 先获取IE版本
if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Internet Explorer"), 0, KEY_READ, &hKey))
{
RegQueryValueEx(hKey, TEXT("Version"), 0, NULL, (LPBYTE)szVersion, &dwSize);
RegCloseKey(hKey);
}
TCHAR *pos = _tcschr(szVersion, TEXT('.'));
if (NULL == pos)
return;
*pos = 0;
DWORD dwIeKenel = _ttoi(szVersion) * 1000;
// 设置应用程序使用的IE版本
if (ERROR_SUCCESS == RegOpenKeyEx(
HKEY_LOCAL_MACHINE
, TEXT("SOFTWARE\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_BROWSER_EMULATION")
, 0
, KEY_WRITE
, &hKey))
{
dwSize = sizeof(dwIeKenel);
RegSetValueEx(hKey, ExeName, 0, REG_DWORD, (LPBYTE)&dwIeKenel, dwSize);
RegCloseKey(hKey);
}
}