不重启IE修改代理服务器的设置

IE通过Internet选项进行代理服务器的设置相信大家很熟悉,但是有的情况下,需要有一堆代理IP进行切换,这样就显得很不方便。那我们就弄小工具实现下切换
先介绍下注册表下的两个键
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings下面
       ProxyServer:设置代理服务器的地址和端口号
       ProxyEnable:设置是否开启代理服务器

知道原理,代码写起来也很简单

1  RegistryKey key  =  Registry.CurrentUser.OpenSubKey( " Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings " true );
2  key.SetValue( " ProxyServer " this .proxylibs[index]);
3  key.SetValue( " ProxyEnable " 1 );
4  key.Close();

    这样的实现虽然简单,还是存在一个问题。当设置完注册表后,当前的打开的IE窗口还不能立即生效,只有打开新窗口,配置才能生效.很多时候关掉窗口COOKIE就失效了,就失去了修改代理IP的意义

下面在介绍一个WinInet下的函数,设置一个 Internet 选项,让设置完的配置立即生效,看代码

 

1  [DllImport( " wininet.dll " , SetLastError  =   true )]
2  private   static   extern   bool  InternetSetOption(IntPtr hInternet,  int  dwOption, IntPtr lPBuffer,  int  lpdwBufferLength);
3  private   const   int  INTERNET_OPTION_REFRESH  =   0x000025 ;
4  private   const   int  INTERNET_OPTION_SETTINGS_CHANGED  =   0x000027 ;
5  InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero,  0 );
6  InternetSetOption(IntPtr.Zero, INTERNET_OPTION_REFRESH, IntPtr.Zero,  0 );
7 

完整的代码

 

 1     // ======================================================
 2       //      100M 双线空间 + 50M数据库 + 100M邮箱  28元/年
 3       //      200M 双线空间 + 50M数据库 + 100M邮箱  38元/年
 4       //      300M 双线空间 + 50M数据库 + 100M邮箱  48元/年
 5       //      600M 双线空间 + 100M数据库 + 200M邮箱 80元/年
 6       //      1G 双线空间   + 200M数据库 + 300M邮箱  100元/年
 7 
 8       //                              特价主机,有需要的M我 QQ:70975363
 9 
10       // ======================================================
11  public   class  ProxyManager
12  {
13      [DllImport( " wininet.dll " , SetLastError  =   true )]
14       private   static   extern   bool  InternetSetOption(IntPtr hInternet,  int  dwOption, IntPtr lPBuffer,  int  lpdwBufferLength);
15 
16       private   const   int  INTERNET_OPTION_REFRESH  =   0x000025 ;
17       private   const   int  INTERNET_OPTION_SETTINGS_CHANGED  =   0x000027 ;
18 
19       private  List < string >  proxylibs  =   new  List < string > ();
20 
21        private   void  Reflush()
22       {
23           InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero,  0 );
24           InternetSetOption(IntPtr.Zero, INTERNET_OPTION_REFRESH, IntPtr.Zero,  0 );
25       }
26 
27 
28        public  ProxyManager()
29       {
30           OpenFileDialog opf  =   new  OpenFileDialog();
31            if  (opf.ShowDialog().Equals(DialogResult.OK))
32           {
33                string [] proxylist  =  File.ReadAllLines(opf.FileName, Encoding.Default);
34                for  ( int  i  =   0 ; i  <  proxylist.Length; i ++ )
35                    this .proxylibs.Add(proxylist[i]);
36           }
37       }
38 
39        public   void  SetProxy( int  index)
40       {
41           RegistryKey key  =  Registry.CurrentUser.OpenSubKey( " Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings " true );
42           key.SetValue( " ProxyServer " this .proxylibs[index]);
43           key.SetValue( " ProxyEnable " 1 );
44           key.Close();
45            this .Reflush();
46       }
47   }

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值