//添加引用COM
//ThunderAgent 1.0 Type Library  
private THUNDERAGENTLib.Agent ThunderEng = new THUNDERAGENTLib.Agent();
string address = "http://localhost/";
string filename = "DownLoad.txt";
string saveFileName = "DownLoad.txt";
string savepath="D:\";
agent.AddTask(address + saveFileName, saveFileName,savepath, "", "", -1, 0, -1);
agent.CommitTasks();以上C#迅雷下载代码在delphi中如何实现,在delphi中如何有效地调用迅雷安装目录下的ThunderAgent_Now.dll这个库文件呢。
另外如何处理agent.CommitTasks()会有弹出窗口问题,如何有效实现直接添加任务下载的效果呢。

解决方案 »

  1.   

    agent.Committask()那个问题可以通过模拟按键直接发送一个回车消息
    至于调用,似乎找不到什么好办法,迅雷安装目录里面杂七杂八的……
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    const
      URL               = 'http://10.4.1.10/连载动画区/H%20[海贼王][One%20Piece]/[海贼王][one_piece][349][by%20SHAKA].rmvb';
    var
      V                 : Variant;
    begin
      V := CreateOLEObject('ThunderAgent.Agent.1');
      V.AddTask(URL, '349.rmvb', 'c:\', '注释', ' ', 1, 0, 10);
      V.CommitTasks;
    end;
      

  3.   

    ThunderAgent_Now.dll是一个Type Library  在Delphi中同样可以引入啊
    弹出窗口,是DLL实现的,估计也没有什么好办法来实现,只能用过发送消息或模拟按键来解决,不过,我倒有一个想法查找窗口,然后强行关闭来解决.
      

  4.   

    我手头没peid之类的玩意,看不出那个dll是什么开发软件写的……
    强行关闭?那不就相当于不下载文件了?取消下载?
      

  5.   

    谢谢wr960204提供简便方法。另外弹出窗口的处理现暂能只能捕获此窗口名柄来发送确认按钮事件来实现了。
    小弟再有一请教,对于ThunderAgent_Now.dll这个库,能否做到com组件注册后调用dll,做到不安装迅雷亦可以调出迅雷此一下载组件(或检测有注册这com组件就不再注册),稍会试一下先。
    另觉得发奇的是:运行此命令:regsvr32 ThunderAgent_Now.dll文件所在目录\ThunderAgent_Now.dll   ,ThunderAgent_Now.dll会改名为ThunderAgent_OLD_0.dll。gyk120:ThunderAgent_Now.dll这一链接库可能是由delphi编写的(有关资料提及到迅雷是delphi编写的,另安装有迅雷的系统,delphi的import type Library会看到有ThunderAgent 1.0 Type Libray(Version)这一链库可导入,在此一导入界面有个create unit,可查看到unit THUNDERAGENTLib_TLB,此一链接库能直接被导出接口)。
    在此谢谢各位的帮助。