读书人

关于用vc实现修改ie代理的有关问题

发布时间: 2012-01-30 21:15:58 作者: rapoo

关于用vc实现修改ie代理的问题
现在需要通过一个文本框要别人输入代理地址127.0.0.1:80 然后按确定按钮即可实现改变

void CIeproxyDlg::OnButtonSet()

{
UpdateData(FALSE);
CString str;
this-> GetDlgItemText(IDPROXY,str);//获得用户输入的代理

unsigned long nSize = 4096;
char szBuf[4096] = { 0 };
INTERNET_PROXY_INFO* pInfo = (INTERNET_PROXY_INFO*)szBuf;
pInfo-> lpszProxy = str;
if(!InternetSetOption(NULL, INTERNET_OPTION_PROXY, pInfo, nSize))
AfxMessageBox(_T( "设置代理失败 "));

}

老是设置失败 不知道为什么哦。。。

[解决办法]
你先看看你注册表中是不是有对应的健

你贴完整点的代码看看?
我这里是有那个键值的

===============
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"User Agent "= "Mozilla/4.0 (compatible; MSIE 6.0; Win32) "
"IE5_UA_Backup_Flag "= "5.0 "
"NoNetAutodial "=dword:00000000
"MigrateProxy "=dword:00000001
"EmailName "= "IEUser@ "
"AutoConfigProxy "= "wininet.dll "
"MimeExclusionListForCache "= "multipart/mixed multipart/x-mixed-replace multipart/x-byteranges "
"WarnOnPost "=hex:01,00,00,00
"UseSchannelDirectly "=hex:01,00,00,00
"EnableHttp1_1 "=dword:00000001
"PrivacyAdvanced "=dword:00000000
"EnableNegotiate "=dword:00000001
"ProxyEnable "=dword:00000001
"ProxyServer "= "10.137.66.13:3128 "
"EnableAutodial "=dword:00000000
"PrivDiscUiShown "=dword:00000001
"WarnOnZoneCrossing "=dword:00000000
"GlobalUserOffline "=dword:00000000
"MaxConnectionsPerServer "=dword:0000000a
[解决办法]

long ret0=(::RegOpenKeyEx(HKEY_CURRENT_USER,data_Set, 0, KEY_WRITE, &hKEY));
.....
long ret1=::RegQueryValueEx(hKEY, "ProxyServer ", NULL, &type_1, owner_Get, &cbData_1);
因为楼是用KEY_WRITE属性打开hKey的,所以RegQueryValueEx(hKey,...)会出错,建议楼主把KEY_WRITE 改为 KEY_WRITE|KEY_READ 试试

读书人网 >VC/MFC

热点推荐