通过注册表获取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); }

经验分享 程序员 微信小程序 职场和发展