返回首页
当前位置: 主页 > 其他教程 > 电脑教程 >

NSIS如何执行外部程序

时间:2014-10-21 23:43来源:Office教程学习网 www.office68.com编辑:麦田守望者

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

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

------分隔线----------------------------
标签(Tag):电脑知识 电脑技巧 电脑教程
------分隔线----------------------------
推荐内容
猜你感兴趣