VC获取和修改代理设置源码

来源:互联网 发布:windows自带纸牌游戏 编辑:程序博客网 时间:2024/05/02 00:00

获得设置的代理服务器地址的代码

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;}