通过注册表获取Internet选项中代理服务器参数
大多数浏览器设置代理服务器都是设置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..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); }