娃
娃娃
Unregistered / Unconfirmed
GUEST, unregistred user!
代码段如下:
PROCEDURE TAutoUpgradeForm.SpeedButton1Click(Sender: TObject);
VAR NewProgram: TMemoryStream;
NetAddress, FileName: STRING;
DownloadFile: Integer;
BEGIN
//开始下载新程序,并且替换旧程序文件
IdAntiFreeze1.OnlyWhenIdle := true; //防止下载过程中程序处于“死”状态
TRY
TRY
NewProgram := TMemoryStream.Create;
NetAddress := ReadIniFile('其它', 'NetAddress'); //获取网络升级地址,这是个自定义的过程,是读取INI文件的
FOR DownloadFile := 0 TO 20 DO BEGIN
FileName := ReadIniFile('下载列表', 'File' + IntToStr(DownloadFile)); //这里想必大家也能明白,就是在INI文件中定义一个文件列表,以便提高升级的自由度
IF FileName <> '' THEN BEGIN
UpgradeMemo.Lines.Add('正在下载文件“'+FileName+'”……');
IdHTTP1.Get(NetAddress + FileName, NewProgram);
NewProgram.SaveToFile(FileName);
UpgradeMemo.Lines.Add('下载文件“'+FileName+'”成功!');
END ELSE
Break;
END;
MessForm.MyShowMess('程序升级', '自动升级程序已经成功完成!', '提示', 1);
EXCEPT
MessForm.MyShowMess('程序升级', '获取网络上相关资料时失败!', '警告', 1);
END;
FINALLY
NewProgram.Free;
END;
END;
整个过程其实很简单,就是利用了IdHTTP1下载指定地址的文件,然后保存成本地文件,现在有一个问题就是,下载文件多于1个时,win2000没有问题,但是在win98下就会出现所有的文件都变成了第一个文件的内容。
比如要下载3个文件:
A.exe
B.ini
C.XXX
下载完本地保存的文件名没有错,不过B.ini文件的内容其实是A.exe的内容,C.XXX也是一样。希望大家帮手解决一下,谢谢了!
PROCEDURE TAutoUpgradeForm.SpeedButton1Click(Sender: TObject);
VAR NewProgram: TMemoryStream;
NetAddress, FileName: STRING;
DownloadFile: Integer;
BEGIN
//开始下载新程序,并且替换旧程序文件
IdAntiFreeze1.OnlyWhenIdle := true; //防止下载过程中程序处于“死”状态
TRY
TRY
NewProgram := TMemoryStream.Create;
NetAddress := ReadIniFile('其它', 'NetAddress'); //获取网络升级地址,这是个自定义的过程,是读取INI文件的
FOR DownloadFile := 0 TO 20 DO BEGIN
FileName := ReadIniFile('下载列表', 'File' + IntToStr(DownloadFile)); //这里想必大家也能明白,就是在INI文件中定义一个文件列表,以便提高升级的自由度
IF FileName <> '' THEN BEGIN
UpgradeMemo.Lines.Add('正在下载文件“'+FileName+'”……');
IdHTTP1.Get(NetAddress + FileName, NewProgram);
NewProgram.SaveToFile(FileName);
UpgradeMemo.Lines.Add('下载文件“'+FileName+'”成功!');
END ELSE
Break;
END;
MessForm.MyShowMess('程序升级', '自动升级程序已经成功完成!', '提示', 1);
EXCEPT
MessForm.MyShowMess('程序升级', '获取网络上相关资料时失败!', '警告', 1);
END;
FINALLY
NewProgram.Free;
END;
END;
整个过程其实很简单,就是利用了IdHTTP1下载指定地址的文件,然后保存成本地文件,现在有一个问题就是,下载文件多于1个时,win2000没有问题,但是在win98下就会出现所有的文件都变成了第一个文件的内容。
比如要下载3个文件:
A.exe
B.ini
C.XXX
下载完本地保存的文件名没有错,不过B.ini文件的内容其实是A.exe的内容,C.XXX也是一样。希望大家帮手解决一下,谢谢了!