pig 发表于 2008-11-8 04:24:08

请问_IECreate如何判断超时并自动退出?

如题
$oIE = _IECreate("http://weather.news.qq.com/inc/ss296.htm", 1, 1)
如果有时候网络中断不能打开网页,怎么判断它超时并退出?
我用
if @error then Exit
好像不行,还是会执行后面的语句。

[ 本帖最后由 pig 于 2008-11-25 23:14 编辑 ]

liongodmien 发表于 2008-11-8 12:46:58


$oIE = _IECreate("http://weather.news.qq.com/inc/ss296.htm", 1, 1)
$T = _IEDocReadHTML($oIE)
If StringInStr($T, '什么网页问题的相关错误信息') <> 0 Then exit



$oIE = _IECreate("http://weather.news.qq.com/inc/ss296.htm", 1, 1)
If @error <> 0 then exit


[ 本帖最后由 liongodmien 于 2008-11-8 12:52 编辑 ]

rho123 发表于 2008-11-12 00:25:55

这个函数有返回错误的值。可以参考下
返回值

成功: 返回指向InternetExplorer.Application对象的对象变量
失败: 返回0 并且设置 @ERROR
@Error: 0 ($_IEStatus_Success) = 无错误
1 ($_IEStatus_GeneralError) = 一般性错误
3 ($_IEStatus_InvalidDataType) = 无效数据类型
4 ($_IEStatus_InvalidObjectType) = 无效对象类型
6 ($_IEStatus_LoadWaitTimeout) = 加载等待超时
8 ($_IEStatus_AccessIsDenied) = 服务被拒绝
9 ($_IEStatus_ClientDisconnected) = 客户端断开
@Extended: 如果"附着"是成功设置true (1) ,反之设置为false (0)

pig 发表于 2008-11-12 23:03:50

原帖由 liongodmien 于 2008-11-8 12:46 发表 http://www.autoitx.com/images/common/back.gif

$oIE = _IECreate("http://weather.news.qq.com/inc/ss296.htm", 1, 1)
$T = _IEDocReadHTML($oIE)
If StringInStr($T, '什么网页问题的相关错误信息')0 Then exit



$oIE = _IECreate ...

测试@ERROR无效
$oIE = _IECreate("http://weather.news.qq.com/inc/ss296.htm", 1, 1)
If @error<>0 then MsgBox(0,0,"timeout")
用了这个命令,我特地把网络断开,也就是网页会超时,可是一直没有msgbox弹出,脚步还是会执行完所有命令。
现在用这个命令了,因为我是用了获取天气的,直接检测HTML里面有没有我这个城市的天气,没有就退出,实在想不明白为什么@ERROR不能用。
oIE = _IECreate("http://weather.news.qq.com/inc/ss296.htm", 1, 0)
$sHTML = _IEBodyReadText($oIE)
If StringInStr($sHTML, "深圳") = 0 Then Exit

sbyguli 发表于 2008-11-14 17:29:10

出错是用来确认不能打开网页,也就是404那类的~

pig 发表于 2008-11-25 23:13:42

好像问题没有解决,不过还是结贴吧。
页: [1]
查看完整版本: 请问_IECreate如何判断超时并自动退出?