这个是我最近写的工程中的一段,GetHTMLFile是下载函数,载自日本朋友。
//--------------------------------------------------------------------------------
// 司马华鹏
function TfrmUpdate.GetHTMLFile( URL , FileName : string) : HRESULT;
var
status : IBindStatusCallback ;
begin
status := IBindStatusCallback(self); //コールバックインターフェスの設定。
result := UrlDownLoadToFile(nil, pChar( URL ) ,pChar( FileName ),0 ,Status );
end;
//--------------------------------------------------------------------------------
// 司马华鹏
procedure TfrmUpdate.tmrUdapteTimer(Sender: TObject);
var
strNewFile,strOldFile:string;
oldName,newName
char;
begin
tmrUdapte.Enabled:=False;
plStatus.Caption:='正在验证您的身份...';
strOldFile:=ExtractFilePath(Paramstr(0)) + 'Default.lss';
strNewFile:=myGetTempPath + 'Default.lss';
if GetHTMLFile(rsAdUrl,strNewFile)=s_Ok then begin
GetMem(oldName,max_path); // 旧的文件
Fillchar(oldName[0],max_path-1,0);
GetShortPathName(pchar(strOldFile),oldName,255);
GetMem(NewName,max_path); // 新的文件
Fillchar(NewName[0],max_path-1,0);
GetShortPathName(pchar(strNewFile),newName,255);
if fcIsNT then begin
MoveFileEx(newName,oldName,MOVEFILE_DELAY_UNTIL_REBOOT or MOVEFILE_REPLACE_EXISTING);
end else begin
With TIniFile.Create(myGetWindowsDirectory + 'wininit.ini') do
try
WriteString('Rename',oldName,NewName);
finally
Free;
end;
end;
Prompt('升级完毕');
ModalResult:=mrOK;
end else ModalResult:=mrCancel;
end;