我是内网用户,当我的IE设置代理服务器:'135.35.6.111:808'时,IE可以访问外网,比如访问网页
http://www.ynzsjm.com/Proxy.aspx但是当我取消或修改IE代理服务器IP为一个错误的IP地址,然后用下面的代码来重新设置正确的代理服务器,结果是WebBrowser1并不能正常访问网页,那么,哪里不对?
  FProxy:=Format('%s:%s',['135.35.6.111','808']);  //111
  Pinfo.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
  Pinfo.lpszProxy := '135.35.6.111';    //PChar Type
  InternetSetOption(nil, INTERNET_OPTION_PROXY, @Pinfo, SizeOf(PInfo));
  InternetSetOption(nil, INTERNET_OPTION_SETTINGS_CHANGED, nil, 0);
  WebBrowser1.Navigate('http://www.ynzsjm.com/Proxy.aspx');

解决方案 »

  1.   

    给你一段我在用的代码,都能立即起作用!!!!!!unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
     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;end.
      

  2.   

    楼上的,你的代码我看过,但是这里有个问题,我只想为我的WebBrowser组件设置代理服务器,不想影响别的IE的窗口,所以我想不应去写注册表,这个思路有什么问题?