boyhong 发表于 2009-11-27 10:26:29

@InetGetBytesRead在新版AUTOIT下调试出错

本帖最后由 boyhong 于 2009-11-29 11:03 编辑

我知道新版没有@InetGetBytesRead了,而是,InetGetInfo( [ 句柄 [, 索引 ]] )以下这段示例进度条很漂亮,可我多次转换不成功。希望大家指点一下。谢谢.
#include <Array.au3>
#NoTrayIcon
Opt("MustDeclareVars",1)
dim $Size,$i,$RemoteFile,$LoadFile,$File,$DownStatus,$IniStr,$begin,$dif, _
$g_szVersion ,$s,$s1,$s3;;;;;;;;;;;;;;;;全局变量
$g_szVersion = "进度条演示"
If WinExists($g_szVersion) Then Exit
AutoItWinSetTitle($g_szVersion)
if 0=FileExists(@ScriptDir&"\adder.ini") Then
        IniWrite(@ScriptDir&"\adder.ini","在线下载进度条","adder", _
        "http://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe")       
EndIf
$IniStr=IniRead(@ScriptDir&"\adder.ini","在线下载进度条","adder","")
        if ""=$IniStr then
                MsgBox(0,"提示","请在ini文件填写要下载文件地址")
       
        EndIf       
$RemoteFile=$IniStr
$File=StringSplit($RemoteFile,'/',1)
$LoadFile=@ScriptDir&"\"&$File
ConsoleWrite($File)
ConsoleWrite($LoadFile)
$Size=InetGetSize($RemoteFile)
ProgressOn("在线更新进度", "", "" ,-1,-1,2+16)
$begin = TimerInit()
InetGet($RemoteFile,$LoadFile,1,1)
for $i=int(@InetGetBytesRead/$Size*100) to 100
        sleep(500)
        if -1=@InetGetBytesRead then Exit       
        $i=@InetGetBytesRead/$Size*100       
                        if 1=@InetGetActive then
                                $DownStatus="下载中"
                        Else
                                $DownStatus="没下载.."
                        EndIf
                        $dif = TimerDiff($begin)
                        $s=Round($dif/1000,0)
                        $s1=MylBytes(@InetGetBytesRead)
                        $s3=MylBytes(@InetGetBytesRead/$s)
                                ProgressSet($i,"已下载" &$s1& " 总共" & MylBytes($Size)& _
                        @CRLF&"百分比"&int($i)&"%",$DownStatus& " 用时间"&Round($dif/1000,0)&"秒"& _
                        $s3 & "/s"& "剩"&MylBytes($Size-@InetGetBytesRead) &@CRLF& _
                        "剩余时间"&int( MylBytes(($Size-@InetGetBytesRead)/(@InetGetBytesRead/$s)))&"秒")
                Next               
        ProgressSet($i, "完成下载 100%")
                        sleep(2000)
        ProgressOff()       
Func MylBytes($lBytes)       
                        if $lBytes<1024 Then                               
                                                Return ($lBytes & "b")
                                        ElseIf $lBytes<1048576 Then                                               
                                                Returnint(($lBytes / 1024)) &"k"                                               
                                        ElseIf$Lbytes<536870912 Then                                               
                                                ReturnRound($lBytes / 1024 / 1024,2)&"M"
                                        Else
                                                Return Round($lBytes/(1024^2) / 1024,2) & "G"                                               
                                EndIf
EndFunc

我如下理解:
$aData = InetGetInfo(InetGet($RemoteFile,$LoadFile,1,1))

for $i=int($aData/$Size*100) to 100
                sleep(500)
        $dif = TimerDiff($begin)
        $s=Round($dif/1000,0)
        $s1=MylBytes($aData)
        $s3=MylBytes($aData/$s)
ProgressSet($i,"已下载" &$s1& " 总共" & MylBytes($Size)&@CRLF&"百分比"&int($i)&"%"," 用时间"&Round($dif/1000,0)&"秒"& _
                        $s3 & "/s"& "剩"&MylBytes($Size-$aData) &@CRLF& _
                        "剩余时间"&int( MylBytes(($Size-$aData)/($aData/$s)))&"秒")
$i=$aData/$Size*100
InetClose($aData)
Next

kodin 发表于 2009-11-27 10:33:51

朋友是用3.3.1.1版?

boyhong 发表于 2009-12-1 08:00:40

项一下,哪位大哥帮着看一下?感谢了~~~~我用$aData进入不了循环。

boyhong 发表于 2009-12-1 10:37:12

朋友是用3.3.1.1版?
kodin 发表于 2009-11-27 10:33 http://www.autoitx.com/images/common/back.gif
对呀~~正在加紧学习中~~~~~~~~

kodin 发表于 2009-12-1 11:27:12

对呀~~正在加紧学习中~~~~~~~~
boyhong 发表于 2009-12-1 10:37 http://www.autoitx.com/images/common/back.gif

我没记错的话,这个版本InetGetInfo有点问题,官方已在新版修正了。

boyhong 发表于 2009-12-1 11:29:53

我没记错的话,这个版本InetGetInfo有点问题,官方已在新版修正了。
kodin 发表于 2009-12-1 11:27 http://www.autoitx.com/images/common/back.gif

我刚在用3.1.1.6最新汉化版试了一下,出错中~~~哎~~~不知错在那儿。

夜猫猫 发表于 2010-3-7 22:54:18

楼主..@InetGetBytesRead 替换InetGetInfo有解了没?
页: [1]
查看完整版本: @InetGetBytesRead在新版AUTOIT下调试出错