在NSIS脚本中,调用外部程序的方法有ExecShell以及ExecWait:
ExecShell
使用 ShellExecute [译者注: Windows 的外壳关联] 执行指定的程序。注意: “动作” 通常为 “open”, “print” 等等,也可以是一个空字符串来使用默认动作。参数和显示类型是可选项。 $OUTDIR 用于指定工作路径。如果该命令不能被运行则会置一个错误标记。

动作 命令 [参数] [SW_SHOWNORMAL | SW_SHOWMAXIMIZED | SW_SHOWMINIMIZED | SW_HIDE]
ExecShell "open" "$INSTDIR\readme.txt"

ExecWait
执行一个指定的程序并且等待运行处理结束。更多信息请查看 Exec 。当程序执行返回一个非零错误代码或者当产生错误时,如果没有指定 “用户变量(返回代码)” 则 ExecWait 会放置一个错误标记。如果指定了 “用户变量(返回代码)” 则 ExecWait 会把变量设为返回代码(并且仅当产生错误时放置一个错误标记;如果产生错误则该用户变量的内容为未指定)。注意:如果该命令包含空格,你要用引号来把他们包括起来。例如: ExecWait ‘”$INSTDIR\command.exe” 参数’ 。如果你不用引号括起来则在 Windows 9x 下 不 正常或丢失参数。

命令 [用户变量(退出代码)]
ExecWait '"$INSTDIR\someprogram.exe"' $0

这两条命令的区别在于:
1、ExecWait会等待运行处理结束,更为稳妥;
2、ExecShell可以设置安装选项,更为灵活。如:

    //这里我调用了外部的vc_redist.x64.exe程序,这是一个安装程序,加"/quiet"参数后实现了静默安装外部程序ExecShell "" "$INSTDIR\vc_redist.x64.exe" "/quiet"
安装选项</package | /i> <Product.msi>安装或配置产品/a <Product.msi>管理安装 - 在网络上安装产品/j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]公布产品 - m 公布到所有用户,u 公布到当前用户</uninstall | /x> <Product.msi | ProductCode>卸载产品
显示选项/quiet安静模式,无用户交互/passive无人参与模式 - 只显示进度栏/q[n|b|r|f]设置用户界面级别n - 无用户界面b - 基本界面r - 精简界面f - 完整界面(默认值)/help帮助信息
重新启动选项/norestart安装完成后不重新启动/promptrestart必要时提示用户重新启动/forcerestart安装后始终重新启动计算机
日志选项/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>i - 状态消息w - 非致命警告e - 所有错误消息a - 操作的启动r - 操作特定记录u - 用户请求c - 初始用户界面参数m - 内存不足或致命退出信息o - 磁盘空间不足消息p - 终端属性v - 详细输出x - 额外调试信息+ - 扩展到现有日志文件! - 每一行刷新到日志* - 记录所有信息,除了 v 和 x 选项/log <LogFile>与 /l* <LogFile> 相同
更新选项/update <Update1.msp>[;Update2.msp]应用更新/uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>删除产品的更新
修复选项/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>修复产品p - 仅当文件丢失时o - 如果文件丢失或安装了更旧的版本(默认值)e - 如果文件丢失或安装了相同或更旧的版本d - 如果文件丢失或安装了不同版本c - 如果文件丢失或较验和与计算的值不匹配a - 强制重新安装所有文件u - 所有必要的用户特定注册表项(默认值)m - 所有必要的计算机特定注册表项(默认值)s - 所有现有的快捷键方式(默认值)v - 从源运行并重新缓存本地安装包
设置公共属性[PROPERTY=PropertyValue]请查阅 Windows (R) Installer SDK 获得有关命令行语法的其他文档。

判断电脑的位数,操作实现很简单:

//这个记得一定得有,应该是定义了IF宏之类的,当我未加该条语句时,在IF处报错
!include "x64.nsh"Section${If} ${RunningX64}//电脑为64为操作系统时,调用相应的外部安装程序ExecShell "" "$INSTDIR\vc_redist.x64.exe" "/quiet"${Else}ExecShell "" "$INSTDIR\vc_redist.x86.exe" "/quiet"${EndIf}
SectionEnd

关于NSIS脚本操作静默安装第三方程序+判断电脑位数相关推荐

  1. 计算机该文件没有程序与之关联,WIN7该文件没有与之关联的程序来执行该操作请安装一个程序怎么解决...

    对于长期使用win7系统的用户来说,由于保持着一些习惯操作,因此在更换win7电脑时,常常就需要进入到计算机管理中对系统进行一番设置,可是在打开计算机管理时就遇到了该文件没有与之关联的程序来执行该操作 ...

  2. Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...

  3. NSIS脚本检测和安装Adobe Flash Player 插件

    1. 检测当前设备是否安装了Flash插件 /******************************* 检查设备是否安装Flash插件 ** 定义函数块,用于检测设备注册表是否存在 ****** ...

  4. WinPcap免安装版(静默安装版) (程序员角度的实现相应逻辑)

    WinPcap免安装版逻辑:(注:xp下WinPcap也是可用的) WinPcap***.exe安装实现的逻辑实际上相当于 对 wpcap.dll.packet.dll 和 npf.sys 这三个文件 ...

  5. 打包静默安装参数(nsis,msi,InstallShield,InnoSetup)[转]

    有时我们在安装程序的时候,希望是静默安装的,不显示下一步下一步,这编访问来教大家如何来操作,现在常用的制作安装程序的软件有,  Microsoft Windows Installer  , Windo ...

  6. 一些常用软件静默安装参数(nsis,msi,InstallShield ,Inno)

    有时我们在安装程序的时候,希望是静默安装的,不显示下一步下一步,这编访问来教大家如何来操作,现在常用的制作安装程序的软件有,   Microsoft Windows Installer , Windo ...

  7. 一些常用软件的静默安装参数(nsis,msi,InstallShield,Inno)

    打包的时候,经常需要安装一些其它的环境库,而又不想让用户繁锁的去选择,这时就需要静默安装,而不同的文件所加的参数了不一致,比如VS的环境库vcredist_x86.exe(这是32位的环境库)后面加/ ...

  8. java打包软件静默安装_常用软件的静默安装方法介绍

    有时我们在安装程序的时候,希望是静默安装的,不显示下一步下一步,这编访问来教大家如何来操作,现在常用的制作安装程序的软件有,  Microsoft Windows Installer  , Windo ...

  9. 软件exe打包压缩常用静默安装参数

    软件的安装采取全自动或半自动的方式进行. 一.Microsoft Windows Installer 如果某个软件是用 Windows Installer 打包的,那你就应该能在文件夹中看到 *.ms ...

  10. DBCA静默安装Oracle数据库

    DBCA静默安装Oracle数据库 DBCA静默安装Oracle软件 准备db_install.rsp文件 静默安装软件 DBCA静默安装数据库 准备工作 准备dbca.rsp文件 修改dbca模板文 ...

最新文章

  1. 使用C++基于Socket编程实现文件下载
  2. 你这种直来直去的英语,买家受不了
  3. 涨知识!参加过将近三十届广交会的老鸟总结!
  4. linux sar 历史负载,查看负载、vmstat、top、sar以及nload命令
  5. .h 与 .hpp 文件
  6. 敏捷开发般若敏捷系列之四:如何推广敏捷(上)(无我,无人,无众生)
  7. MySQL设置真正的UTF-8
  8. Hi3536 uboot引导内核全过程
  9. ospf-3型和5型汇总
  10. Linux时间操作(time、gettimeofday)
  11. 卡巴斯基2014激活码授权文件KEY
  12. 公文排版字体要求以及印制要求
  13. c语言编程温度转换源,c语言编程,将华氏温度转换成摄氏温度。转换公式为:c=5/9 * (f-32),其中f代表华氏温度...
  14. [推荐]全球第一互动成人英语学习软件《ELLIS 英语培训系统》ISO下载
  15. python --enumerate用法
  16. Latex将文中的某一行设置成左对齐、右对齐
  17. python vba 秒出结果_从Python运行VBA代码:宏可能被禁用
  18. App.config提示错误“配置系统未能初始化”
  19. 量化交易:创建签名、从okex平台获取ticker数据和k线数据
  20. 希捷移动硬盘打不开数据如何恢复

热门文章

  1. Lattice系列内存时序
  2. 软件测试通过标准是什么?
  3. 服务器安装Ubuntu Server 18.04及磁盘分区
  4. 【OD矩阵】《城市公交IC卡·数据分析方法及应用》利用公交运营时间和乘客刷卡时间特征识别上车点
  5. 车牌字符识别LPRNet:License Plate Recognition via Deep Neural Networks
  6. 计算机机械硬盘容量怎么看,win10系统硬盘容量怎么看?一招查看win10硬盘容量的方法...
  7. 记录一个找直线三等分点的方法及其证明
  8. ifv播放器android 版,ifv格式播放器
  9. python自动提交网页表单_Python 自动化表单提交实例代码
  10. eterm单人订座流程