找回密码
 加入
搜索
查看: 1809|回复: 3

请教这段更新函数到底哪里写错了?

[复制链接]
发表于 2008-11-1 13:34:42 | 显示全部楼层 |阅读模式
百思不得其解啊,故障为更新的过程中偶尔会让程序自动退出.
偶尔又正常.出错几率不是很大.

Func UPDATE($BD, $FWQ, $NAME)
        TrayTip("<" & $NAME & ">", "请稍等,正在检查更新...", 2, 1)
        $DOWNLOAD = $FWQ
        $SIZE = InetGetSize($FWQ)
        If @error Then
                $ASK = MsgBox(20, "询问", "与更新服务器连接错误!" & @CRLF & "是否执行本地<" & $NAME & ">?")
                If $ASK = 6 Then
                        Return
                ElseIf $ASK = 7 Then
                        Run(FileGetShortName(@ScriptFullPath))
                        Exit
                EndIf
        Else

                If FileGetSize($BD) <> InetGetSize($FWQ) Then
                        MsgBox(64, "提示", "运行<" & $NAME & ">需要下载资源!" & @CRLF & "点确定开始下载!", 10)
                        InetGet($DOWNLOAD, $BD, 1, 1)
                        While @InetGetActive
                                $SIZE = InetGetSize($DOWNLOAD)
                                $PER = @InetGetBytesRead / $SIZE * 100
                                $RES = StringLeft($PER, 4) ;计算百分值
                                $DOWNED = @InetGetBytesRead / 1024 / 1024
                                $DOWNRES = StringLeft($DOWNED, 3)
                                $DOWNNEED = $SIZE / 1024 / 1024
                                $DOWNALL = StringLeft($DOWNNEED, 3)
                                ToolTip("总大小/已下载:" & $DOWNALL & "MB/" & $DOWNRES & "MB", @DesktopHeight / 2, 0, "[" & $RES & "%已完成] - 正在下载" & $NAME, 1)
                                Sleep(1000)
                        WEnd
                        ToolTip("", @DesktopHeight / 2, 0, "", 1)
                        RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Ymnetwork", $NAME, "REG_SZ", @YEAR & @MON & @MDAY)
                        MsgBox(64, "恭喜您", "<" & $NAME & ">更新成功!" & @CRLF & "--------------------------------" & @CRLF & "作者:L4EVER QQ:425145" & @CRLF & "EMAIL:L4EVER@QQ.COM", "5")
                        RunWait($BD)
                Else
                        RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Ymnetwork", $NAME, "REG_SZ", @YEAR & @MON & @MDAY)
                EndIf
        EndIf
EndFunc   ;==>UPDATE
发表于 2008-11-1 15:59:33 | 显示全部楼层
头文件是否放到了脚本最上?

使用各函数时最好把本来可以省略的参数也加上。

个人感觉应避免使用的语句形式:
If
....
ElseIf
.....
EndIf
 楼主| 发表于 2008-11-1 19:37:00 | 显示全部楼层
原帖由 liongodmien 于 2008-11-1 15:59 发表
头文件是否放到了脚本最上?

使用各函数时最好把本来可以省略的参数也加上。

个人感觉应避免使用的语句形式:
If
....
ElseIf
.....
EndIf

这段是放在脚本最下面的

变量值太多了不这样假设该如何做?
发表于 2008-11-2 13:09:08 | 显示全部楼层
原帖由 l4ever 于 2008-11-1 19:37 发表

这段是放在脚本最下面的

变量值太多了不这样假设该如何做?


IF或ELSEIF后面应试有一个ELSE或ENDIF,你是前面有一个IF,再一个ELSEIF却只有一个ENDIF,当不必有那么多个ELSE的时候:
IF
。..
ELSE
   IF
     ...
   ENDIF
ENDIF
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 02:12 , Processed in 0.077654 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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