在使用Twebbrower时,怎样通过proxy访问目标网页(20分)

  • 主题发起人 主题发起人 adrich
  • 开始时间 开始时间
Twebbrower就是IE,设置一下Interner选项中的代理就可以了。
 
to zw84611
在delphi里,怎么设置Interner选项中的代理
 
uses Registry, urlmon, wininet;

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);
// InternetSetOption(nil, INTERNET_OPTION_REFRESH, nil, 0);
// Sendmessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
Result:=True;
end
finally
reg.CloseKey;
reg.free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ChangeProxy('148.233.159.24','80','',true);
end;
 
to zw84611
你代码的确可以改ie的代理设置,
我用delphi程序做了个测试,有这样一个情况,用下面代码浏览网页都是同一个ip结果。
这是怎么回事?
procedure TForm1.Button1Click(Sender: TObject);
begin
ChangeProxy('202.239.161.7','80','',true);
webbrowser1.Navigate('http://www.proxy.c/news/frmtip.jsp');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ChangeProxy('202.30.243.62','80','',true);
webbrowser1.Navigate('http://www.proxy.c/news/frmtip.jsp');
end;

 
没有必要这样做,你在执行ChangeProxy()之后立即执行Navigate(),中间没有间隔时间,
系统反应没有这样快。你可以把ChangeProxy()放在另一个按扭事件里。
 
ok! 谢谢zw84611指点
 
后退
顶部