参考网站: www.nsis.sourceforge.net
HA_NSIS_v245_20090727.exe
该软件包括一个强大的脚本编器,有语法智能提示功能,且有一个脚本生成向导,
利用此向导可以生成基本的脚本代码,之后再在编缉器中进行修改。
NSIS有几个重要的方法
初始化方法:
Function .oninit
functionend
安装必备项方法:
Section -Prerequisites
SectionEnd
使用 ReadRegStr 方法可以读取注册表项存入指定的变量
例:
ReadRegStr $R0 HKLM "SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5" "Version"
${If} $R0 == ''
ExecWait '"$EXEDIR/NetFramework/Microsoft_.NETFramework35_sp1.exe" "/qb"' $R0
${If} $R0 == ''
MessageBox MB_OK "NetFramework 安装错误,安装程序已中止。"
Quit
${EndIf}
${EndIf}
HLKM 代表 HKEY_LOCAL_MACHINE
$EXEDIR 代表当前 setup.exe 所在的目录。另外还有 $INSTDIR 代表安装的目录 $DISKTOPDIR 代表桌面目录
Quit 退出当前安装程序
如果安装附件是 *.msi 文件,即需要使用 msiexec.exe 文件来调用,例:
ExecWait '"msiexec.exe" /i "外部程序.msi" 参数列表'
有时候外部程序调用过于复杂,可以尝试放在批处理文件当中。然后由 NSIS 执行批处理
在批处理文件当中
%COMPUTERNAME% 代表当前机器名
%PROGRAMFILES% 代表 program files 所在的目录
如果需要生成其它语言的安装包,光改 !insertmacro MUI_LANGUAGE "TradChinese"还不行,
需要使用下面的 Unicode 版本。
nsis-2.33-Unicode-setup.exe
安装完成以后打开 makensisw.exe 编辑器,再装载 .nsi 脚本,编译即可。
;改变当前对话框中标签的值。
Var /GLOBAL i
${ForEach} $i 0 5000 + 1
;MessageBox MB_OK $i
GetDlgItem $R0 $HWNDPARENT $i
SendMessage $R0 ${WM_SETTEXT} 0 "STR:$i"
${Next}