zoukankan      html  css  js  c++  java
  • Delphi使用迅雷的开放下载引擎下载

        迅雷的下载貌似开放了引擎,也就是说,咱们可以写程序用迅雷的下载引擎下载文件了。下载地址

    http://thunderplatform.xunlei.com/

    不过,下载的东西,给了一个SDK和一个DLL,只要调用DLL中的相关函数,就能下载了,不过,就我目前测试的来看,只支持Http协议,是阉割版的,而且,启动之后,会在系统右下角多一个图标,一个鸟头的图标。总之是很挫咯。他的SDK给了一个Demo,是VC的代码。顺带把SDK翻译了成Delphi的,有想使用这个阉割方法下载的人,可以偷偷懒试试咯。说明,我没有测试,所以不保证一定翻译有效。因为这个阉割版阉割的太厉害了,就支持一个Http的,所以,我就没心思去写一个完整的Demo测试。

    (*
    enum enumTaskStatus{
    enumTaskStatus_Connect = 0, // 已经建立连接
    enumTaskStatus_Download = 2, // 开始下载
    enumTaskStatus_Pause = 10, // 暂停
    enumTaskStatus_Success = 11, // 成功下载
    enumTaskStatus_Fail = 12, // 下载失败
    };
    *)
    enumTaskStatus
    = (
    enumTaskStatus_Connect
    = 0, // 已经建立连接
    enumTaskStatus_Download
    = 2, // 开始下载
    enumTaskStatus_Pause
    = 10, // 暂停
    enumTaskStatus_Success
    = 11, // 成功下载
    enumTaskStatus_Fail
    = 12);

    //BOOL __stdcall XLInitDownloadEngine();
    function XLInitDownloadEngine: BOOL;stdcall;external 'XLDownload.dll';
    //DWORD __stdcall XLURLDownloadToFile(LPCTSTR pszFileName, LPCTSTR pszUrl, LPCTSTR pszRefUrl, LONG & lTaskId);
    function XLURLDownloadToFile(pszFileName,pszUrl,pszRefurl: PChar;var iTaskId: LongInt): DWORD;stdcall;external 'XLDownload.dll';
    //DWORD __stdcall XLQueryTaskInfo(LONG lTaskId, LONG *plStatus, ULONGLONG *pullFileSize, ULONGLONG *pullRecvSize);
    function XLQueryTaskInfo(lTaskId: LongInt;plStatus: PInteger;pullFileSize: PDWORD; pullRecvSize: PDWORD): DWORD;stdcall;external 'XLDownload.dll';
    //DWORD __stdcall XLPauseTask(LONG lTaskId, LONG & lNewTaskId);
    function XLPauseTask(lTaskID: LongInt;var lNewTaskID: LongInt): DWORD;stdcall;external 'XLDownload.dll';
    //DWORD __stdcall XLContinueTask(LONG lTaskId);
    function XLContinueTask(lTaskId: LongInt): DWORD;stdcall;external 'XLDownload.dll';
    //DWORD __stdcall XLContinueTaskFromTdFile(LPCTSTR pszTdFileFullPath, LONG & lTaskId);
    function XLContinueTaskFromTdFile(pszTdFileFullPath: PChar;var lTaskId: Longint): DWORD;stdcall;external 'XLDownload.dll';
    //VOID __stdcall XLStopTask(LONG lTaskId);
    procedure XLStopTask(lTaskId: longint);stdcall;external 'XLDownload.dll';
    //BOOL __stdcall XLUninitDownloadEngine();
    function XLUninitDownloadEngine: BOOL;stdcall;external 'XLDownload.dll';
    //DWORD __stdcall XLGetErrorMsg(DWORD dwErrorId, LPTSTR pszBuffer, DWORD & dwSize);
    function XLGetErrorMsg(dwErrorId: DWORD;pszBuffer: PChar;var dwsize: DWORD): DWORD;stdcall;external 'XLDownload.dll';
    有兴趣的拿去试试把!

  • 相关阅读:
    ACM-ICPC 2018 徐州赛区网络预赛 I. Characters with Hash
    hdu 5437
    poj 1502
    ACM-ICPC 2018 沈阳赛区网络预赛 K. Supreme Number
    ACM-ICPC 2018 沈阳赛区网络预赛 F. Fantastic Graph
    ACM-ICPC 2018 南京赛区网络预赛 B. The writing on the wall
    ACM-ICPC 2018 南京赛区网络预赛 J. Sum
    法里数列
    ACM-ICPC 2018 南京赛区网络预赛 L. Magical Girl Haze
    Hashtable 为什么不叫 HashTable?
  • 原文地址:https://www.cnblogs.com/DxSoft/p/1991557.html
Copyright © 2011-2022 走看看