happytc 发表于 2011-4-3 23:52:35

_INetGetSource()能不能加个时间限制?

想取某个网址。有时用_INetGetSource()访问某个网站太慢了。想加个时间判断,如,若超过3秒,则取消访问。

happytc 发表于 2011-4-4 00:08:44

好象访问网络的函数,都没有“超时时间”设置,象msgbox()那样的

happytc 发表于 2011-4-4 10:11:03

有时网络太慢,结果脚本就卡在那里半天,特别是访问国外的网站。有时能卡上半分钟,大家有没有办法对这种情况加个判断,超过5秒钟,若得不到得结果,就不访问这个网页了?

其实我用这个函数也就是主要提取某网页上的一个字符串而已,有没有变通的办法?

bakefish 发表于 2011-4-4 16:54:11

如果只是为了获得网页上的东西,不妨用winhttp,可以设置超时时间。
如果非要用_INetGetSource(),不妨加到timer里,让它自己去访问而不阻断主进程

kxing 发表于 2011-4-4 20:01:41

本帖最后由 kxing 于 2011-4-4 20:04 编辑

用inetget
const $tnp=@scriptdir&"\~baidu.tmp"
$hDown=inetget("http://baidu.com",$tmp,1,1)

$timeout=timerinit()
do
if inetgetinfo($hDown,4) then exitloop
if timerdiff($timeout)>=3000 then
msgbox(16,"错误","连接服务器超时!")
exitloop
endif
sleep(100)
until inetgetinfo($hDown,2)
inetclose($hDown)

Local $htm=FileRead($tmp)
FileDelete($tmp)

msgbox(0,'ok',$htm)

happytc 发表于 2011-4-8 22:50:50

谢楼上两位。这样也勉强可以了。

republican 发表于 2011-4-8 23:27:22

WinInet,Winhttp,winsocket,你都可以选择使用。

netegg 发表于 2011-4-9 09:10:28

想加延迟,太可以了,先把不延迟的放到你的脚本按要求改就是了

ynkmdcs 发表于 2011-4-9 19:08:45

新手学习学习

蜘蛛抱蛋 发表于 2011-4-9 19:42:58

这个真没办法完全解决,如果GUI比较复杂,该卡的时候还得卡,最好是加载界面之前就把数据下载好,或者在下载的时候关闭所有消息处理函数
页: [1]
查看完整版本: _INetGetSource()能不能加个时间限制?