默认CEF是使用了电脑IE浏览器的代理,使用代理会导致CEF打开网页非常慢,但是在浏览器中打开网页是很快的,为了解决这个问题,本人总结了两种办法:
①直接修改注册表,将IE浏览器的代理模式全部去掉,代码如下:
HKEY hKey = NULL;
long lRet = RegOpenKey(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Connections", &hKey);
if (lRet == ERROR_SUCCESS)
{
CString value = _T("F");
RegSetValueEx(hKey, L"DefaultConnectionSettings", 0, REG_BINARY, (const unsigned char*)(LPCTSTR)value, 4 * value.GetLength());
RegSetValueEx(hKey, L"SavedLegacySettings", 0, REG_BINARY, (const unsigned char*)(LPCTSTR)value, 4 * value.GetLength());
}
RegCloseKey(hKey);
这种办法比较流氓,直接去掉了IE浏览器的代理,如果自己设置了IE的代理,这个会去掉代理,不推荐这种办法。
②在CEF的SimpleApp中重写虚函数OnBeforeCommandLineProcessing,在命令行中去掉代理,代码如下:
virtual void OnBeforeCommandLineProcessing( const CefString& process_type,CefRefPtr<CefCommandLine> command_line) {
command_line->AppendSwitch("no-proxy-server");
}
这种方法比较简单,非常推荐。