window 通过改变注册表键值设置ie代理(超级有用)

来源:互联网 发布:怎么看淘宝的图片大小 编辑:程序博客网 时间:2024/05/21 07:54


下午写的一个小东西,想想没什么技术,省得别人还要找资料,就放出来吧, :)
      下载地址:http://bbs.80dnst.com/thread-96-1-1.html

//----------------------------------------------------------------
// filename:           main.cpp
// created: 2007-10-16           12:45 
// author:           ∮明天去要饭
// http://hi.baidu.com/kgdiwss
// http://www.80dnst.com
// http://bbs.80dnst.com
// purpose: set ie proxy
//----------------------------------------------------------------

#include <stdio.h>
#include <windows.h>

#define           PROXY_REG_ITEM            "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"

// global variables
char g_szProxyServ[256] = {0};

void Usage()
{
printf("by:∮明天去要饭\n");
printf("Usage:\n");
printf("             ProxySetting.exe [-options] [ip:port]\n\n"); 
printf("             [options]\n");
printf("             -e             Enable IE Proxy.\n");
printf("             -d             Disable IE Proxy.\n\n");
printf("Example:\n");
printf("             ProxySetting.exe -e 127.0.0.1:8080\n");
printf("             ProxySetting.exe -d\n");
}

//
// Set IE Proxy
// 
// HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
// ProxyEnable:
//            0            proxy is disable
//            1            proxy enable.
// ProxyServer:
//             proxy ip
//
BOOL SetProxy(BOOL bEnabled)
{
HKEY hKey = NULL;

LONG lret = RegOpenKeyEx(HKEY_CURRENT_USER,
           PROXY_REG_ITEM,
           NULL,
           KEY_WRITE |
           KEY_SET_VALUE, 
           &hKey);
if(hKey == NULL || lret != ERROR_SUCCESS)
{
           return FALSE;
}

// enable or disable
if(bEnabled)
{
           lret = RegSetValueEx(hKey,
            "ProxyServer",
            NULL,
            REG_SZ,
            (BYTE*)g_szProxyServ,
            sizeof(g_szProxyServ));
  
           DWORD dwenable = 1;
           lret = RegSetValueEx(hKey,
            "ProxyEnable",
            NULL,
            REG_DWORD,
            (LPBYTE) & dwenable,
            sizeof(dwenable)); 
}
else
{
           DWORD dwenable = 0;
           lret = RegSetValueEx(hKey,
            "ProxyEnable",
            NULL,
            REG_DWORD,
            (LPBYTE) & dwenable,
            sizeof(dwenable));
}   
RegCloseKey(hKey);

return TRUE;
}

int main(int argc, char *argv[])
{
if(argc != 2 && argc != 3)
{
           Usage();
           return -1;
}

// enable
if(strcmp(argv[1], "-e") == 0)
{
           if(strcmp(argv[2], "") == 0 || strcmp(argv[2], "0") == 0)
           {
            printf("Proxy IP:Port Error.\n");
            return -1;
           }
           strncpy(g_szProxyServ, argv[2], sizeof(g_szProxyServ));
  
           if(SetProxy(TRUE))
           {
            printf("Enable IE Proxy Successful.\n");
           }
           else
           {
            printf("Enable IE Proxy Failed.\n");
           }
}
// disable
else if(strcmp(argv[1], "-d") == 0)
{
           if(SetProxy(FALSE))
           {
            printf("Disable IE Proxy Successful.\n");
           }
           else
           {
            printf("Disable IE Proxy Failed.\n");
           }
}

return 0;
}

效果如下:

0 0
原创粉丝点击