迅雷开放引擎调用示例-飞外

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
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