L
lhl20000
Unregistered / Unconfirmed
GUEST, unregistred user!
原代码:
可以实现下载网络中的文件,但是如果网络忙文件下载慢,
机器好象死机一样,难以判断状态。(其实没死机)
我想得到下载的进度,这样就可以慢慢的等待,直到下载完毕。
或者停止下载。
有关资料说:
UrlDownloadToFile()函数的
最后一个参数可以传入一个IBindStatusCallback的实现,
以跟踪下载进度或控制中止下载。
我不明白应该怎样做,希望高手指教,请详细点说明,谢谢。
uses
URLMon, ShellApi;
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
except
Result := False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
const
// URL Location
SourceFile = 'http://www.google.com/intl/de/images/home_title.gif';
// Where to save the file
DestFile = 'c:image.gif';
begin
if DownloadFile(SourceFile, DestFile) then
begin
ShowMessage('Download succesful!');
// Show downloaded image in your browser
ShellExecute(Application.Handle, PChar('open'), PChar(DestFile),
PChar(''), nil, SW_NORMAL)
end
else
ShowMessage('Error while downloading ' + SourceFile)
end;
可以实现下载网络中的文件,但是如果网络忙文件下载慢,
机器好象死机一样,难以判断状态。(其实没死机)
我想得到下载的进度,这样就可以慢慢的等待,直到下载完毕。
或者停止下载。
有关资料说:
UrlDownloadToFile()函数的
最后一个参数可以传入一个IBindStatusCallback的实现,
以跟踪下载进度或控制中止下载。
我不明白应该怎样做,希望高手指教,请详细点说明,谢谢。
uses
URLMon, ShellApi;
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
except
Result := False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
const
// URL Location
SourceFile = 'http://www.google.com/intl/de/images/home_title.gif';
// Where to save the file
DestFile = 'c:image.gif';
begin
if DownloadFile(SourceFile, DestFile) then
begin
ShowMessage('Download succesful!');
// Show downloaded image in your browser
ShellExecute(Application.Handle, PChar('open'), PChar(DestFile),
PChar(''), nil, SW_NORMAL)
end
else
ShowMessage('Error while downloading ' + SourceFile)
end;