启用绕过代理服务器并通知 IE 进行更改
Posted
技术标签:
【中文标题】启用绕过代理服务器并通知 IE 进行更改【英文标题】:Enable bypass proxy server and notify IE for the change 【发布时间】:2018-12-07 14:32:55 【问题描述】:我正在尝试使用 Internet Explorer 选项 API 根据此 example from Microsoft 设置 LAN 设置。
我能够设置代理地址和例外,但我想启用Bypass proxy server for local addresses
复选框并通知 Internet Explorer 进行更改,这样我就不必关闭它并再次打开它。
我想我需要使用 INTERNET_PER_CONN_OPTION
结构中的另一个选项,但不知道应该使用什么。
这是我的代码:
#include <Windows.h>
#include <wininet.h>
#include <wchar.h>
#pragma comment(lib, "Wininet.lib")
int wmain(int argc, wchar_t * argv[])
INTERNET_PER_CONN_OPTION_LIST connList;
DWORD bufSize = sizeof(connList);
connList.dwSize = sizeof(connList);
connList.pszConnection = NULL;
connList.dwOptionCount = 3;
connList.pOptions = (INTERNET_PER_CONN_OPTION*)malloc(sizeof(INTERNET_PER_CONN_OPTION) * 3);
if (connList.pOptions == NULL)
fwprintf(stderr, L"Memory allocation failed.\n");
return 1;
connList.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS;
connList.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT |
PROXY_TYPE_PROXY;
connList.pOptions[1].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
connList.pOptions[1].Value.pszValue = L"https://internal.com.co:80";
connList.pOptions[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
connList.pOptions[2].Value.pszValue = L"local";
BOOL internetOption;
internetOption = InternetSetOptionW(NULL,
INTERNET_OPTION_PER_CONNECTION_OPTION,
&connList,
bufSize);
if (internetOption != TRUE)
fwprintf(stderr, L"Faile to set the option with code: %u\n", GetLastError());
return 1;
free(connList.pOptions);
wprintf(L"Done!\n");
return 0;
你能帮帮我吗?
【问题讨论】:
【参考方案1】:将包含<
和>
符号的字符串<local>
添加到例外列表中,例如<local>;*.microsoft.com
.
【讨论】:
太棒了!你有什么想法通知 IE 在不重新打开的情况下进行更改吗? 我认为您应该在设置新值之前先重置代理设置(“PROXY_TYPE_DIRECT”)。以上是关于启用绕过代理服务器并通知 IE 进行更改的主要内容,如果未能解决你的问题,请参考以下文章