TWebBrowser控件设置代理服务器问题。(50分)

  • 主题发起人 主题发起人 php2
  • 开始时间 开始时间
P

php2

Unregistered / Unconfirmed
GUEST, unregistred user!
用TWebBrowser控件浏览网页,中途我要程序改用其它代理服务器,程序改了
注册表中ProxyEnable和ProxyServer,但是TWebBrowser和IE浏览器一点反
应也没有。
我想我的程序和IE中的设置一样可以马上生效,应该怎样做?
 
sendmessage(0,wm_notify,0,0)
 
elan大虾:
  你的方法好象不行!
  我在程序中修改了:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings

HKEY_USERS/.DEFAULT/Software/Microsoft/Windows/CurrentVersion/Internet Settings
中的:ProxyEnable和ProxyServer
在加上:sendmessage(0,wm_notify,0,0)
但是,运行是程序仍然不会自动在两个代理服务器之间互相替换,Why?
 
>自动在两个代理服务器之间互相替换
这是什么意思?一会儿用 current_user 下的代理服务器,一会儿用 .default 下的
代理服务器?

我刚才又试了半个小时,没问题啊。修改注册表后,ie自动使用新的代理服务器了,
或者取消用代理,ie就不用代理了。
 
当然是两个同时改,elan可不可以把你的源程序给我,我实在是做不出来。
 
我就改了 current user 下的,然后sendmessage 就行了,没别的
 
我改代理服务器的代码如下:请指教!
var
registerTemp : TRegistry;
begin
time_sum:=time_sum+1;
if downhtmlc<>0 then begin
downhtmlc:=downhtmlc+1;
end;
if (time_refresh<>0) and ((time_sum mod time_refresh)=0)
then begin
if bb_go.Enabled then begin
//改代理服务器
with registerTemp do begin
try
registerTemp := TRegistry.Create;
//建立一个Registry实例
RootKey:=HKEY_CURRENT_USER
//设置根键值为HKEY_CURRENT_USER
if OpenKey('/Software/Microsoft/Windows/CurrentVersion/Internet Settings',false) then begin
writebool('ProxyEnable',cb_proxy.Checked);
writestring('ProxyServer','');
end;
finally
CloseKey;
Free;
end;
end;
if cb_proxy.Checked and (lb_proxy.Items.Count>0) then begin
with registerTemp do begin
try
registerTemp := TRegistry.Create;
//建立一个Registry实例
RootKey:=HKEY_CURRENT_USER
//设置根键值为HKEY_CURRENT_USER
if OpenKey('/Software/Microsoft/Windows/CurrentVersion/Internet Settings',false) then begin
writestring('ProxyServer',lb_proxy.Items.Strings[pos_proxy]);
sb_main.Panels[2].Text:=lb_proxy.Items.Strings[pos_proxy];
//移到下一个代理的位置
pos_proxy:=(pos_proxy+1) mod lb_proxy.Items.Count;
sendmessage(0,wm_notify,0,0);
end;
finally
CloseKey;
Free;
end;
end;
end;
wb_main.Navigate('www.delphibbs.com');
end;

end;
end;
 
为什么不
writebool('ProxyEnable',cb_proxy.Checked);
writestring('ProxyServer','你的代理设置');
sendmessage(0,wm_notify,0,0);
为什么要拆成了两个部分? 另外,我没有在twebBrowser中试过,我是用程序修改
注册表,然后在ie输入网址浏览不同的网站。ie就能自动使用刚设的代理了
 
elan:
  真不好意思,又要麻烦你了。
  我用你最后介绍的方法试过,我是这样做的:
  首先,开一个IE窗口A去http://www.sky.net.cn/,这个站点可以看到我现在的IP,这样
比较准。
  接着,换别的代理服务器,并另外开一个IE窗口B,也是去http://www.sky.net.cn/,这
时B的IP地址是新的。
  最后,刷新A和B两个IE窗口,结果发现新的还是新的,但是旧的也还是旧的。
  <big><b>没有达到预期目的。</b></big>
  其实,我的目的很简单,只是想在最后刷新A的时候看到的是新的IP。谢谢!
  请大虾试试这样做,看看结果如何!
 
刷新a窗口,应该得到新的ip呀。
奇怪,我也找个代理试试去。

不过我先告诉你我原来试验的结果。我机器所在地局域网不能访问国外网站,
只有通过代理服务器才行。我在我得delphi程序中更改代理设置,然后用ie
访问yahoo,如果我把代理取消或者设置无效的代理服务器,然后刷新页面就
无法连接。设置正确的代理连接正常。
 
eLan:
  新的测试结果出来了吗?
 
我去叫 elan 一下.他来不来就不知道了
 
ie5和ie4的代理服务器设置不一样,在IE4中直接修改注册表就行,在IT5中就不行了,各位不要再争了。
 
php2:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
接受答案了.
 
后退
顶部