我用TWebBrowser怎么判断是否连通了Internet(就是说成功打开了一个Internet上的网页)(50分)

  • 主题发起人 主题发起人 bobit
  • 开始时间 开始时间
B

bobit

Unregistered / Unconfirmed
GUEST, unregistred user!
如题[red][/red][h1][/h1][:)]
 
怎么没人帮我解答啊
 
应该在头信息中获得返回的状态码吧。

1xx: Informational (收到请求但没有完全处理).
2xx: Success (收到理解并接受).
3xx: Redirection (需要客户的进一步动作).
4xx: Client Error (不懂请求或没有服务).
5xx: Server Error (请求有效但无法处理).
 
在其DocumentComplete事件中判断URL是否是你要打开的网页
 
procedure tfrmie2.webdocumentcomplete(sender: tobject; pdisp: idispatch;

var url: olevariant);

看见了吧,是ondocumentcomplete事件触发的下载完毕,还会告诉你是那个url被下载完
毕了,非常好用哦.因为页面中如果有iframe,那么每个iframe会触发一个documentcomplete
事件.



那我们怎么判断是否全部下载完毕呢?嘿嘿,twebbrowser控件不是有一个busy属性的吗?



procedure tfrmie2.webdocumentcomplete(sender: tobject; pdisp: idispatch;

var url: olevariant);

begin

if not(web.busy) then begin

showmessage('下载完毕');

end;

end;

对于每次连接(不论是鼠标点击还是用navigate2方法连接),twebbrowser的流程是这样的:



onbeforenavigate2 <--开始链接时会触发此事件

onnavigatecomplete2 <--成功的链接到此网页(以后才会有下面的事件)

ondownloadbegin <--开始下载

ondownloadcomplete <--下载结束

ondocumentcomplete <--页面下载完毕



对于每个html页面,顺序都是如此.如果是frame或iframe的文件都会当成html页面处理.
也就是说如果一个页面中有3个iframe,那么总共会触发4次beforenavigate2事件.
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个
downloadbegin和downloadcomplete事件.

 
谢谢 naughtboy 的回答。
现在我想要问的是:
我们这的电信每隔15分钟检测每个用户是否在这期间打开过网页,如果没有它就要求输入用户名和密码,很不方便,特别是游戏用户,还要切换
出游戏刷新网页,才能保证游戏正常。请问我要用什么方法来向Internet发送打开网页的信号,我以前用 的是WebBrowser打开一网页,定时刷新,
觉得不是最好解决方法,试问可以发送一什么信息来告诉电信我正在访问Internet
 
谢谢 naughtboy 的回答。
现在我想要问的是:
我们这的电信每隔15分钟检测每个用户是否在这期间打开过网页,如果没有它就要求输入用户名和密码,很不方便,特别是游戏用户,还要切换
出游戏刷新网页,才能保证游戏正常。请问我要用什么方法来向Internet发送打开网页的信号,我以前用 的是WebBrowser打开一网页,定时刷新,
觉得不是最好解决方法,试问可以发送一什么信息来告诉电信我正在访问Internet
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部