zoukankan      html  css  js  c++  java
  • 迅雷下载开放引擎调用示例

    XLDownload()
     
    Func XLDownload()
            Local $Dll, $tTaskId, $lTaskId, $aRet
            
            $Dll = DllOpen (@ScriptDir & "\XLDownload.dll")
            
            ;1、初始化下载引擎
            If False == DllCall($Dll, "Bool", "XLInitDownloadEngine") Then
                    MsgBox(16, "Error", "Initialize download engine failed")
                    Return 1
            EndIf
            
            ;2、启动新任务
            $tTaskId = DllStructCreate("long")
            DllStructSetData($tTaskId, 1, 0)
            $aRet = DllCall($Dll, "dword", "XLURLDownloadToFile", "wstr", @ScriptDir & "\LiveCapture1.3.1.7z", _
                           "wstr", "http://livecapture.googlecode.com/files/LiveCapture1.3.1.7z", "wstr", "http://livecapture.googlecode.com", "long*", DllStructGetPtr($tTaskId, 1))
            $lTaskId = DllStructGetData($tTaskId, 1)
            
            If "0" <> $aRet[0] Then
                    DllCall($Dll, "Bool", "XLUninitDownloadEngine")
                    MsgBox(16, "Error", "Create new task failed, error code")
                    Return 1
            EndIf
            
            
            ;3、查询任务状态
            Do
                    Local $tStatus, $tFileSize, $tRecvSize, $iProgress
                    Local $iStatus, $iFileSize, $iRecvSize
                    
                    Sleep(1000)
                    
                    $tStatus = DllStructCreate("long")
                    $tFileSize = DllStructCreate("UINT64")
                    $tRecvSize = DllStructCreate("UINT64")
                    
                    DllStructSetData($tStatus, 1, -1)
                    DllStructSetData($tFileSize, 1, 0)
                    DllStructSetData($tRecvSize, 1, 0)
                    
                    $aRet = DllCall($Dll, "DWORD", "XLQueryTaskInfo", "int", $lTaskId, "long*", _
                                    DllStructGetPtr($tStatus, 1), "UINT64*", DllStructGetPtr($tFileSize, 1), "UINT64*", DllStructGetPtr($tRecvSize, 1))
                    $iStatus = $aRet[2]
                    $iFileSize = $aRet[3]
                    $iRecvSize = $aRet[4]
                    
                    If $aRet[0] = 0 Then
                            If 0 <> $iFileSize Then
                                    $iProgress = $iRecvSize / $iFileSize
                                    $iProgress *= 100                               
                                    $iProgress = StringFormat("%.2f%%", $iProgress)
                                    ConsoleWrite($iProgress & @CRLF)
                            Else
                                    ConsoleWrite("File size is zero" & @CRLF)
                            EndIf
                            
                            If 11 == $iStatus Then
                                    MsgBox(0, "Success", "Download successfully")
                                    Exit
                            EndIf
                            
                            If 12 == $iStatus Then 
                                    MsgBox(16, "Failed", "Download failed")
                                    Exit
                            EndIf
                    EndIf
            Until $aRet[0] <> 0
    EndFunc
  • 相关阅读:
    小明系列问题——小明序列
    Multiplication Table
    DZY Loves Colors
    Points
    Tree
    img标签中alt属性与title属性在seo的作用-摘自网友
    如何合理命名CSS文件——摘自网友
    <meta http-equiv="X-UA-Compatible" content="IE=7" />
    英语
    10个CSS简写/优化技巧-摘自网友
  • 原文地址:https://www.cnblogs.com/Ruiky/p/2487734.html
Copyright © 2011-2022 走看看