如何用vc编程设置IE代理服务器? 想通过编程来实现设置IE的代理服务器.如何实现啊?是不是通过修改注册表啊?修改哪个? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 or you may change register in \local m......\........but it must reset ie 当然是不想重启IE啊,设置完了马上能用,还可以随时改.这样就不能通过修改注册表实现了吧.用iphlpapi.h可以实现吗?这个怎么好像是CB里面的啊.VC里面没有自己可以直接设置IE代理的吗? HKEY_CURRENT_USERSoftware\\Microsoft\\Windows\\CurrentVersion\\Internet SettingsProxyServerProxyEnable http://www.codeproject.com/internet/changeproxy1.aspChange Internet Proxy settingsBy onega 给个建议你,不要改变proxy,改变IP的arp表更好 见过有个软件叫《网络休闲庄IP隐藏器》,能强制任何浏览器使用代理服务器,应该就是修改了arp表。 to masterz:onega发表在codeguru.com的修改代理设置的源码,我看了,他自己都说只是修改了注册表,如果是这样,需要重启IE才生效吧。你给的地址,codeproject怎么上不去。:(to wjl_2001 icelight:如何修改IP的arp表啊?哪里有相关知识?这个网络休闲庄IP隐藏器软件我也找到过,不过没有联系方式,也没法了解如何作的啊。MyIE的代理设置估计也是用的这个arp,它和IE的设置互相不干涉 article in codeproject is more than modifying registry.BOOL SetConnectionOptions(LPCTSTR conn_name,LPCTSTR proxy_full_addr){ //conn_name: active connection name. //proxy_full_addr : eg "210.78.22.87:8000" INTERNET_PER_CONN_OPTION_LIST list; BOOL bReturn; DWORD dwBufSize = sizeof(list); // Fill out list struct. list.dwSize = sizeof(list); // NULL == LAN, otherwise connectoid name. list.pszConnection = conn_name; // Set three options. list.dwOptionCount = 3; list.pOptions = new INTERNET_PER_CONN_OPTION[3]; // Make sure the memory was allocated. if(NULL == list.pOptions) { // Return FALSE if the memory wasn't allocated. OutputDebugString("failed to allocat memory in SetConnectionOptions()"); return FALSE; } // Set flags. list.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS; list.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT | PROXY_TYPE_PROXY; // Set proxy name. list.pOptions[1].dwOption = INTERNET_PER_CONN_PROXY_SERVER; list.pOptions[1].Value.pszValue = proxy_full_addr;//"http://proxy:80"; // Set proxy override. list.pOptions[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS; list.pOptions[2].Value.pszValue = "local"; // Set the options on the connection. bReturn = InternetSetOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &list, dwBufSize); // Free the allocated memory. delete [] list.pOptions; InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0); InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0); return bReturn;}BOOL DisableConnectionProxy(LPCTSTR conn_name){ //conn_name: active connection name. INTERNET_PER_CONN_OPTION_LIST list; BOOL bReturn; DWORD dwBufSize = sizeof(list); // Fill out list struct. list.dwSize = sizeof(list); // NULL == LAN, otherwise connectoid name. list.pszConnection = conn_name; // Set three options. list.dwOptionCount = 1; list.pOptions = new INTERNET_PER_CONN_OPTION[list.dwOptionCount]; // Make sure the memory was allocated. if(NULL == list.pOptions) { // Return FALSE if the memory wasn't allocated. OutputDebugString("failed to allocat memory in DisableConnectionProxy()"); return FALSE; } // Set flags. list.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS; list.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT ; // Set the options on the connection. bReturn = InternetSetOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &list, dwBufSize); // Free the allocated memory. delete [] list.pOptions; InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0); InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0); return bReturn;}The usage is very straightforward://set proxy const char* connection_name="Connection to adsl3"; SetConnectionOptions(connection_name,"62.81.236.23:80");//disable proxy DisableConnectionProxy(connection_name); Existing Internet Explorer instances are notified by INTERNET_OPTION_SETTINGS_CHANGED and INTERNET_OPTION_REFRESH 谢谢了。我也给onega发email,找到了这个地址。写的非常全面详细。多谢各位,可以结帖了。以后还要多请教:) 不知道onega是否在这里有帐号,应该也给他加分。呵呵。真是挺厉害的人啊,能经常请教他就更好了。 网络SOCKET编程 程序死掉啦。 熟悉汉字点阵的请进(在线等) 关于软件换肤的认识问题? 如何使用MFC判断文件结束? CFileDialog 如何实现保存功能,并获取完整的路径名(包括文件名和扩展名) 有关文件操作的问题?请帮我看看! 如何把GetClientRect(rect)得到的矩形转换为毫米单位 800分大放送,超难题,高手来看看!!! 请教以下问题(每一个解决了给100分) 急!急!急!Add checkboxes in CListCtrl ~! 这么简单的函数为什么也会出错??---急救 谁有最新版的visio?
but it must reset ie
用iphlpapi.h可以实现吗?这个怎么好像是CB里面的啊.
VC里面没有自己可以直接设置IE代理的吗?
Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings
ProxyServer
ProxyEnable
Change Internet Proxy settings
By onega
onega发表在codeguru.com的修改代理设置的源码,我看了,他自己都说只是修改了注册表,
如果是这样,需要重启IE才生效吧。
你给的地址,codeproject怎么上不去。:(to wjl_2001 icelight:
如何修改IP的arp表啊?哪里有相关知识?
这个网络休闲庄IP隐藏器软件我也找到过,不过没有联系方式,也没法了解如何作的啊。
MyIE的代理设置估计也是用的这个arp,它和IE的设置互相不干涉
BOOL SetConnectionOptions(LPCTSTR conn_name,LPCTSTR proxy_full_addr)
{
//conn_name: active connection name.
//proxy_full_addr : eg "210.78.22.87:8000"
INTERNET_PER_CONN_OPTION_LIST list;
BOOL bReturn;
DWORD dwBufSize = sizeof(list);
// Fill out list struct.
list.dwSize = sizeof(list);
// NULL == LAN, otherwise connectoid name.
list.pszConnection = conn_name;
// Set three options.
list.dwOptionCount = 3;
list.pOptions = new INTERNET_PER_CONN_OPTION[3];
// Make sure the memory was allocated.
if(NULL == list.pOptions)
{
// Return FALSE if the memory wasn't allocated.
OutputDebugString("failed to allocat memory in SetConnectionOptions()");
return FALSE;
}
// Set flags.
list.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS;
list.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT |
PROXY_TYPE_PROXY; // Set proxy name.
list.pOptions[1].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
list.pOptions[1].Value.pszValue = proxy_full_addr;//"http://proxy:80"; // Set proxy override.
list.pOptions[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
list.pOptions[2].Value.pszValue = "local"; // Set the options on the connection.
bReturn = InternetSetOption(NULL,
INTERNET_OPTION_PER_CONNECTION_OPTION, &list, dwBufSize); // Free the allocated memory.
delete [] list.pOptions;
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
return bReturn;
}
BOOL DisableConnectionProxy(LPCTSTR conn_name)
{
//conn_name: active connection name.
INTERNET_PER_CONN_OPTION_LIST list;
BOOL bReturn;
DWORD dwBufSize = sizeof(list);
// Fill out list struct.
list.dwSize = sizeof(list);
// NULL == LAN, otherwise connectoid name.
list.pszConnection = conn_name;
// Set three options.
list.dwOptionCount = 1;
list.pOptions = new INTERNET_PER_CONN_OPTION[list.dwOptionCount];
// Make sure the memory was allocated.
if(NULL == list.pOptions)
{
// Return FALSE if the memory wasn't allocated.
OutputDebugString("failed to allocat memory in DisableConnectionProxy()");
return FALSE;
}
// Set flags.
list.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS;
list.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT ;
// Set the options on the connection.
bReturn = InternetSetOption(NULL,
INTERNET_OPTION_PER_CONNECTION_OPTION, &list, dwBufSize);
// Free the allocated memory.
delete [] list.pOptions;
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
return bReturn;
}
The usage is very straightforward://set proxy
const char* connection_name="Connection to adsl3";
SetConnectionOptions(connection_name,"62.81.236.23:80");
//disable proxy
DisableConnectionProxy(connection_name);
Existing Internet Explorer instances are notified by INTERNET_OPTION_SETTINGS_CHANGED and INTERNET_OPTION_REFRESH
我也给onega发email,找到了这个地址。写的非常全面详细。
多谢各位,可以结帖了。
以后还要多请教
:)
真是挺厉害的人啊,能经常请教他就更好了。