两个问题:
1、如何检测webbrowser控件访问的网站无法打开
2、webbrowser的代理服务器设置病直接生效

解决方案 »

  1.   

    第一个问题不懂……可能要看返回值吧
    procedure TForm1.Button1Click(Sender: TObject);
    var
      info : INTERNET_PROXY_INFO;
      reg  : TRegistry;
    begin
      reg := TRegistry.Create;
      reg.RootKey:=HKEY_CURRENT_USER;
      if reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet Settings',False) then
      begin
        reg.Writestring('ProxyServer','172.23.23.23:8888');
        reg.Writestring('ProxyEnable', '1');
      end;
      reg.CloseKey;
      reg.Free;  info.dwAccessType:=INTERNET_OPEN_TYPE_PROXY;
      info.lpszProxy:='172.23.23.23:8888';
      InternetSetOption(nil,INTERNET_OPTION_PROXY,@info,1000);  InternetSetOption(nil,INTERNET_OPTION_REFRESH, nil,0);
      InternetSetOption(nil,INTERNET_OPTION_SETTINGS_CHANGED, nil,0);
    end;
    如果是切换代理的话
    user urlmon,wininet;
    procedure qiehuanproxy(const proxyname:string);
    var info:TInternetProxyInfo;
      lngth:integer;
      h:integer;
      proxy :pChar;
      bypass :PChar;
      begin
      proxy:=pchar(proxyname);//proxy address:port
      bypass:=pChar('');
      info.dwAccessType := INTERNET_OPEN_TYPE_PROXY  ;
      info.lpszProxy :=proxy;
      info.lpszProxyBypass:=bypass;
      lngth:=sizeof(info);
       h:=UrlMkSetSessionOption(INTERNET_OPTION_PROXY ,@info,lngth,0);
    end 
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject); 
    var 
      info : INTERNET_PROXY_INFO; 
      reg  : TRegistry; 
    begin 
      reg := TRegistry.Create; 
      reg.RootKey:=HKEY_CURRENT_USER; 
      if reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet Settings',False) then 
      begin 
        reg.Writestring('ProxyServer','172.23.23.23:8888'); 
        reg.Writestring('ProxyEnable', '1'); 
      end; 
      reg.CloseKey; 
      reg.Free;   info.dwAccessType:=INTERNET_OPEN_TYPE_PROXY; 
      info.lpszProxy:='172.23.23.23:8888'; 
      InternetSetOption(nil,INTERNET_OPTION_PROXY,@info,1000);   InternetSetOption(nil,INTERNET_OPTION_REFRESH, nil,0); 
      InternetSetOption(nil,INTERNET_OPTION_SETTINGS_CHANGED, nil,0); 
    end; 
    如果是切换代理的话 
    user urlmon,wininet; 
    procedure qiehuanproxy(const proxyname:string); 
    var info:TInternetProxyInfo; 
      lngth:integer; 
      h:integer; 
      proxy :pChar; 
      bypass :PChar; 
      begin 
      proxy:=pchar(proxyname);//proxy address:port 
      bypass:=pChar(''); 
      info.dwAccessType := INTERNET_OPEN_TYPE_PROXY  ; 
      info.lpszProxy :=proxy; 
      info.lpszProxyBypass:=bypass; 
      lngth:=sizeof(info); 
      h:=UrlMkSetSessionOption(INTERNET_OPTION_PROXY ,@info,lngth,0); 
    end 
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject); 
    var 
      info : INTERNET_PROXY_INFO; 
      reg  : TRegistry; 
    begin 
      reg := TRegistry.Create; 
      reg.RootKey:=HKEY_CURRENT_USER; 
      if reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet Settings',False) then 
      begin 
        reg.Writestring('ProxyServer','172.23.23.23:8888'); 
        reg.Writestring('ProxyEnable', '1'); 
      end; 
      reg.CloseKey; 
      reg.Free;   info.dwAccessType:=INTERNET_OPEN_TYPE_PROXY; 
      info.lpszProxy:='172.23.23.23:8888'; 
      InternetSetOption(nil,INTERNET_OPTION_PROXY,@info,1000);   InternetSetOption(nil,INTERNET_OPTION_REFRESH, nil,0); 
      InternetSetOption(nil,INTERNET_OPTION_SETTINGS_CHANGED, nil,0); 
    end; 
    如果是切换代理的话 
    user urlmon,wininet; 
    procedure qiehuanproxy(const proxyname:string); 
    var info:TInternetProxyInfo; 
      lngth:integer; 
      h:integer; 
      proxy :pChar; 
      bypass :PChar; 
      begin 
      proxy:=pchar(proxyname);//proxy address:port 
      bypass:=pChar(''); 
      info.dwAccessType := INTERNET_OPEN_TYPE_PROXY  ; 
      info.lpszProxy :=proxy; 
      info.lpszProxyBypass:=bypass; 
      lngth:=sizeof(info); 
      h:=UrlMkSetSessionOption(INTERNET_OPTION_PROXY ,@info,lngth,0); 
    end 
      

  4.   

    谢谢大家,这个我知道,但如何使用的sock5的代理,而且还是有用户和密码的,不知如何设置
      

  5.   

    http://www.qqgb.com/Program/Delphi/DelphiWord/Program_59378.html
    你看看这个对你有没有帮助
      

  6.   

    1、如何检测webbrowser控件访问的网站无法打开 
    这个有间接方法,判断一个IE出现的头标题的字就行了。
    2、webbrowser的代理服务器设置直接生效,楼上已经说了。