杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1871|回复: 0

NSIS:使用FileFunc.nsh头文件判断文件版本

[复制链接]
发表于 2015-2-3 21:57:54 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x

示例一:

需要系统中已安装WINRAR 32位版本,否则请自行修改测试代码。

  1. Name "测试"
  2. Caption "$(^Name)"
  3. OutFile "测试.exe"
  4. SilentInstall silent
  5. XPStyle on
  6. !include "FileFunc.nsh"

  7. Section .onInit
  8. ReadRegStr $1 HKLM "Software\WinRAR" "exe32"
  9. MessageBox MB_OK "$1"
  10. ${GetFileVersion} $1 $R0
  11. MessageBox MB_OK "$R0"
  12. SectionEnd
复制代码

示例二:

轻狂拿WMP10做一个例子。关于WMP10的原始安装文件,可以下载后通过/C /T:\Windows Media Player参数(参数说明:将文件解开到D:\Windows Media Player文件夹)得到。


首先,引入头文件:

  1. !include "FileFunc.nsh"
复制代码

然后,写详细的代码:

  1. Section "WMP" SEC_WMP
  2. ${GetFileVersion} "$PROGRAMFILES\Windows Media Player\wmplayer.exe" $R1
  3. Pop $R1
  4.   ${If} $R1 < '10.0.0.3802'
  5.   MessageBox MB_YESNO "您的Windows Media Player版本过低,是否升级到推荐版本?" IDNO NoReadme

  6.   SetDetailsPrint textonly
  7.   DetailPrint "正在安装 Windows Media Player10..."
  8.   SetDetailsPrint listonly

  9.   SetOutPath "$TEMP\MP10"
  10.   File "Windows Media Player10\*.*"
  11.   ExecWait '$TEMP\MP10\setup_wm.exe /Q' $R1
  12.   RMDir /r "$TEMP\MP10"
  13.   ${EndIf}
  14.   NoReadme:
  15. SectionEnd
复制代码




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-21 14:03 , Processed in 0.108764 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表