关于 InternetOpenUrl(200分)

  • 主题发起人 主题发起人 lhq456
  • 开始时间 开始时间
L

lhq456

Unregistered / Unconfirmed
GUEST, unregistred user!
我用InternetOpenUrl函数访问一个国外的网址,而我上的是169,这样一来程序将在一个
相当长的时间内没有响应,请问如何使“没有响应”的时间缩短?我想用
InternetSetOption函数,通过设置INTERNET_OPTION_SEND_TIMEOUT参数实现,
但具体用法不太清楚,请高手指点!

另外我能否通过其它途径(不修改注册表)达到切换Internet选项卡中的
“始终拨打默认连接”和“从不进行拨号连接”的目的?
 
var
AWord : LongWord;

AWord:=10000;
InternetSetOption(hHttpHandle,Internet_OPTION_CONNECT_TIMEOUT,@AWord,4)
 
谢谢hopfield,但我试了一下还是不行,程序仍出现很长时间的“无响应”!
 
无响应? 你是怎么调的? 我试过没问题呀! InternetSetOption有个Bool型的返回值,
你判断了吗? 把你的代码贴出来看看.
 
试试在另一个线程中去调用!
 
我的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
hHttpSession : hINTERNET;
AWord:LongWord;
begin
hHttpSession:=InternetOpen('Delphi',0,nil,nil,0);
AWord :=1000;
InternetSetOption(hHttpSession,Internet_OPTION_CONNECT_TIMEOUT,@AWord,4);
InternetOpenURL(hHttpSession,PChar('http://www.yahoo.com'),nil,0,0,0);
InternetCloseHandle(hHttpSession);
end;

注意:用169上网,不是163!
 
还有人知道吗?
 
InternetSetOption函数的返回值为True,但没有效果,不知何故?
 
InternetOpenUrl也有个返回值,如果返回Null表明失败,你判断了吗?
 
InternetOpenUrl的返回值我也判断了,为NULL。

具体情况是这样的:如果我用163上网,那么跟踪调试的时候一切正常,即InternetOpenUrl
很快就会返回一个地址$CC0000(举例),但如果我用169上网,那么跟踪调试的时候就要等
待很长的时间才会返回NULL值,我想做到的就是缩短返回NULL值的时间。
 
哪位高手还想发言?
 
难道真的没有解决办法了?!
 
你设的是INTERNET_OPTION_SEND_TIMEOUT还是Internet_OPTION_CONNECT_TIMEOUT
 
应该先使用ICMP PING检测对方主机是否正常工作,TCP请求连接是要很久才失败。
 
我设的是INTERNET_OPTION_SEND_TIMEOUT
 
设Internet_OPTION_CONNECT_TIMEOUT看看
 
Internet_OPTION_CONNECT_TIMEOUT 也不行呀!
 
多人接受答案了。
 
后退
顶部