VC 設置代理IP

最近幫朋友做個小工具,設置代理IP。在這裏和大家分享一下。設置代理IP其實很簡單,就是修改IE設置,但我們不可以能每次都手動調整。修改註冊表就可以搞定他。代理IP分局域網代理和單位網絡代理。兩個的註冊表也不一樣的。多的不說了,我貼代理,大家一看就知道了

 

void CProxyDlg::SetPorxy(CString str, int isproxy)
{

 CString ipstr = m_ipstr;
 HKEY hKEY;
 LPCTSTR data_Set="Software//Microsoft//Windows//CurrentVersion//Internet Settings";
 //訪問註冊表,hKEY則保存此函數所打開的鍵的句柄
 long ret0=(::RegOpenKeyEx(HKEY_CURRENT_USER,data_Set,0,KEY_WRITE,&hKEY));
 if(ret0!=ERROR_SUCCESS)      //如果無法打開hKEY,則中止程序的執行
 {
  AfxMessageBox("錯誤:無法打開有關的hKEY");
  return;
 }
 
 //打開局域網代理
 DWORD type = REG_DWORD ;     //定義數據類型 
 long ret1=::RegSetValueEx(hKEY, "ProxyEnable", NULL, type, (LPBYTE)(&isproxy), 4);
 if(ret1!=ERROR_SUCCESS)
 {
  AfxMessageBox("錯誤:無法設置有關的註冊表信息");
  return;
 }
    
 LPBYTE owner_Set=CString_To_LPBYTE(str); //定義用戶姓名 owner_Set
 type = REG_SZ ;        //定義數據類型
 int len = str.GetLength();   //定義數據長度
 
 ret1=::RegSetValueEx(hKEY, "ProxyServer", NULL, type, owner_Set, len);
 if(ret1!=ERROR_SUCCESS)
 {
  AfxMessageBox("錯誤:無法設置有關的註冊表信息");
  return;
 }
 
 //單獨網絡上網
 data_Set="Software//Microsoft//Windows//CurrentVersion//Internet Settings//Connections";
 //訪問註冊表,hKEY則保存此函數所打開的鍵的句柄
 ret0=(::RegOpenKeyEx(HKEY_CURRENT_USER,data_Set,0,KEY_WRITE,&hKEY));
 if(ret0!=ERROR_SUCCESS)      //如果無法打開hKEY,則中止程序的執行
 {
  AfxMessageBox("錯誤:無法打開有關的hKEY");
  return;
 }
 
 type = REG_BINARY ;     //定義數據類型
 UCHAR szBuf[80] = {0};
 szBuf[0] = 0x3c;
 szBuf[4] = 0x09;
 if ( 1 == isproxy  )
 {
  szBuf[8] = 0x03;  //代理
 }else
 {
  szBuf[8] = 0x01;  //不代理
 }
 szBuf[12] = str.GetLength();
 for (int i = 0; i < len; i++ )
 {
  szBuf[i+ 16] = str[i] ;
 }
 
 CString local = "<local>";
 for (i = 0; i < 7; i++ )
 {
  szBuf[20 + str.GetLength() + i] = local[i];
 }

 ret1=::RegSetValueEx(hKEY, "寬帶連接", NULL, type, (LPBYTE)(szBuf), 80);
 
 if(ret1!=ERROR_SUCCESS)
 {
  AfxMessageBox("錯誤:無法設置有關的註冊表信息");
  return;
 }
 
 RegCloseKey(hKEY);
 
 InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);  //通知註冊表中代理改變,下次連接時啓動代理
 InternetSetOption(NULL ,INTERNET_OPTION_REFRESH , NULL, 0);    //從註冊表中讀入代理
}

 

 

http://download.csdn.net/source/2646323 可以下載這個小工具,有源代碼

發佈了13 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章