获得设置的代理服务器地址的代码
BOOL Cxxx::GetHttpProxy(CString &ip,BOOL &bProxyEnable) { HKEY hKeyIn = HKEY_CURRENT_USER, hKeyOut; if(RegOpenKeyEx(hKeyIn, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", 0, KEY_CREATE_LINK | KEY_WRITE | KEY_READ | KEY_NOTIFY, &hKeyOut) != ERROR_SUCCESS ) { return FALSE; } //检测是否已经允许使用代理服务器 ULONG regsize = 0; if(RegQueryValueEx(hKeyOut, "ProxyEnable", NULL, NULL, NULL, ®size)!=ERROR_SUCCESS) { return FALSE; } LPBYTE pValue = new BYTE[regsize]; memset(pValue, 0x00, regsize); if(RegQueryValueEx(hKeyOut, "ProxyEnable", NULL, NULL, pValue, ®size)!=ERROR_SUCCESS) { return FALSE; } bProxyEnable=(int)*pValue; delete[] pValue; pValue = NULL; /************************************************************/ if(bProxyEnable) { regsize = 0; if(RegQueryValueEx(hKeyOut, "ProxyServer", NULL, NULL, NULL, ®size)!=ERROR_SUCCESS) { return FALSE; } pValue = new BYTE[regsize]; memset(pValue, 0x00, regsize); if(RegQueryValueEx(hKeyOut, "ProxyServer", NULL, NULL, pValue, ®size)!=ERROR_SUCCESS) { return FALSE; } ip=(char*)pValue; delete[] pValue; pValue = NULL; } else ip=""; RegCloseKey(hKeyOut); return TRUE; }
BOOL Cxxx::DelProxy() { HKEY hKeyIn = HKEY_CURRENT_USER, hKeyOut; if(RegOpenKeyEx( hKeyIn, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", 0, KEY_CREATE_LINK | KEY_WRITE | KEY_READ | KEY_NOTIFY, &hKeyOut) != ERROR_SUCCESS ) { return FALSE; } ULONG regsize = 0; if(RegQueryValueEx( hKeyOut, "ProxyEnable", NULL, NULL, NULL, ®size)!=ERROR_SUCCESS) { return FALSE; } LPBYTE pValue = new BYTE[regsize]; memset(pValue, 0x00, regsize); if(RegQueryValueEx( hKeyOut, "ProxyEnable", NULL, NULL, pValue, ®size)!=ERROR_SUCCESS) { return FALSE; } BOOL bEnable=(BOOL)*pValue; delete[] pValue; pValue = NULL; /************************************************************/ if(bEnable) { regsize = 0; if(RegQueryValueEx( hKeyOut, "ProxyServer", NULL, NULL, NULL, ®size)!=ERROR_SUCCESS) { return FALSE; } pValue = new BYTE[regsize]; memset(pValue, 0x00, regsize); DWORD dwData=0; if(RegSetValueEx( hKeyOut, "ProxyEnable", 0, REG_DWORD, (LPBYTE)&dwData, sizeof(DWORD))!=ERROR_SUCCESS) { return FALSE; } RegCloseKey(hKeyOut); //使设置生效 if(!InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0)) { return FALSE; } } return TRUE; }