gpt4 book ai didi

delphi - 如何从我的 Delphi 应用程序调用 IDM(Internet 下载管理器)

转载 作者:行者123 更新时间:2023-12-02 03:06:22 26 4
gpt4 key购买 nike

IDM 为客户端应用程序提供一些 API:http://www.internetdownloadmanager.com/support/idm_api.html

我如何通过 Delphi 做到这一点?

最佳答案

好的。假设我们安装了 IDM。

似乎IDManTypeInfo.tlb库不包含有关IDM库数据类型的信息。在这种情况下,使用这个库的唯一方法就是将c++头文件重写为Delphi:

unit IDMan;

interface
uses windows, ActiveX;

const
CLSID_CIDMLinkTransmitter : TGUID = '{AC746233-E9D3-49CD-862F-068F7B7CCCA4}';

IID_ICIDMLinkTransmitter : TGUID = '{4BD46AAE-C51F-4BF7-8BC0-2E86E33D1873}';
IID_ICIDMLinkTransmitter2 : TGUID = '{94D09862-1875-4FC9-B434-91CF25C840A1}';
type
ICIDMLinkTransmitter = interface(IInterface)
['{4BD46AAE-C51F-4BF7-8BC0-2E86E33D1873}']

function SendLinkToIDM(
Url : WideString;
Referer : WideString;
Cookies : WideString;
Data: WideString;
User: WideString;
Password: WideString;
LocalPath: WideString;
LocalFileName: WideString;
Flags : longint):HRESULT; stdcall;
end;

ICIDMLinkTransmitter2 = interface(ICIDMLinkTransmitter)
['{94D09862-1875-4FC9-B434-91CF25C840A1}']
function SendLinkToIDM2(
Url : WideString;
Referer: WideString;
Cookies: WideString;
Data: WideString;
User: WideString;
Password: WideString;
LocalPath: WideString;
LocalFileName: WideString;
Flags : longint;
reserved1 : Variant;
reserved2 :Variant): HResult; stdcall;

function SendLinksArray(
location : WideString;
LinksArray : PSafeArray):HResult; stdcall;
end;

implementation

end.

将此单元添加到您的项目中并尝试使用下一个代码:

uses IDMan, ComObj;
....
procedure TMainForm.TestIDM();
var lt : ICIDMLinkTransmitter;
begin
lt := CreateComObject(CLSID_CIDMLinkTransmitter) as ICIDMLinkTransmitter;
lt.SendLinkToIDM('http://www.internetdownloadmanager.com/trans_kit.zip', 'teran.karelia.pro','','','','','','', 0);
end;

我没有安装IDM,所以我没有检查这个代码。我不确定它是否 100% 正确,但请尝试一下。

关于delphi - 如何从我的 Delphi 应用程序调用 IDM(Internet 下载管理器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12987326/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com