您所在的位置: 下载吧  >  软件教程  >  编程开发 > 正文

NSIS执行外部程序

  • 时间:2014-06-09 08:57
  • 来源:下载吧
  • 编辑:huashi
NSIS提供了比较完善的执行外部程序的接口,比如你要找开一个网页可以使用ExecShello Open "http://xiazaiba.com"来执行一个网页的打开操作,你也可以用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

人气排行