NSIS 大体布局如下:
  • 预设参数(包括外部压缩器选择、编译选项、宏定义以及文件包含等)
  • 普通安装设置
  • 自定义函数
  • 安装程序区域内容
  • 安装程序回调函数及其相关函数定义
  • 卸载程序区域内容
  • 卸载程序回调函数及其相关函数定义
一个示例脚本
; study.nsi
;
; 以下脚本用以生成 study.exe 文件
; 它包含有授权协议
;
; 安装时若发现应用程序正在运行,安装程序会提示并替用户关闭应用程序
; 安装成功后会自动运行应用程序
;
; 启用新的 Modern UI 的宏指令语法,原先的部分指令将被禁止以防止重复
; 我会尽量展示如何基本指令的用法。当然宏指令也会与一些基本指令发生重
; 复定义的情况,不过 NSIS 照样能编译成功.
; 其中的一些路径、文件你可以根据需要更改
; 启用外部压缩工具(这里我们不用,原因看第 10 步)
;!define HAVE_UPX
; 若启用了外部压缩工具,这进行可执行文件头的压缩
!ifdef HAVE_UPX
; 用 UPX 压缩可执行文件头(用其他的相关工具也行)
!packhdr tmp.dat "E:UPX\upx --best tmp.dat"
!endif
; 编译选项
; 设置覆盖标记
SetOverwrite on
; 设置压缩选项
SetCompress auto
; 选择压缩方式
SetCompressor bzip2
; 设置数据块优化
SetDatablockOptimize on
; 设置数据写入时间
SetDateSave on
; 相关数据预设
; 软件的名字,后面的${NAME}调用这个名字
!define NAME "NSIS"
!define NAME_FULL "全方位掌握 NSIS 的使用"
!verbose 3
; 包含窗口消息定义文件
!include "${NSISDIR}\Examples\WinMessages.nsh"
; 包含新界面的宏指令文件
!include "${NSISDIR}\Examples\Modern UI\ModernUI.nsh"
; 包含标牌位图宏指令文件
!include "${NSISDIR}\Examples\branding.nsh"
!verbose 4
!define CURRENTPAGE $9
!define TEMP1 $R0
!define TEMP2 $R1
; 插入安装界面宏定义(这里我禁用了,启用也没问题。编译照样通过。后面我都定义过了)
;!insertmacro MUI_INTERFACE "modern2.exe" "adni18-installer-C-no48xp.ico" "adni18-uninstall-C-no48xp.ico" "modern.bmp" "smooth"
; 安装程序设置
; 输出文件
OutFile "F:\study.exe"
; 安装程序名称
Name /LANG=2052 "NSIS"
; 替换对话框样式
ChangeUI all "${NSISDIR}\Contrib\UIs\modern2.exe"
; 启用 WindowsXP 的视觉样式
XPstyle on
;设置字体
SetFont 宋体 9
; 标题名称
Caption /LANG=2052 "全方位掌握 NSIS 的使用"
; 标牌的内容
BrandingText /LANG=2052 /TRIMCENTER "Shao Hao"
; 安装程序图标
Icon "F:\12\QCDIcon.ico"
; 安装程序显示标题
WindowIcon on
; 添加标牌位图(放在顶部用 TOP 参数。后面接高度)
AddBrandingImage LEFT 105
; 设定渐变背景
BGGradient off
; 设置安静安装模式
;SilentInstall normal
; 设置安静卸载模式
;SilentUnInstall normal
; 执行 CRC 检查(最好用 on 打开。关闭是因为还要修改安装程序,看第 10 步)
CRCCheck off
; 加载相应的语言文件
LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf"
; 替换各个对话框标题的文字
SubCaption /LANG=2052 0 "授权协议"
SubCaption /LANG=2052 1 "安装选项"
SubCaption /LANG=2052 2 "安装目录"
SubCaption /LANG=2052 3 "正在安装"
SubCaption /LANG=2052 4 "完成安装"
; 替换默认按钮的文字
MiscButtonText /LANG=2052 "< 上一步" "下一步 >" "取消" "关闭"
; 替换“安装”按钮的文字
;InstallButtonText /LANG=2052 "安装"
; 替换当文件无法被写入时的警告窗的文字
FileErrorText /LANG=2052 "无法写入文件$\r$\n$0$\r$\n请确认文件属性不是只读且未被使用中!"
; 默认的安装目录
InstallDir "$PROGRAMFILES\QCD 3"
; 如果可能的化从注册表中监测安装路径
InstallDirRegKey HKLM \
"Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" \
"UninstallString"
; 授权协议页面
LicenseText /LANG=2052 "NSIS 是免费软件。安装前请先阅读以下协议条款" "我同意"
; 使用授权协议文本
LicenseData /LANG=2052 "F:\12\License.txt"
; 设置授权协议页面的背景色
;LicenseBkColor 000000
; 选择要按安装的组件
ComponentText /LANG=2052 "现在将安装 ${NAME_FULL}到您的计算机:" "请选择安装类型" "或选择您希望安装的组件"
InstType "完全安装(都在了)"
InstType "典型安装"
InstType /LANG=2052 /CUSTOMSTRING=自定义?
;InstType /LANG=2052 /NOCUSTOM
;InstType /COMPONENTSONLYONCUSTOM
CheckBitmap "${NSISDIR}\Contrib\Icons\modern.bmp"
; 替换显示磁盘空间信息的文字
SpaceTexts /LANG=2052 "所需空间:" "可用空间:"
; 提示用户输入目录的文本
; DirShow hide
; 替换显示选择安装目录的文字
DirText /LANG=2052 "请选择 ${NAME} 的安装路径:" "选择目录用以安装 ${NAME}:" "浏览..."
; 是否允许安装在根目录下
AllowRootDirInstall false
; 安装信息的颜色
;InstallColors 000000 FFFFFF
; 安装进度条显示方式
InstProgressFlags smooth colored
; 完成后自动关闭安装程序
AutoCloseWindow true
; 显示“显示详细细节”对话框
ShowInstDetails hide
; 替换“显示细节”按钮的文字
DetailsButtonText /LANG=2052 "显示细节"
; 替换“完成”按钮的文字
CompletedText /LANG=2052 "已完成"
; 卸载程序设置
; 替换卸载程序的文字
UninstallText /LANG=2052 "现在将从你的系统中卸载 ${NAME}:" "卸载目录:"
; 卸载程序图标
UninstallIcon "F:\12\UnQCDIcon.ico"
; 替换卸载程序标题的文字
UninstallCaption /LANG=2052 "卸载 ${NAME}"
; 替换卸载程序每页按钮的文字
UninstallSubCaption /LANG=2052 0 ":确认"
UninstallSubCaption /LANG=2052 1 ":正在删除文件"
UninstallSubCaption /LANG=2052 2 ":完成"
; 卸载程序显示方式
ShowUninstDetails hide
; 替换“卸载”按钮的文字
UninstallButtonText /LANG=2052 "卸载"
; 安装程序内容及其相关的回调函数
; 安装程序内容
Section /e "!主要程序(必须安装)" SecCore
SectionIn 1 2 RO
; 设置输出路径,每次使用都会改变
SetOutPath $INSTDIR
; 循环包含目录下全部内容
File /r "F:\12\1\*.*"
; 只包含一个文件
File "F:\12\gf.gif"
; 处理动态连接库文件
IfFileExists "$INSTDIR\1.dll" 0 NoFile1
; 取消组件注册
UnRegDll "$INSTDIR\1.dll"
Delete "$INSTDIR\1.dll"
NoFile1:
File "F:\12\1.dll"
; 注册组件
RegDLL "$INSTDIR\QCDIconMgr.dll"
; 写入软件注册键值
WriteRegStr HKLM "Software\NSIS\NSIS" "" "$INSTDIR"
; 为 Windows 卸载程序写入键值
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "DisplayName" "NSIS(只用于移除)"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "UninstallString" '"$INSTDIR\uninst.exe"'
; 写入生成卸载程序(可多次使用)
WriteUninstaller "$INSTDIR\uninst.exe"
SectionEnd
Section /e "扩展(可选)" SecUpdate
SectionIn 1
SetOutPath "$INSTDIR\Plugins"
File "F:\12\qcdplus\Plugins\2.dll"
File /r "F:\12\qcdplus\Plugins\3"
SectionEnd
SubSection /e "选项" SecOptions
Section /e "创建桌面图标" SecDesktopShortCut
SectionIn 1 2
SetOutPath "$INSTDIR\Plugins"
CreateShortCut "$DESKTOP\NSIS.lnk" "$INSTDIR\gf.gif"
WriteUninstaller "$INSTDIR\uninst.exe"
SectionEnd
Section /e "创建快速启动栏图标" SecQuickbarShortCut
SectionIn 1 2
SetOutPath "$INSTDIR\Plugins"
CreateShortCut "$QUICKLAUNCH\NSIS.lnk" "$INSTDIR\gf.gif"
WriteUninstaller "$INSTDIR\uninst.exe"
SectionEnd
Section /e "创建 NSIS 程序组" SecShortCutGroup
SectionIn 1 2
SetOutPath "$INSTDIR\Plugins"
CreateDirectory "$SMPROGRAMS\NSIS"
CreateShortCut "$SMPROGRAMS\QCD Player\gf.lnk" "$INSTDIR\gf.gif"
WriteUninstaller "$INSTDIR\uninst.exe"
SectionEnd
SubSectionEnd
Section "-Run"; 运行?
ExecWait '"$INSTDIR\2.exe" -p'
WriteINIStr "$INSTDIR\NSIS.ini" "2" "Language" "Chinese"
Exec "$INSTDIR\2.exe"
ExecShell open "$INSTDIR\汉化说明.htm"
SectionEnd
Section ""
;Invisible section to display the Finish header
!insertmacro MUI_FINISHHEADER SetHeader
SectionEnd
; 安装程序初始化设置
Function .onInit
; 发现有程序正在运行时提示退出后继续运行
loop:
FindWindow $R0 "NSIS"
IntCmp $R0 0 done
MessageBox MB_OKCANCEL \
"NSIS 正在运行。$\n点击“确定”按钮会关闭 NSIS 然后继续安装,点击“取消”按钮将退出安装程序" \
IDOK NoAbort
Abort
NoAbort:
SendMessage $R0 1029 0 0
; 稍等后继续检测直至检测不到或用户选择取消
Sleep 444
Goto loop
done:
; 显示 Logo 画面
SetOutPath $TEMP
File /oname=qcd_logo.bmp "F:\12\logo.bmp"
File /oname=magiclime.exe "${NSISDIR}\Bin\magiclime.exe"
ExecWait '"$TEMP\magiclime.exe" qcd_logo.bmp'
Delete "$TEMP\magiclime.exe"
Delete "$TEMP\qcd_logo.bmp"
; 初始化标牌位图
!insertmacro BI_INIT $R0
FunctionEnd
; 安装程序主界面的相关文本
Function SetHeader
!insertmacro MUI_HEADER_INIT
!insertmacro MUI_HEADER_START 1
!insertmacro MUI_HEADER_TEXT 2052 "授权协议" "安装 ${NAME} 之前,请认真阅读一下授权条款."
!insertmacro MUI_HEADER_STOP 1
!insertmacro MUI_HEADER_START 2
!insertmacro MUI_HEADER_TEXT 2052 "选择组件" "请选择你要安装的组件."
!insertmacro MUI_HEADER_STOP 2
!insertmacro MUI_HEADER_START 3
!insertmacro MUI_HEADER_TEXT 2052 "选择安装位置" "为 ${NAME} 选择一个安装目录."
!insertmacro MUI_HEADER_STOP 3
!insertmacro MUI_HEADER_START 4
!insertmacro MUI_HEADER_TEXT 2052 "安装" "${NAME} 已经安装,请等待."
!insertmacro MUI_HEADER_STOP 4
!insertmacro MUI_HEADER_START 5
!insertmacro MUI_HEADER_TEXT 2052 "完成" "安装顺利完成."
!insertmacro MUI_HEADER_STOP 5
!insertmacro MUI_HEADER_END
FunctionEnd
; 初始化安装程序对话框的显示文本
Function .onInitDialog
!insertmacro MUI_INNERDIALOG_INIT
!insertmacro MUI_INNERDIALOG_START 1
!insertmacro MUI_INNERDIALOG_TEXT 2052 1040 "如果你同意协议中的所有条款,选择“我同样”继续安装,如果你选择了“取消”,安装程序将终止,只有接受条款才能安装 ${NAME}."
!insertmacro MUI_INNERDIALOG_STOP 1
!insertmacro MUI_INNERDIALOG_START 2
!insertmacro MUI_INNERDIALOG_TEXT 2052 1042 "描述"
!insertmacro MUI_INNERDIALOG_TEXT 2052 1043 "移动你的鼠标到组件上,便可以见到相关的描述."
!insertmacro MUI_INNERDIALOG_STOP 2
!insertmacro MUI_INNERDIALOG_START 3
!insertmacro MUI_INNERDIALOG_TEXT 2052 1041 "目标文件夹"
!insertmacro MUI_INNERDIALOG_STOP 3
!insertmacro MUI_INNERDIALOG_END
FunctionEnd
; 转到下页面时的处理
Function .onNextPage
!insertmacro MUI_NEXTPAGE_OUTER
!insertmacro MUI_NEXTPAGE SetHeader
; 标牌位图设置
!insertmacro BI_NEXT
FunctionEnd
; 转到上一页面时的处理
Function .onPrevPage
!insertmacro MUI_PREVPAGE
; 标牌位图设置
!insertmacro BI_PREV
FunctionEnd
; 鼠标移到指定组件时的显示处理
Function .onMouseOverSection
; 用宏指令设置安装自己的注释文本
!insertmacro MUI_DESCRIPTION_INIT
!insertmacro MUI_DESCRIPTION_TEXT 2052 ${SecCore} "安装主应用程序"
!insertmacro MUI_DESCRIPTION_TEXT 2052 ${SecUpdate} "安装 NSIS 的更新或新增插件"
!insertmacro MUI_DESCRIPTION_TEXT 2052 ${SecOptions} "选择 NSIS 的其他安装选项,例如:创建快捷方式和应用程序组的"
!insertmacro MUI_DESCRIPTION_TEXT 2052 ${SecDesktopShortCut} "在用户的桌面上创建 NSIS 的快捷方式"
!insertmacro MUI_DESCRIPTION_TEXT 2052 ${SecQuickbarShortCut} "在用户的快速栏里创建 NSIS 快捷方式"
!insertmacro MUI_DESCRIPTION_TEXT 2052 ${SecShortCutGroup} "在用户的开始菜单的程序中创建 NSIS 的快捷方式组"
!insertmacro MUI_DESCRIPTION_END
FunctionEnd
; 安装成功完成后的设置
Function .onInstSuccess
; 自己加吧:)
FunctionEnd
; 放弃安装时警告窗口的显示信息
Function .onUserAbort
!insertmacro MUI_ABORTWARNING 2052 "你确定要推出 ${NAME} 的安装吗?"
!insertmacro MUI_ABORTWARNING_END
FunctionEnd
; 安装程序标牌位图列表
!insertmacro BI_LIST
!insertmacro BI_LIST_ADD "F:\12\Brand1.bmp" /RESIZETOFIT
!insertmacro BI_LIST_ADD "F:\12\Brand2.bmp" /RESIZETOFIT
!insertmacro BI_LIST_ADD "F:\12\Brand3.bmp" /RESIZETOFIT
!insertmacro BI_LIST_END
; 卸载程序及其相关回调函数
; 卸载程序内容
Section "Uninstall"
ExecWait '"$INSTDIR\12.exe" /un'
; 循环删除文件直至删除文件夹
RMDir /r "$SMPROGRAMS\NSIS"
UnRegDLL "$INSTDIR\2.dll"
Delete "$INSTDIR\QCDIconMgr.dll"
Delete "$INSTDIR\*.*"
DeleteRegKey HKLM "Software\NSIS"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS"
MessageBox MB_YESNO|MB_ICONQUESTION \
"是否连插件目录也要删除?$\n(若您要保留这些文件,请点击下面的“否”按钮)" \
IDNO NoDelete
; 全删光!!!
RMDir /r "$INSTDIR"
NoDelete:
SectionEnd
; 定义卸载程序标牌位图
!define BI_UNINSTALL
!include "${NSISDIR}\Examples\branding.nsh"
; 初始化卸载程序对话框的设置
Function un.onInit
; 初始化标牌位图
!insertmacro BI_INIT $R0
FunctionEnd
; 卸载程序主界面的相关文本
Function un.SetHeader
!insertmacro MUI_HEADER_INIT
!insertmacro MUI_HEADER_START 1
!insertmacro MUI_HEADER_TEXT 2052 "卸载 ${NAME}" "${NAME_FULL} 将从你的系统里移除."
!insertmacro MUI_HEADER_STOP 1
!insertmacro MUI_HEADER_START 2
!insertmacro MUI_HEADER_TEXT 2052 "卸载" "${NAME} 正在被卸载,请等待."
!insertmacro MUI_HEADER_STOP 2
!insertmacro MUI_HEADER_START 3
!insertmacro MUI_HEADER_TEXT 2052 "完成" "${NAME_FULL} 已从你的系统中移除."
!insertmacro MUI_HEADER_STOP 3
!insertmacro MUI_HEADER_END
FunctionEnd
; 初始化卸载程序对话框时的处理
Function un.onInitDialog
; 自己加:)
FunctionEnd
; 卸载程序转到下一页时的处理
Function un.onNextPage
!insertmacro MUI_NEXTPAGE_OUTER
!insertmacro MUI_NEXTPAGE un.SetHeader
; 标牌位图设置
!insertmacro BI_NEXT
FunctionEnd
; 卸载程序完成时的处理
Function un.onUninstSuccess
; 再加^_^
FunctionEnd
; 放弃卸载程序时的处理
Function un.onUserAbort
FunctionEnd
; 卸载程序标牌位图列表
!insertmacro BI_LIST
!insertmacro BI_LIST_ADD "F:\12\UnBrand1.bmp" /RESIZETOFIT
!insertmacro BI_LIST_ADD "F:\12\UnBrand2.bmp" /RESIZETOFIT
!insertmacro BI_LIST_END
; 结束

官方 NSIS 插件全集简单介绍

2007-11-22 10:29:44 | 作者:haijd
官方 NSIS 插件全集简单介绍
  • Math plugin (contain examples)
    数学函数插件,NSIS 软件已包含,这个不用说了吧,计算的时候必用。
  • System plugin (contain examples)
    调用其他动态链接库(*.dll)插件,NSIS 软件已包含,超级好用,把 windows 的 API 发挥到极限。
  • A Plugin for controlling Internet Explorer
    控制 IE 浏览器操作的插件,例如打开浏览器,关闭浏览器等等。
  • AccessControl plugin
    存取控制插件,只适用于 Win2000 或以上。
  • BDE Alias
    Borland BDE 数据库别名创建修改插件(DELPHI 数据库程序安装制作的好东东)
  • BitTorrent downloads for NSIS
    BT 下载的插件,呵呵,作单独下载某个 BT 文件的好东西
  • CabDLL: Plugin to extract all the files from a cabinet (CAB)
    从 CAB 压缩包中抽取文件的插件
  • Change Variable Plugin
    可用来改变 $TEMP 的临时目录的插件,打破只能由安装程序自动选择系统 temp 路径。
  • ChangeRes Plugin
    改变屏幕分辨率,颜色数,刷新率的插件。
  • ComPlusAdmin
    COM+ 组件的添加删除插件
  • CPUDesc
    获取 CPU 相关参数的插件,例如 3DNOW, MMX 支持等等
  • CRC generator plugin
    用来获取文件标准 ZIP CRC32(CRC 校验值) 的插件。
  • Crypto Plugin
    用来加密的插件,算法包括 MD5, SHA1, MD2, MD4,可加密文字,文件,呵呵,绝对可以作出一个需要序列号的安装程序,即使别人有解包工具也需要懂得破解算法加密才行,否则只会得到一堆乱码字节。
  • Customisable MessageBox Plugin
    可自定义消息对话框的插件,呵呵,可以作出4个按钮的消息框。
  • Detect Windows Version
    检查windows系统版本的插件,在严格需要指定系统的时候有用。
  • Dialogs 2.3
    调用系统标准对话框插件,例如打开,保存等等的标准对话框。
  • DumpState
    可列出安装过程中变量,堆栈里面内容的插件,用来调试之用超一流。
  • Enumerate CD-ROM Drives
    列举当前可用的CD-ROM列表。
  • ExecDos
    创建控制台环境运行DOS程序的插件。
  • Execute & Set Priority
    以进程方式运行程序,而且可以指定运行优先级的插件。
  • ExLicensePage
    扩展 License 页的插件,是否有很多 License 要用户同意才能安装呢,这个东东就是为了解决这个问题的,实现多页 License 效果。
  • external install file system
    分卷安装制作的插件,用 NSIS把安装程序做到多个软盘中已经不是很困难的事了。
  • ExtractDLL
    解压 compressfile.exe 压缩的文件,在用 NSISdl 插件制作在线升级程序时有用。只支持 zlib 算法。
  • ExtractDLLEx Plugin (LZMA containerfile decompressor)
    同上,支持 LZMA 算法。这个插件和上面那个插件出现的目的是为了,在线升级程序多数人都要把升级文件打包以减少体积,而 NSIS 并没有属于自己的解压插件,所以不得不把一些没有精简过代码的解压程序来作为客户端的解压工具,这是不可取的,所以这两个插件随之出现。
  • Find Process By Name
    查找进程的专用插件,呵呵,这下不用自己用API函数来互斥来知道进程是否运行了。
  • FloatOP plugin
    IntOp 只能操作整数,该插件就是为了解决浮点数运算问题的。
  • Help Support Plugin
    这是一个可以令到你点击一个按钮或按“F1”就可以通过关键字调出相关帮助中的相关章节的插件。
  • InetLoad
    一个类似 NSISdl 的下载插件,支持 http 和 ftp ,基于 MS WinInet API,对于在线升级程序制作有一定用处。
  • InstallOptionsEx 2.4.2 beta 1
    扩展自原 InstallOptions 插件,更多控件支持 Animation(动画), ProgressBar(进度条), TrackBar(位置调节), IPAddress(IP 输入), DateTime(日期时间编辑框), MonthCalendar(日历), UpDown(上下调节), TreeView(树形结构视图框)。还有其他改进功能。
  • Internet plugin
    网络功能插件,取本地计算机的主机名,IP 地址,还有 urls 的状态代码,例如:404 就代表 urls 不存在。
  • IPTest
    检测 IP 段中的可用地址。可用来检测一个IP是否存在并可用。
  • KillProcDLL Manual
    清除进程的插件,既然能检测出阻碍安装过程的进程当然少不了这个清除进程的东东啦。
  • Lazarus Registration Component
    可添加一个输入序列号和注册码的页面,呵呵,想做一个要输入注册码的安装程序吗?这个插件就是用来这样做的。
  • Marquee (text scroll)
    可以在 INSTFILES 页面(安装程序进度列表页面)的列表中添加滚动条的插件。还可以改列表的颜色,字体,边框等等
  • MD5 plugin
    md5 插件,著名的校验算法插件,用来检验一个文件的版本是否对应的最好插件。
  • MSIBanner - **Plugin to display a dialog with a progress bar
    一个仿效标准 MSI 安装程序(Windows Installer) banner 的界面插件。
  • new directory selection page
    安装目录选择页面插件,能检测是否满足需要空间大小。
  • NSIS Debugger
    NSIS 调试器插件,用来调试脚本用的。
  • NSIS-Date 1.0
    取本地时间的插件,在 API 函数中也能做到,但是这个插件是推荐用的,因为它包括了处理例如夏令时这类的时间问题。
  • NSISLog
    写安装日志的插件,用来记录安装过程,从而准确删除安装过的文件的好插件。
  • nsRandom
    能产生随机数的插件,某些时候,这个插件是很有用的。
  • nsScreenshot
    保存屏幕截图为一个BMP文件的插件。可全屏幕截图或指定窗口截图
  • nsWeb: A plugin to display the web browser control in a custom page
    可以插入一个支持 HTML 的页面插件,也可以以弹出窗口的方式显示,做广告的东东。
  • NxS MSI LoaderDlg
    MSIBanner 只是个仿效插件,所以就产生了这个插件,要求完美的人总会有的。
  • ODBC Configuration Manager
    ODBC 数据源配置管理插件。制作数据库安装程序的又一个好东东。
  • Perl plugin - v. 1.3
    这是一个允许在 NSIS 安装程序中执行 Perl 代码的插件。
  • Plugin Tester (or Wrapper)
    这是个能使用命令行参数调用其他插件中函数的插件。
  • Processes plug-in
    查找和清除进程(包括设备驱动)的插件。(适用:WinNT,Win2K,WinXP,Win2003 Server)
  • Python Interpreter
    这是一个允许在 NSIS 安装程序中执行 Python 代码的插件。
  • Refresh Desktop Plugin
    这是一个刷新桌面的插件,有时候程序安装了桌面图标,为什么用户看不见呢,那就需要这个插件了。
  • Service Control Manager plugin (install services and drivers on NT/2K/XP)
    安装服务程序(包括查看服务程序状态,停止,运行操作)的插件。适用:NT/2K/XP
  • ShellLink plugin
    这是允许你读取一个快捷方式文件(*.lnk)的插件,那样你就可以知道这个快捷方式的情况,例如指向哪个文件等等。
  • System hardware detection
    检查系统硬件信息的插件,目前能检测 CPU 名称,CPU 速度,系统内存大小,显卡名称,显卡内存大小。
  • System Tray NotifyIcon creator plugin
    可以产生一个右下角区域中图标的插件,超级酷,估计没有人做过这样的安装程序吧。^__^,可以自定义图标,自定义文字和安装进度百分比。
  • TAPI Helper Plugin
    用来检测 modem 的 ID 和名称的插件。
  • ToolTips
    可以设置安装程序的提示窗口(例如按钮的帮助提示,正常情况下是浅黄背景色)的前景和背景颜色。
  • TTF Font Name Plugin
    能够获取 TTF 字体在计算机中显示的名字的插件,这是个方便制作安装字体的插件。
  • UnTGZ
    这是一个解压缩插件。(.tgz/.tar.gz)
  • UserMgr Plugin
    这是一个能够管理用户帐号和用户组的插件。例如创建计算机用户或计算机用户组等的功能。
  • VPatch
    用来制作补丁的插件,能够根据前后版本的不同,根据差异制作出体积非常小的补丁安装程序。
  • Write arbitrary sized, runtime assigned binary data to Registry
    在注册表中写入二进制值的插件,限制最大 511 字节。
  • xtInfoPlugin - System Information Plugin
    检查系统信息插件。
  • ZipDLL
    解压 Zip 压缩文件的插件。
以上插件都是体积非常小的,务求做到了体积小,功能全的效果,以目前来说,NSIS 是安装程序小且功能齐全多样的安装程序制作软件。