参考 :http://www.codeproject.com/Articles/3651/Change-Internet-Proxy-settings?display=Print
:http://support.microsoft.com/kb/226473/en-us
每次手动设置IE浏览器的代理相当麻烦,于是查阅相关资料,写了个建议设置IE代理的小程序。
编译环境VS2010
主要代码如下:
设置代理:
//设置代理;
void CIEProxySetDlg::OnBnClickedSetproxy()
{
// TODO: 在此添加控件通知处理程序代码
char *buff; //sava m_strProxy
UpdateData(TRUE);
//MessageBox(m_strProxy);
INTERNET_PER_CONN_OPTION_LIST list;
INTERNET_PER_CONN_OPTION Option[3];
unsigned long nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
buff = new char[256];
buff = m_strProxy.GetBuffer(m_strProxy.GetLength());
m_strProxy.ReleaseBuffer();
Option[0].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
Option[0].Value.pszValue = buff;
// This option sets all the possible connection types for the client.
// This case specifies that the proxy can be used or direct connection is possible.
Option[1].dwOption = INTERNET_PER_CONN_FLAGS;
Option[1].Value.dwValue = PROXY_TYPE_PROXY | PROXY_TYPE_DIRECT;
Option[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
Option[2].Value.pszValue = "local";
//fill the list struct
list.dwSize = nSize;
list.pszConnection = NULL;
list.dwOptionCount = 3;
list.dwOptionError = 0;
list.pOptions = Option;
if(!InternetSetOption(NULL,INTERNET_OPTION_PER_CONNECTION_OPTION,&list,nSize))
MessageBox("InternetSetOption failed!");
//The connection settings for other instances of Internet Explorer.
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
MessageBox("代理设置成功");
//free(buff);
}
取消代理:
//取消代理;
void CIEProxySetDlg::OnBnClickedSetno()
{
// TODO: 在此添加控件通知处理程序代码;
INTERNET_PER_CONN_OPTION_LIST list;
INTERNET_PER_CONN_OPTION Option[1];
unsigned long nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
Option[0].dwOption = INTERNET_PER_CONN_FLAGS;
Option[0].Value.dwValue = PROXY_TYPE_DIRECT;
list.dwSize = nSize;
list.pszConnection = NULL;
list.dwOptionCount = 1;
list.dwOptionError = NULL;
list.pOptions = Option;
if(!InternetSetOption(NULL,INTERNET_OPTION_PER_CONNECTION_OPTION,&list,nSize))
MessageBox("InternetSetOption failed!");
//The connection settings for other instances of Internet Explorer.
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
MessageBox("已取消代理设置");
}
本着“画蛇添足”的精神,有加了个皮肤,如下: