IDM
에서 IDM (인터넷 다운로드 관리자)를 호출하는 클라이언트 응용 프로그램에 대한 몇 가지 API를 제공?어떻게 내 델파이 응용 프로그램
1
A
답변
2
확인. IDM이 설치되어 있다고 가정 해 보겠습니다.
보이는 IDManTypeInfo.tlb
라이브러리에는 IDM 라이브러리의 데이터 유형에 대한 정보가 없습니다.
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;
I를이 경우 ,이 라이브러리를 사용하는 유일한 방법은 델파이 C++ 헤더 파일을 재 작성하는 것입니다 IDM이 설치되지 않았으므로이 코드를 확인하지 않았습니다. 나는 이것이 100 % 정확하다고 확신하지는 않지만 그것을 시도하십시오.
1
uses ShellAPI,Registry;
function GetProgramFilesDir: string;
begin
with TRegistry.Create do begin
try
RootKey := HKEY_LOCAL_MACHINE;
OpenKeyReadOnly('SOFTWARE\Microsoft\Windows\CurrentVersion');
Result := ReadString('ProgramFilesDir');
finally
Free;
end;
end;
end;
var url:string;
begin
url:='http:\\yourfile';
if FileExists(GetProgramFilesDir+'\Internet Download Manager\IDMan.exe') then
ShellExecute(Handle, 'open',pchar('"'+GetProgramFilesDir+'\Internet Download Manager\IDMan.exe"'),PChar(' /d "'+url+'"'),nil, 1) else
ShellExecute(Handle, 'open',nil,PChar(url),nil, 1) ; //1=show --
end;
일 100 %
IT는 COM 개체입니다. COM을 사용하는 방법에 대한 질문입니까? 즉, 라이브러리를 다운로드하고'regsvr32'를 사용하여 COM 라이브러리로 등록한 다음 델파이에서'IDManTypeInfo.tlb'을 가져 와서 가져온'.pas' 파일을 애플리케이션에 추가해야합니다. – teran