调用IE下载(100分)

  • 主题发起人 主题发起人 LuckyJackie
  • 开始时间 开始时间
L

LuckyJackie

Unregistered / Unconfirmed
GUEST, unregistred user!
已知文件url与保存目录,如何调用IE(内置的下载功能)下载,并正常出现IE下载进度对话框?不是用IDownloadManager取代它。不是用自己的下载去接管。
 
你用ShellExecute然后将要下载的文件当作参数传给它呢
 
下载保存对话框的不要!
 
asnowcn (2001-07-11 3:54:00)
//使用WinInet完成下载任务
...
uses
...,WinINet;

...

function TDownThread.DownloadFile(const remoteurl:string;
const store:string):Boolean;
var
Stream:TFileStream;
content:string;
NetHandle: HINTERNET;
UrlHandle:HINTERNET;
BytesRead:DWORD;
Buffer:array[1..1024]of Char;
begin
Result:=false ;
NetHandle:=InternetOpen(
'htmlcopy 0.4b',
INTERNET_OPEN_TYPE_DIRECT,
nil,
nil,
0);
if Assigned(NetHandle)then begin
UrlHandle:= InternetOpenUrl(
NetHandle,
PChar(remoteurl),
nil,
0,
INTERNET_FLAG_RELOAD,
0);
if Assigned(UrlHandle)then begin
content:='';
repeat
FillChar(Buffer, SizeOf(Buffer),0);
InternetReadFile(UrlHandle,@Buffer[1],SizeOf(Buffer),BytesRead);
content:=content+copy(Buffer,1,bytesread);
until BytesRead=0;

DeleteFile(store);
if length(content)=0 then
begin result:=false; exit; end;
try
Stream:=TFileStream.Create(store,fmCreate);
except
exit;
end;
try
Stream.Write(pointer(content)^,Length(content));
Stream.Free;
result:=true;
except
Stream.Free;
end;
end;
InternetCloseHandle(UrlHandle);
end;
InternetCloseHandle(NetHandle);
end;
 
IE下载进度对话框(正宗原版)的需要!
 
上面的代码不完善 我试过了

要有进度条很容易 站内就有相关文章
 
不是为了进度条,目的是:做到就好像在IE里下载一样。
 
后退
顶部