迅雷下載開放引擎調用樣本

來源:互聯網
上載者:User
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] <> 0EndFunc

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.