大多数浏览器设置代理服务器都是设置internet选项中的代理服务,如果想获取这个信息可以通过访问注册表获取
int nRet = RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", 0, KEY_READ, &hOpen);
if (ERROR_SUCCESS == nRet) {
RegQueryValueEx(hOpen, L"ProxyServer", NULL, NULL, (BYTE*)buf, &size);
}
可以获取的参数感觉比较有用的是:
ProxyEnable:表示是否开启了代理服务器;
ProxyServer:表示代理服务器信息两种格式分别为:
a、ip:port;
b、http=ip:port;https=ip:port;ftp=ip:port;
对于如何获取到设置的代理链接时的用户名和密码,参考了:http://blog.csdn.net/wwwsq/article/details/35991419
需要包括头文件:#include <WinCred.h>
DWORD dwCount = 0;
PCREDENTIAL * pCredArray = NULL;
if (CredEnumerate(NULL, 0, &dwCount, &pCredArray)) {
for (DWORD dwIndex = 0; dwIndex < dwCount; dwIndex++) {
PCREDENTIAL pCredential = pCredArray[dwIndex];
std::wstring target = pCredential->TargetName;
if (target == L"ip:port") {
std::wstring usr = pCredential->UserName;
std::wstring pwd = (LPCWSTR)pCredential->CredentialBlob;
}
}
CredFree(pCredArray);
}