当前位置:   article > 正文

NSIS制作Qt自定义界面安装包(四):NSIS脚本实用技巧和注意事项_nsis logset on

nsis logset on

NSIS脚本实用技巧和注意事项

增加安装日志文件 install.log

下载NSIS 对应版本的log 并覆盖替换,参考文章(一)

添加代码

  1. !include "LogicLib.nsh"
  2. # ...
  3. # MessageBox MB_OK "$INSTDIR"
  4. LogSet on
  5. #...

注意, 使用LogSet on 时候,"$INSTDIR" 必须不为空,否则不会生成install.log

效果

最后在安装目录下生成  install.log

禁止多个安装程序实例

在.onInit中,添加下面代码

  1. Function .onInit
  2. # 禁止多个安装程序实例
  3. System::Call 'kernel32::CreateMutexA(i 0, i 0, t "zhkt_install") i .r1 ?e'
  4. Pop $R0
  5. StrCmp $R0 0 +3
  6. MessageBox MB_OK|MB_ICONEXCLAMATION "安装程序已经在运行。"
  7. Abort
  8. FunctionEnd

创建快捷方式不成功

        在NSIS 脚本OnStartExtractFiles 函数中创建快捷不成功,请在.onInstSuccess 创建快捷方式。可能是因为 OnStartExtractFiles 是绑定的后台运行的回调函数。

脚本中宏不能嵌套调用

以下错误代码示例

  1. !macro InstallExeDepand RegKey SubRegKey DepandExeName Arg
  2. File /oname=$PLUGINSDIR\${DepandExeName} ".\depands\${DepandExeName}"
  3. Push $R0
  4. ClearErrors
  5. ;这里检测 该版本的运行时版本号是否存在
  6. ReadRegStr $R0 HKLM "${RegKey}" "${SubRegKey}"
  7. ;
  8. IfErrors 0 +2
  9. ; Exec "$PLUGINSDIR\${VcRedistName} /q" ;若不存在,执行静默安装
  10. ExecWait "$PLUGINSDIR\${DepandExeName} ${Arg}" ; 调试安装
  11. StrCpy $R0 "-1"
  12. ;MessageBox MB_OK "安装完毕"
  13. pop $R0
  14. !macroend
  15. # 宏内插入宏 是不支持的 下面代码是错误的
  16. !macro InstallVcRedist GUID VcRedistName Arg
  17. !insertmacro InstallExeDepand "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${GUID} "BundleVersion" ${VcRedistName} ${Arg}
  18. !macroend

注意上面为错误的代码

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/112630
推荐阅读
相关标签
  

闽ICP备14008679号