原贴http://community.csdn.net/Expert/topic/4622/4622470.xml?temp=.5251276
怎样实现像电驴那样,在网站上点专用的网址就能调用电驴软件来下载???
解决的方法是:
1。利用网际快车的jc_link.htm
2。写注册表 使在右键菜单有下载那一项 
3。写入jc_link.htm名到注册表使之按右键的时候能执行jc_link.htm从而运行脚本
4。利用脚本得到选中的URL通过COM启动快车
非常感谢clasj给我发来的源码,请进来领分,若clasj愿意,请将部分关键的源码贴上,以供其它有需要的朋友参考。

解决方案 »

  1.   

    现在将实现似网际快车一样,在IE的右键菜单中点下载就才调用自己做的程序来下载的示例贴上,以供大家参考。
    MyCom_TLB.pas
    ------------
    unit MyCom_TLB;{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers. 
    {$WARN SYMBOL_PLATFORM OFF}
    {$WRITEABLECONST ON}interfaceuses ActiveX, Classes, Graphics, StdVCL, Variants, Windows;
      const
      // TypeLibrary Major and minor versions
      MyComMajorVersion = 1;
      MyComMinorVersion = 0;  LIBID_MyCom: TGUID = '{EA346D6C-658C-496E-A349-BD2F67877CB0}';  IID_ITest: TGUID = '{5DCC81DE-C84B-4A22-8E8D-B38C05352078}';
      CLASS_Test: TGUID = '{EEB4E3F2-084D-4F50-9BDD-C4B6A3EE7BD3}';
    type  ITest = interface;
      ITestDisp = dispinterface;
      Test = ITest;  ITest = interface(IDispatch)
        ['{5DCC81DE-C84B-4A22-8E8D-B38C05352078}']
        procedure AddUrl(const Url: WideString; const Info: WideString; const DocUrl: WideString); safecall;
      end;  ITestDisp = dispinterface
        ['{5DCC81DE-C84B-4A22-8E8D-B38C05352078}']
        procedure AddUrl(const Url: WideString; const Info: WideString; const DocUrl: WideString); dispid 1;
      end;  CoTest = class
        class function Create: ITest;
        class function CreateRemote(const MachineName: string): ITest;
      end;implementationuses ComObj;class function CoTest.Create: ITest;
    begin
      Result := CreateComObject(CLASS_Test) as ITest;
    end;class function CoTest.CreateRemote(const MachineName: string): ITest;
    begin
      Result := CreateRemoteComObject(MachineName, CLASS_Test) as ITest;
    end;end.-----------------------
    main.pas
    -------------------------
    unit Main;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
      ComObj, ActiveX, MyCom_TLB, StdVcl, Dialogs, SysUtils;type
      TTest = class(TAutoObject, ITest)
      protected
        procedure AddUrl(const Url, Info, DocUrl: WideString); safecall;
        { Protected declarations }
      end;implementationuses ComServ;procedure TTest.AddUrl(const Url, Info, DocUrl: WideString);
    begin
      ShowMessage(Format('%s'+#13+'%s'+#13+'%s', [Url, Info, DocUrl]));
    end;initialization
      TAutoObjectFactory.Create(ComServer, TTest, Class_Test,
        ciMultiInstance, tmApartment);
    end.