找回密码
 加入
搜索
查看: 4334|回复: 5

ie.au3如何才能稳定工作

  [复制链接]
发表于 2009-10-3 10:48:42 | 显示全部楼层 |阅读模式
我做了一个自动填表但是经常自动退出
我有次试了一下,这个和我的速度有关系?
如果这样第二次就报错误了
#include <IE.au3>
$file = FileOpen("zi.txt", 0)
If $file = -1 Then
        MsgBox(0, "错误", "在脚本目录下建立zi.txt的文本文件在写几个汉字")
        Exit
EndIf
$sl = 0
While 1
        $chars = FileRead($file, 2)
        $oIE = _IECreate("http://www.uname.cn/dic/zidian.asp", 0, 0)
        $a = _IEGetObjByName($oIE, "gb")
        _IEFormElementSetValue($a, $chars)
        $oSubmit = _IEGetObjByName($oIE, "gb")
        $b = _IEGetObjByName($oIE, "Submit")
        _IEAction($b, "click")
        _IELoadWait($oIE)
        $sHTML = _IEBodyReadHTML($oIE)
        $Link = StringRegExp($sHTML, 'href="(/html/dic/[^"]+)">', 3)
        If @error = 0 Then
                $s = 'http://www.uname.cn' & $Link[0]
        Else
                MsgBox(0,"","错误")
        EndIf
        IniWrite("e1.ini", "Section3",$chars, $s)
        $sl = $sl + 1
        ToolTip("网址: " & $s, 50, 50, "已经完成了第" & $sl & "个字上一个是" & $chars, 0, 4)
        _IEQuit($oIE)
WEnd
但是如果这样的话就能长久25次多吧,但是如何才能稳定呢?
#include <IE.au3>

$file = FileOpen("zi.txt", 0)
If $file = -1 Then
        MsgBox(0, "错误", "在脚本目录下建立zi.txt的文本文件在写几个汉字")
        Exit
EndIf
$sl = 0
While 1
        $chars = FileRead($file, 2)
        Sleep(1000)
        $oIE = _IECreate("http://www.uname.cn/dic/zidian.asp", 0, 0)
        Sleep(1000)
        $a = _IEGetObjByName($oIE, "gb")
        Sleep(1000)
        _IEFormElementSetValue($a, $chars)
        Sleep(1000)
        $oSubmit = _IEGetObjByName($oIE, "gb")
        Sleep(1000)
        $b = _IEGetObjByName($oIE, "Submit")
        Sleep(1000)
        _IEAction($b, "click")
        Sleep(1000)
        _IELoadWait($oIE)
        $sHTML = _IEBodyReadHTML($oIE)
        $Link = StringRegExp($sHTML, 'href="(/html/dic/[^"]+)">', 3)
        If @error = 0 Then
                $s = 'http://www.uname.cn' & $Link[0]
        Else
                MsgBox(0,"","错误")
        EndIf
        IniWrite("e1.ini", "Section3",$chars, $s)
        $sl = $sl + 1
        ToolTip("网址: " & $s, 50, 50, "已经完成了第" & $sl & "个字上一个是" & $chars, 0, 4)
        _IEQuit($oIE)
WEnd
发表于 2010-2-27 10:58:57 | 显示全部楼层
好像不能稳定,我的程序也是,只好做了个辅助程序,但这个程序挂掉自动重新运行之。
发表于 2010-2-28 16:51:20 | 显示全部楼层
本帖最后由 foboy 于 2010-2-28 16:52 编辑

Do
$oIE = _IECreate("http://www.uname.cn/dic/zidian.asp", 0, 0)
sleep(100)
Until $oIE<>0 and  NOT @ERROR
你试试。
可能有时候CREATE失败, 就出问题了。加个判断可能好点。
发表于 2010-3-1 10:28:51 | 显示全部楼层
!!!!

评分

参与人数 1金钱 -10 收起 理由
afan -10

查看全部评分

发表于 2010-7-9 00:08:21 | 显示全部楼层
我以已运行就出错。。。不知道为什么
发表于 2010-7-9 12:34:28 | 显示全部楼层
回复 1# ac5474012

1. 使用OBJ对象,并引入错误处理过程...

2. 直接调用DLL实现上述功能。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-22 01:45 , Processed in 0.077692 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表