版本升级问题(分不夠再加)

eyusir 2004-07-31 07:21:21
一:如果檢測版本不是最新版(版本信息從哪裡讀,版本信息又是怎樣加到執行文件中的,為何D6選項中設置版本信息後,編緝後不改變);
二:舊版本升級到新版本,怎麼升,是怎樣替換掉舊執行文件。
...全文
164 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
inforum 2005-08-16
  • 打赏
  • 举报
回复
huiwww(十足菜鸟) 的回答很好,楼猪却不给分
xlyyc 2005-03-15
  • 打赏
  • 举报
回复
mark
eyusir 2004-08-06
  • 打赏
  • 举报
回复
To: risingsoft(一苇渡江)
谢谢
能否把第二个问题说详细点。
risingsoft 2004-08-03
  • 打赏
  • 举报
回复
1、当然,检测版本的另外一个方法是读取EXE文件修改时间。
2、自动更新需要启动其它升级程序,给其传递升级参数。升级程序启动时关闭要升级的EXE,进行UPDATE操作,最简单的是CopyFile(source,dest)
risingsoft 2004-08-03
  • 打赏
  • 举报
回复
程序的版本号当然用户可用标签之类的组件自己写上,但有时大家发现,现在有点流行如:Build 4.1.5.137这样的版本号。这样的版本号一般都不是手工输入了,而是提取的程序自身的版本号。程序自身的版本号在哪里控制呢?执行Project菜单下的“Options”功能,在打开的窗口中有一个“Version Info”页面,在这个页面中,用户可设定这四个版本号初始数据,也可以随时根据程序的功能是否有大的变化升级主版本和次版本号,将“Auto Increment build number”前的复选框选中,以后每当用户用Project菜单下的“Build all Projects”功能时,最后的build编号将自动增加1。一般来说,在前面的三个号不变时,最后的编号越大说明程序的更新时间最近。在这个页面上还有一些其他功能如公司名称等等可以设定,读者自己试试吧。

现在我们来说明如何用代码获得这四个编号。下面是获取这四个版本号的通用函数代码,用户直接调用即可:

function GetBuildInfo: string;

var

VerInfoSize: DWORD;

VerInfo: Pointer;

VerValueSize: DWORD;

VerValue: PVSFixedFileInfo;

Dummy: DWORD;

V1, V2, V3, V4: Word;

begin

VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);

if VerInfoSize = 0 then begin

Dummy := GetLastError;

Result := '0.0.0.0';

end; {if}

GetMem(VerInfo, VerInfoSize);

GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);

VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);

with VerValue^ do begin

V1 := dwFileVersionMS shr 16;

V2 := dwFileVersionMS and $FFFF;

V3 := dwFileVersionLS shr 16;

V4 := dwFileVersionLS and $FFFF;

end;

Result := IntToStr(V1) + '.'

+ IntToStr(V2) + '.'

+ IntToStr(V3) + '.'

+ IntToStr(V4);

FreeMem(VerInfo, VerInfoSize);

end;

调用示例:

version.caption:='版本号: '+GetBuildInfo;//version是一个标签组件。
GoldShield 2004-08-03
  • 打赏
  • 举报
回复
没弄明白
BigAngell 2004-07-31
  • 打赏
  • 举报
回复
自己弄个文件保存还是可行的
xjlqlqlq 2004-07-31
  • 打赏
  • 举报
回复
版本信息從哪裡讀: 可以读exe文件创建时间进行比较.....
huiwww 2004-07-31
  • 打赏
  • 举报
回复
我采用的是FTP,用控件idftp,
在ftp服务器上放一个版本信息文件,比如version.ver,用记事本打开并在里面输入2004080101,然后你启动程序的时候连接到ftp服务器上,然后down文件version.ver,
接着读取文件version.ver的内容,与程序的版本信息进行比较(以可以将版本的信息用label控件显示,在取得文件version.ver的内容后于label的caption进行比较),如果文件version.ver的内容的值大于label的caption值,你就下在你要更新的文件,
更新文件你可以先压缩成rar,然后在下载完以后再退出程序,启动解压程序,把下载的文件加压就行了(注:解压程序自己做)

5,388

社区成员

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

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