VC 如何获得浏览器类型以及代理配置信息

jinsemangguo 2011-07-19 09:38:37
我想在winInet中设置代理,如何判断当前用户所使用的浏览器类型,并且如何获得非IE内核浏览器诸如firefox的代理配置信息(对于以IE为内核的浏览器操作我已经完成了),要求以VC实现,请各位多多指教,谢谢
...全文
434 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hb304387520 2011-12-26
  • 打赏
  • 举报
回复
如何 获取IE代理的详细信息啊?VC实现
jinsemangguo 2011-07-19
  • 打赏
  • 举报
回复
第一个问题解决了,通过注册表能够读出默认浏览器的类型,但是火狐的代理配置信息怎么获得,从pref.js吗,怎么读取
jinsemangguo 2011-07-19
  • 打赏
  • 举报
回复
我之前的想法是读进程列表,看看是否包含firefox.exe,但是后来觉得它有可能不会启动
tompaz 2011-07-19
  • 打赏
  • 举报
回复
不知道怎么取,要看是否提供接口了
magicyang87 2011-07-19
  • 打赏
  • 举报
回复
懂了没?

TCHAR szPath[1024];
SHGetFolderPath(NULL,CSIDL_APPDATA,NULL,0,szPath);
CString strFirefoxPref(szPath);
if (strFirefoxPref.Right(1)!='\\')
{
strFirefoxPref+=_T("\\");
}
strFirefoxPref+=_T("Mozilla\\Firefox\\");

CString strPresIni = strFirefoxPref;
strPresIni+=_T("profiles.ini");
CIniFile iniPres;
if(iniPres.SetPath(strPresIni))
{
CString strPresJsPath = iniPres.GetKeyValue(_T("Profile0"),_T("Path"));
if (strPresJsPath.Right(1)!='\\')
{
strPresJsPath+=_T("\\");
}
strFirefoxPref+=strPresJsPath;
strFirefoxPref+=_T("prefs.js");
ifstream in_stream;
in_stream.open(strFirefoxPref);
if (in_stream.fail())
{
return false;
}
m_strFirefoxPref=strFirefoxPref;
string strLine;
bool bHaveSetProxy=false;
char szLien[2048];
while (in_stream)
{
in_stream.getline(szLien,2047);
strLine= szLien;
if(string::npos!=strLine.find("user_pref(\"network.proxy.autoconfig_url\","))
{
bHaveSetProxy=true;
m_sAutoConfigUrl=strLine;
}
else if (string::npos!=strLine.find("user_pref(\"network.proxy.type\","))
{
bHaveSetProxy=true;
m_sProxyType=strLine;
}
else if(bHaveSetProxy)
{
m_lines1.push_back(strLine);
}
else
{
m_lines0.push_back(strLine);
}
}
in_stream.close();
ofstream out_stream;
out_stream.open(strFirefoxPref,ios_base::trunc);
if (out_stream.fail())
{
return false;
}

string strProxyType("user_pref(\"network.proxy.type\", 5);\r\n");
vector<string>::iterator iter;
for(iter = m_lines0.begin();iter!=m_lines0.end();iter++)
{
out_stream<<*iter<<endl;
}
out_stream<<strProxyType;
for(iter = m_lines1.begin();iter!=m_lines1.end();iter++)
{
out_stream<<*iter;
out_stream<<*iter<<endl;
}
out_stream.close();

}
qq819363570 2011-07-19
  • 打赏
  • 举报
回复
获取不了。。。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧