软件自动更新的问题?

hhzqf1980 2005-04-04 09:53:26
我有应用程序,现在想做一个自动更新程序:
功能如下:
是否有新的版本的应用程序
如果没有,则正常启动;
如果有,则下载新的程序运行!
请问如何实现呢?
各位大侠帮帮小弟吧,最好能给出思路代码
谢谢!!
...全文
237 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdkogh 2005-04-08
  • 打赏
  • 举报
回复
登陆时:
if FCurVer<>CCurVer then
begin // 版本不一致……
FN := GetTempDirectory + '***.exe';
IdFTP1.Connect();
IdFTP1.Get('***.exe', FN, True);
IdFTP1.Disconnect;
ReplaceFile(FN);
Application.Terminate;
end;


procedure ReplaceFile(AFName: string);
var
BatchFile: TextFile;
BatchFileName: string;
ProcessInfo: TProcessInformation;
StartUpInfo: TStartupInfo;
begin
BatchFileName := changefileext(paramstr(0),'.bat');

AssignFile(BatchFile, BatchFileName);
Rewrite(BatchFile);

Writeln(BatchFile, ':try');
Writeln(BatchFile, 'del "' + ParamStr(0) + '"');
Writeln(BatchFile, 'if exist "' + ParamStr(0) + '"' + ' goto try');
Writeln(BatchFile, 'copy "'+AFName+'" "'+ExtractFilePath(Application.ExeName)+'"');
Writeln(BatchFile, 'del %0');
CloseFile(BatchFile);

FillChar(StartUpInfo, SizeOf(StartUpInfo), $00);
StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
StartUpInfo.wShowWindow := SW_HIDE;

if CreateProcess(nil, PChar(BatchFileName), nil, nil,False, IDLE_PRIORITY_CLASS,
nil, nil, StartUpInfo,ProcessInfo) then
begin
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
end;
end;
FigoZhu 2005-04-08
  • 打赏
  • 举报
回复
http://www.nuclear2000.com
soddyzjx118 2005-04-08
  • 打赏
  • 举报
回复
本地文件先改名,
建立文件流,文件流的内容来自新版本的文件。
然后保存为本地文件名 ,ok? 我这样实现的。
hhzqf1980 2005-04-08
  • 打赏
  • 举报
回复
高手帮忙啊
mxj2000 2005-04-05
  • 打赏
  • 举报
回复
有这样的程序,不过合在系统里,拉出来太麻烦了
hhzqf1980 2005-04-05
  • 打赏
  • 举报
回复
pengxuan 2005-04-04
  • 打赏
  • 举报
回复
做一个下载的小程序,用HTTP或FTP都行,在主程序启动时检查网上或数据中的版本信息,如果有新版本则启动下载程序下载.
hhzqf1980 2005-04-04
  • 打赏
  • 举报
回复
是不是我的机器上没有装什么控件呢?
hhzqf1980 2005-04-04
  • 打赏
  • 举报
回复
aiirii(ari-广州*淘金坑) :
你好,我下载了程序,提示ProxyParams出现错误
请问怎么处理啊?
谢谢
aiirii 2005-04-04
  • 打赏
  • 举报
回复
http://www.fulgan.com/delphi/autoupdate_unit_for_delphi.htm
Heyongfeng 2005-04-04
  • 打赏
  • 举报
回复
做一个下载的小程序,用HTTP或FTP都行,在主程序启动时检查网上或数据中的版本信息,如果有新版本则启动下载程序下载.

盒子上有源码
hhzqf1980 2005-04-04
  • 打赏
  • 举报
回复
怎么没有人回答啊
快帮帮小弟吧
谢谢大家!
shove 2005-04-04
  • 打赏
  • 举报
回复
关键问题是:
软件自己更新自己的问题!(exe)
更新的功能单独作成一个 exe 文件。
主程序启动是调用这个exe,得到的返回参数是要更新,则 exit,交由更新程序去更新覆盖。
更新的 exe 程序更新完成后,再调用主 exe

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧