_INetGetSource()能不能加个时间限制?
想取某个网址。有时用_INetGetSource()访问某个网站太慢了。想加个时间判断,如,若超过3秒,则取消访问。 好象访问网络的函数,都没有“超时时间”设置,象msgbox()那样的 有时网络太慢,结果脚本就卡在那里半天,特别是访问国外的网站。有时能卡上半分钟,大家有没有办法对这种情况加个判断,超过5秒钟,若得不到得结果,就不访问这个网页了?其实我用这个函数也就是主要提取某网页上的一个字符串而已,有没有变通的办法? 如果只是为了获得网页上的东西,不妨用winhttp,可以设置超时时间。
如果非要用_INetGetSource(),不妨加到timer里,让它自己去访问而不阻断主进程 本帖最后由 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) 谢楼上两位。这样也勉强可以了。 WinInet,Winhttp,winsocket,你都可以选择使用。 想加延迟,太可以了,先把不延迟的放到你的脚本按要求改就是了 新手学习学习 这个真没办法完全解决,如果GUI比较复杂,该卡的时候还得卡,最好是加载界面之前就把数据下载好,或者在下载的时候关闭所有消息处理函数
页:
[1]