NSIS执行外部程序

浏览:37日期:2022-06-29
NSIS提供了比较完善的执行外部程序的接口,比如你要找开一个网页可以使用ExecShello Open 'http://rkxy.com.cn'来执行一个网页的打开操作,你也可以用ExecWait 来执行一个程序直到外部程序执行完成才执行下一步操作,但执行命令行的程序有可能会出现黑框,在安装过程中出现黑框是我们封装者和用户都不愿意看到的情况,为此NSIS给我们提供了一个nsExec接口,它可以执行一个基于命令行的程序并且不输出一个黑框。当nsExec::ExecToStack执行失败的时候,它会返回一个'error'在栈顶,当它执行命令超时的时候它会返回一个“timeout”于栈顶,其他的情况它会返回程序的返回值。

NSIS执行外部程序

Name 'nsExec Test'

SetCompressor /FINAL bzip2

OutFile 'nsExec Test.exe'

ShowInstDetails show

Section 'Silent MakeNSIS'

nsExec::Exec ''${NSISDIR}makensis.exe''

Pop $0 # return value/error/timeout

DetailPrint ''

DetailPrint ' Return value: $0'

DetailPrint ''

SectionEnd

Section 'MakeNSIS commands help'

nsExec::ExecToLog ''${NSISDIR}makensis.exe' /CMDHELP'

Pop $0 # return value/error/timeout

DetailPrint ''

DetailPrint ' Return value: $0'

DetailPrint ''

SectionEnd

Section 'Output to variable'

nsExec::ExecToStack ''${NSISDIR}makensis.exe' /VERSION'

Pop $0 # return value/error/timeout

Pop $1 # printed text, up to ${NSIS_MAX_STRLEN}

DetailPrint ''${NSISDIR}makensis.exe' /VERSION printed: $1'

DetailPrint ''

DetailPrint ' Return value: $0'

DetailPrint ''

SectionEnd

标签: NSIS 脚本工具
相关文章: