`

Inno Setup获取软件版本值并且对比

 
阅读更多

项目中最近做了个SVN代码变更的插件,需要做一个安装盘,发现插件只能用在TortoiseSVN 1.6.x或者以上的版本,这就需要安装盘中在安装时提醒用户安装1.6.x或者以上的SVN客户端版本写了几个公共方法实现如下的版本对比。
//从注册表中获取SVN客户端TortoiseSVN的版本号
function getSVNClientVersion (): String;
begin
  RegQueryStringValue(HKCU , 'Software\TortoiseSVN','CurrentVersion', result);
end;

//此函数用于截取版本号数字
procedure DecodeVersion (verstr: String; var verint: array of Integer);
var
  i,p: Integer; s: string;
begin
  verint := [0,0,0,0];
  i := 0;
  while ((Length(verstr) > 0) and (i < 4)) do
  begin
    p := pos (',', verstr);
    if p > 0 then
    begin
      if p = 1 then s:= '0' else s:= Copy (verstr, 1, p - 1);
      verint[i] := StrToInt(s);
      i := i + 1;
      verstr := Copy (verstr, p+1, Length(verstr));
    end
    else
    begin
      verint[i] := StrToInt (verstr);
      verstr := '';
    end;
  end;
end;


// 此函数用于比较版本字符串
// 若 ver1 > ver2 返回值  1
// 若 ver1 = ver2 返回值  0
// 若 ver1 < ver2 返回值 -1

function CompareVersion (ver1, ver2: String) : Integer;
var
  verint1, verint2: array of Integer;
  i: integer;
begin
  SetArrayLength (verint1, 4);
  DecodeVersion (ver1, verint1);
  SetArrayLength (verint2, 4);
  DecodeVersion (ver2, verint2);
  Result := 0; i := 0;
  while ((Result = 0) and (i < 4)) do
  begin
    if verint1[i] > verint2[i] then
      Result := 1
    else
      if verint1[i] < verint2[i] then
        Result := -1
      else
        Result := 0;
    i := i + 1;
  end;
end;


来源:Heck's Blog
地址:http://www.hecks.tk/Inno-SetUp-Compare-Software-version/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!

分享到:
评论

相关推荐

    delphi软件自动更新

    1. 版本控制:自动更新系统首先要能识别当前软件的版本信息,并与服务器端的最新版本进行对比,判断是否需要更新。 2. 更新检查:在用户启动软件时或特定时间点,系统会自动向服务器发送请求,获取最新的版本信息。...

    区域站现场核查数据处理设计与软件实现.pdf

    8. 软件的发布信息:文章中的软件发布信息显示软件被设计为适用于Windows XP系统,使用了Inno Setup进行安装程序的开发,具体版本为1.0GM2。这提供了软件发布时的操作系统兼容性信息。 9. 袁超工程师的背景信息:...

    系统更新打包软件下载

    1. **版本管理**:它允许用户跟踪软件的不同版本,确保每次更新都有一个清晰的版本历史记录,便于回溯和对比。 2. **构建与打包**:支持开发者将代码更改打包成可执行的更新文件,如`update.exe`。这个过程可能包括...

    C#开发的自动更新程序。

    C#程序可以调用系统API(如ShellExecute)来运行这个安装包,或者使用第三方库如InnoSetup、WiX等来集成安装过程。 5. **重启应用程序**:更新完成后,为了确保新版本的正确运行,通常需要重新启动应用程序。C#中...

    自动更新工具VB开发源码级

    在IT行业中,自动更新工具是软件开发者不可或缺的辅助工具,它能够帮助用户自动获取并安装软件的最新版本,确保软件始终处于最新的稳定状态。VB,全称Visual Basic,是微软公司推出的一种面向对象的编程语言,它简洁...

    Delphi利用网卡序列号设计软件注册

    例如,使用安装包管理工具(如Inno Setup)来封装软件和注册信息,确保升级时不丢失注册状态。 综上所述,利用Delphi设计基于网卡序列号的软件注册系统涉及多个技术环节,包括获取硬件信息、数据处理、注册码生成与...

    VB在线升级

    - **检测更新**:VB程序启动时,首先向服务器发送请求,获取当前版本号和最新版本号的对比。 - **下载更新**:如果检测到有新版本,向用户展示更新提示,用户确认后开始下载更新包。 - **验证更新**:下载过程中...

    NSIS用户手册 中文版和NSIS图文教程集锦 - 轻狂志 - 20150508

    4. **插件应用**:介绍常用的NSIS插件及其使用方法,如InnoSetup对比、NSIS与WiX的区别等。 5. **问题解答**:收录了常见问题及解决方法,帮助用户在遇到困难时找到答案。 这些资源对于想要学习和掌握NSIS的人来说...

    NSIS体验

    NSIS相比其他安装制作工具(如Inno Setup、InstallShield等),有着明显的优势,如免费、开源、跨平台编译等。然而,不同的工具各有优缺点,选择哪个取决于项目需求和个人喜好。 总之,NSIS作为一个强大的安装制作...

    数字图像处理教案

    这门课程主要关注的是如何利用计算机对图像进行分析、操作和理解,涉及到图像的获取、表示、变换、增强、恢复、压缩、识别等多个方面。在“数字图像处理教案”中,我们可以通过罗三定教授的PPT来深入学习这一领域的...

    Embarcadero.Delphi.10.2.2.v25.0.29039.2004.Lite.v14.3完整版

    5、AQtimeRS.exe、CodeSite Express、CollabNetSubversion-client-1.7.5-1-Win32.exe、DevJET_DI_Setup_Express.exe、FBSE700.exe、RaveReportsSetup_Win.exe,当前官方 RTM 版本就是没有这些安装包的 其他: 1、...

Global site tag (gtag.js) - Google Analytics