hqyj

通过设置注册表来实现,设置完毕立即生效,不用重新启动 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;

分类:

技术点:

相关文章:

  • 2021-09-16
  • 2021-12-31
  • 2022-12-23
  • 2022-12-23
  • 2021-04-28
  • 2021-08-10
  • 2021-09-26
  • 2021-10-05
猜你喜欢
  • 2021-11-18
  • 2021-12-10
  • 2021-12-10
  • 2021-12-26
相关资源
相似解决方案