zoukankan      html  css  js  c++  java
  • [Delphi]用程序更改 IE 的代理服务器(Proxy)设置及本地连接

    通过设置注册表来实现,设置完毕立即生效,不用重新启动 IE 浏览器。
        参数说明:
        Proxy:代理服务器 IP 地址;
        Port:端口号;
        ByPass:对所有的协议均使用相同的代理服务器;
        bEnabled:是否使用代理服务器(代理服务器是否生效)
        函数代码:
          // uses Wininet, registry;
          function ChangeProxy(const Proxy, Port,ByPass: string; const bEnabled: boolean = True): boolean;
          var
            reg: Tregistry;
            info: INTERNET_PROXY_INFO;
            Fproxy: string;
          begin
            Result := False;
            FProxy :=Format('%s:%s',[Proxy,Port]);
            reg :=Tregistry.Create;
            try
              reg.RootKey :=HKEY_CURRENT_USER;
              if reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet Settings', True) then
              begin
                reg.Writestring('ProxyServer', Fproxy);
                reg.WriteInteger('ProxyEnable', integer(bEnabled));
                info.dwAccessType :=INTERNET_OPEN_TYPE_PROXY;
                info.lpszProxy :=pchar(proxy);
                info.lpszProxyBypass :=pchar(ByPass);
                InternetSetOption(nil, INTERNET_OPTION_PROXY, @info, SizeOf(Info));
                InternetSetOption(nil, INTERNET_OPTION_SETTINGS_CHANGED, nil, 0);
                Result:=True;
              end
            finally
              reg.CloseKey;
              reg.free;
            end;
          end;

    调用:

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ChangeProxy('202.99.29.27','80','1',true)
    end;

    取消:

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    ChangeProxy('202.99.29.27','80','1',false)
    end;

    rocedure TForm1.Button1Click(Sender: TObject);
    var
       localIp,ipEnd,dir:string;
       list:tstrings;
    begin
        localIp:=idipwatch1.LocalIP;
        list:=tstringlist.Create;
        extractstrings(['.'],[],pchar(localIp),list);
        ipEnd:= list.Strings[list.Count-1];
        list.Free;
        memo1.Clear;
        memo1.Lines.Add('@echo off');
        memo1.Lines.Add(':start');
        memo1.Lines.Add('netsh interface ip set address name="本地连接" static 172.16.0.'+ipEnd+' 255.255.0.0');
        memo1.Lines.Add('netsh interface ip set address name="本地连接" gateway=172.16.0.1 gwmetric=1 >nul');
        memo1.Lines.Add('netsh interface ip set dns name="本地连接" source=static addr=172.16.0.1 register=primary');
        memo1.Lines.Add('del "ip.bat"');
        memo1.Lines.Add('echo.');
        getDir(0,dir);
        memo1.Lines.SaveToFile(dir+'\ip.bat');
        ShellExecute(handle,'open',pchar(dir+'\ip.bat'),nil,nil,SW_SHOWNORMAL);


    end;

  • 相关阅读:
    路由器设置无线网的方法
    numpy, pandas, matplotlib等常用库的学习手册
    文本乱码的解决办法
    漫画:SOA中怎样确定服务的粒度?
    漫画:大公司都在重复造轮子吗?
    演讲稿:新人培养之道
    漫画:全面理解java.lang.IllegalArgumentException及其可用性设计
    漫画:性能、可用性和锁
    漫画:Linux中/etc/resolv.conf文件和puppet工具解析
    《两地书》--Kubernetes(K8s)基础知识(docker容器技术)
  • 原文地址:https://www.cnblogs.com/hqyj/p/2165316.html
Copyright © 2011-2022 走看看