使用 Windows API 设置 IE 代理
目录
设置 IE 代理有多种方法。常用的是修改注册表和调用 InternetSetOption
API 。
1. 注册表
IE 设置在注册表中所在的位置是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
其中:
ProxyServer
Value Type: REG_SZ
Value Data: “ProxyServerName:Port”ProxyEnable
Value Type: REG_DWORD
Value Data:0 = Disable 1 = Enable
ProxyOverride
不使用代理的地址的列表
Value Type: REG_SZ
Value Data: “list_of_exclusion” 。可以使用通配符*
. 使用分号;
分隔, 如192.168.1.*;*.domain.com;<local>
2. 使用 Windows API
示例代码如下 :
1 2 3 4 5 6 7 8 9 10 11 |
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 = 0; List.pOptions = Option; BOOL setopts = InternetSetOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &List, nSize); |
关于更多的信息请 参考这里 docs.microsoft.com
3.Others
a. 注意事项
在 IE9 之前, 以上步骤之后可能需要重启 IE 才能使设置生效。或者在打开 "Internet 属性" 面板时设置不生效。此时需要:
1 2 |
InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, 0, 0); InternetSetOption(0, INTERNET_OPTION_REFRESH, 0, 0); |
来通知其它应用IE属性被修改。
b. 打开 "Internet 属性" 设置面板
Rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,4
Rundll32
可以做很多事情。具体可以看这里 List of Rundll32 Commands in Windows 10