“NSIS (Nullsoft Scriptable Install System) 是 Windows 下的一个工具,它允许程序员
来创建安装程序。它发布于一个开源的协议并且对于任何使用来说都是完全免费的。”
“NSIS 创建的安装程序能够安装、卸载、设置系统设置、解压文件等等。因为它基于脚本文
件,你可以完全的控制安装程序的每一部分。脚本语言支持变量、函数、字串操作,就像一个
普通的程序语言一样。即使有那么多的特性,NSIS 仍然是最小的安装程序系统。在默认选项下,
它仅增加了 34 KB 的开销。”
花了我近1个月时间,我用NSIS制作了一个完整的演示产品安装程序,实现功能概要如下:
1.安装路径的选择
2.浏览器的选择
3.桌面数据库的自动安装及启动
4.数据库实例及演示数据的自动恢复
5.应用服务器的自动安装
6.JDK的安装及环境变量的设置
7.应用程序的自动安装
8.数据库实例端口的设置(要考虑用户机器上可能存在别的sqlserver数据库实例)
9.windows服务中的自动启动项的安装
10.启动应用
11.readme的打开
12.用浏览器打开应用的登录界面
13.在安装过程中切换公司或应用的介绍信息;
14.自动卸载等
还存在的遗留问题:
1.如果安装的机器上存在sqlserver2005 则本程序的sqlserver桌面引擎会安装失败;
2.安装过程中的信息切换会在操作系统的最前面,所以会把你别的程序的界面覆盖掉,除非你用 窗口键 +D键 最小化所有应用;
如果哪位网友解决了这个问题,请将解决方法及源码留在本留言栏,如有疑问也请留言,谢谢。
#author 超能
# 2008-7-03 9:48:08
Name 超能 System
SetCompressor zlib
# Defines
!define REGKEY "SOFTWARE\$(^Name)"
!define VERSION 1.0
!define COMPANY 超能公司
!define URL www.XXXX.com
# MUI defines
#!define MUI_ICON logo.ico
#!define MUI_UNICON logo.ico
!define MUI_FINISHPAGE_NOAUTOCLOSE
#定义readme
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\readme.txt
!define MUI_FINISHPAGE_RUN "$PROGRAMFILES\Internet Explorer\IEXPLORE.EXE"
!define MUI_FINISHPAGE_RUN_PARAMETERS 登录主页的url
!define MUI_CUSTOMFUNCTION_GUIINIT CustomGUIInit
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
# Included files
!include Sections.nsh
!include MUI.nsh
!include "LogicLib.nsh"
!include "${NSISDIR}\Examples\System\System.nsh"
!include WinMessages.nsh
# Reserved Files
ReserveFile "${NSISDIR}\Plugins\BGImage.dll"
ReserveFile "${NSISDIR}\Plugins\AdvSplash.dll"
# Variables
Var StartMenuGroup
# Installer pages
!insertmacro MUI_PAGE_WELCOME
#!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
# Installer languages
!insertmacro MUI_LANGUAGE SimpChinese
Caption "超能MIS"
Icon "img\install.ico"
BrandingText " 超能有限公司 -- www.超能.com "
# Installer attributes
OutFile 超能.Exe
InstallDir $PROGRAMFILES\超能
!define MUI_HEADERIMAGE
CRCCheck on
XPStyle on
ShowInstDetails show
#nevershow
VIProductVersion 1.0.0.0
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} ProductName 超能system
VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} CompanyName "${COMPANY}"
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} CompanyWebsite "${URL}"
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} FileVersion ""
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} FileDescription ""
VIAddVersionKey /LANG=${LANG_SIMPCHINESE} LegalCopyright ""
InstallDirRegKey HKLM "${REGKEY}" Path
ShowUninstDetails hide
UninstallText "将要卸载 超能system .点击继续."
UninstallIcon "img\uninstall.ico"
var DBPATH
# Installer SQL Server 2000 sections
Section SqlServer SEC0000
#MessageBox MB_OK $EXEDIR
#调用第一个信息
IntOp $9 0 + 1
call showBg
StrCpy $DBPATH $INSTDIR
;ReadRegStr $0 HKLM "Software\Microsoft\MSSQLServer\Setup" "SQLPath"
ReadRegStr $0 HKLM "Software\Microsoft\Microsoft SQL Server\XXXX\Setup" "SQLPath"
StrCmp $0 "" 0 +9
DetailPrint "正在安装SQL Server 2000 桌面引擎,请等约两分钟。 "
ExecWait '"$EXEDIR\Disk1\MSDERelA\setup.exe" DISABLENETWORKPROTOCOLS=0 SAPWD="XXXXXX"
SECURITYMODE=SQL INSTANCENAME="XXXX" DATADIR="$INSTDIR\" TARGETDIR="$INSTDIR\"'
DetailPrint "SQL Server 2000 桌面引擎安装完成!"
IfFileExists $DBPATH\MSSQL$$XXXX\Data\XXXXX.mdf 0 +2
Delete /REBOOTOK $DBPATH\MSSQL$$XXXXX\Data\XXXXX.mdf
IfFileExists $DBPATH\MSSQL$$XXXXX\Data\XXXXX_log.LDF 0 +2
Delete /REBOOTOK $DBPATH\MSSQL$$XXXXX\Data\XXXXX_log.LDF
goto +2
StrCpy $DBPATH $0
IntOp $9 0 + 2
call showBg
ExecWait '"net.exe" start MSSQL$$XXXXX'
ExecWait '"osql.exe" -U sa -P XXXXXX -S .\XXXXX -Q "Create Database XXXXX"'
DetailPrint "正在恢复演示数据!请耐心等待。"
ExecWait '"osql.exe" -U sa -P styx2008 -S .\XXXXX -Q "restore database XXXX from
disk=$\'$EXEDIR\Disk1\XXXX$\' with move $\'XXXX_Data$\' to
$\'$DBPATH\MSSQL$$XXXX\Data\XXXX.mdf$\', move $\'XXXX_Log$\' to
$\'$DBPATH\MSSQL$$XXXX\Data\XXXX_log.LDF$\'"'
DetailPrint "演示数据恢复完成!"
IntOp $9 0 + 3
call showBg
SectionEnd
# Installer jdk1.5.0_06 sections
Section -JDK5 SEC0001
SetOutPath $INSTDIR
File readme.txt
File img\install.ico
DetailPrint "正在安装Java虚拟机!"
SetOutPath "$INSTDIR\jdk1.5.0_06"
SetOverwrite on
File /r "C:\Program Files\Java\jdk1.5.0_06\*"
push $9
IntOp $9 0 + 4
call showBg
pop $9
;SetOutPath $INSTDIR
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=0
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
"JAVA_HOME" "$INSTDIR\jdk1.5.0_06"
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
"TOMCAT_HOME" "$PROGRAMFILES\Tomcat 5.0"
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=0
WriteRegStr HKLM "${REGKEY}\Components" JDK5 1
DetailPrint "Java虚拟机安装完成!"
push $9
IntOp $9 0 + 5
call showBg
pop $9
SectionEnd
# Installer Tomcat 5.0 sections
Section -Server SEC0002
IntOp $9 0 + 6
call showBg
DetailPrint "正在安装WEB服务器!"
SetOutPath "$PROGRAMFILES\Tomcat 5.0"
SetOverwrite on
File /r "D:\Tomcat 5.0\*"
push $9
IntOp $9 0 + 7
call showBg
pop $9
;ReadRegStr $0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
"TOMCAT_HOME"
;WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
"TOMCAT_HOME" "$PROGRAMFILES\Tomcat 5.0"
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment"
#在windows服务中加入”启动服务“项
ExecWait '"$PROGRAMFILES\Tomcat 5.0\bin\NetInstall.bat" "$PROGRAMFILES\Tomcat 5.0\bin"
"$INSTDIR\jdk1.5.0_06"'
#ExecWait '"$PROGRAMFILES\Tomcat 5.0\bin\tomcat5.exe" //IS//XXXX --DisplayName="XXXX"
--Install="$PROGRAMFILES\Tomcat 5.0\bin\tomcat5.exe" --Jvm=auto --StartMode=jvm --
StopMode=jvm --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start --
StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop'
#ExecWait '"$PROGRAMFILES\Tomcat 5.0\bin\tomcat5.exe" //IS//XXXX --DisplayName="XXXX"
--Install="$PROGRAMFILES\Tomcat 5.0\bin\tomcat5.exe" --Jvm="$INSTDIR\jdk1.5.0_06
\jre\bin\server\jvm.dll" --StartMode=jvm --StopMode=jvm --
StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start --
StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop'
ExecWait '"$PROGRAMFILES\Tomcat 5.0\bin\tomcat5.exe" //US//XXXX --Description="XXXX" -
-Startup=auto'
DetailPrint "WEB服务器安装完成!"
DetailPrint "WEB服务器开始启动!"
push $9
IntOp $9 0 + 8
call showBg
pop $9
启动tomcat
ExecWait '"net" start XXXX'
push $9
IntOp $9 0 + 9
call showBg
pop $9
DetailPrint "WEB服务器启动完成!"
WriteRegStr HKLM "${REGKEY}\Components" Server 1
push $9
IntOp $9 0 + 10
call showBg
pop $9
push $1
push $0
#读取当前数据库实例的端口,并且写入应用的配置文件
ReadRegStr $1 HKLM "Software\Microsoft\Microsoft SQL
Server\XXXX\MSSQLServer\SuperSocketNetLib\Tcp" "TcpPort"
StrCmp $1 "" done 0
;IfFileExists $PROGRAMFILES\Tomcat 5.0\webapps\XXXX\WEB-INF\Node.driver.xml 0 +2
FileOpen $0 '$PROGRAMFILES\Tomcat 5.0\webapps\XXXX\WEB-INF\Node.driver.xml' w
FileWrite $0 '<?xml version="1.0" encoding="utf-8"?>$\r$\n'
FileWrite $0 '<driver project-version="1.0"
class="com.microsoft.jdbc.sqlserver.SQLServerDriver">$\r$\n'
FileWrite $0 '<url
value="jdbc:microsoft:sqlserver://127.0.0.1:$1;DatabaseName=XXXX"/>$\r$\n'
FileWrite $0 '<connectionPool min="1" max="100" />$\r$\n'
FileWrite $0 '<login userName="sa" password="XXXX"/>$\r$\n'
FileWrite $0 '</driver>'
FileClose $0
done:
pop $1
pop $0
; CopyFiles $INSTDIR\*.dat $INSTDIR\backup
SectionEnd
# Installer Shortcut sections
Section -Shortcut SEC0003
SetOutPath $SMPROGRAMS\$StartMenuGroup
CreateShortcut $SMPROGRAMS\$StartMenuGroup\bin.lnk "$PROGRAMFILES\Tomcat 5.0\bin"
CreateShortcut $SMPROGRAMS\$StartMenuGroup\超能系统.lnk "$PROGRAMFILES\Internet
Explorer\IEXPLORE.EXE " "http://127.0.0.1:8080/XXXX/login.jsp"
CreateShortcut $SMPROGRAMS\$StartMenuGroup\ReadMe.lnk "notepad.exe "
"$INSTDIR\readme.txt"
WriteRegStr HKLM "${REGKEY}\Components" Shortcut 1
IntOp $9 0 + 11
call showBg
SectionEnd
Section -post SEC0004
WriteRegStr HKLM "${REGKEY}" Path $INSTDIR
SetOutPath $INSTDIR
WriteUninstaller $INSTDIR\uninstall.exe
SetOutPath $SMPROGRAMS\$StartMenuGroup
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^UninstallLink).lnk"
$INSTDIR\uninstall.exe
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
DisplayName "$(^Name)"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
DisplayVersion "${VERSION}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
Publisher "${COMPANY}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
URLInfoAbout "${URL}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
DisplayIcon $INSTDIR\logo.ico
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
UninstallString $INSTDIR\uninstall.exe
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
NoModify 1
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
NoRepair 1
IntOp $9 0 + 12
call showBg
SectionEnd
# Macro for selecting uninstaller sections
!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
Push $R0
ReadRegStr $R0 HKLM "${REGKEY}\Components" "${SECTION_NAME}"
StrCmp $R0 1 0 next${UNSECTION_ID}
!insertmacro SelectSection "${UNSECTION_ID}"
GoTo done${UNSECTION_ID}
next${UNSECTION_ID}:
!insertmacro UnselectSection "${UNSECTION_ID}"
done${UNSECTION_ID}:
Pop $R0
!macroend
# Uninstaller sections
Section /o un.Server UNSEC0000
ExecWait '"cd" /d $PROGRAMFILES\Tomcat 5.0\bin'
ExecWait '"net" stop XXXX'
ExecWait '"$PROGRAMFILES\Tomcat 5.0\bin\NetRemove.bat" "$PROGRAMFILES\Tomcat 5.0\bin"'
Delete /REBOOTOK $INSTDIR\readme.txt
Delete /REBOOTOK $INSTDIR\install.ico
RmDir /r /REBOOTOK "$PROGRAMFILES\Tomcat 5.0"
DeleteRegValue HKLM "${REGKEY}\Components" Server
SectionEnd
Section /o un.Shortcut UNSEC0001
Delete /REBOOTOK $SMPROGRAMS\$StartMenuGroup\bin.lnk
Delete /REBOOTOK $SMPROGRAMS\$StartMenuGroup\超能系统登录.lnk
Delete /REBOOTOK $SMPROGRAMS\$StartMenuGroup\ReadMe.lnk
RmDir /r /REBOOTOK "$SMPROGRAMS\$StartMenuGroup"
DeleteRegValue HKLM "${REGKEY}\Components" Shortcut
SectionEnd
Section /o un.JDK5 UNSEC0002
RmDir /r /REBOOTOK "$INSTDIR\jdk1.5.0_06"
DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
"JAVA_HOME"
DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
"TOMCAT_HOME"
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=0
DeleteRegValue HKLM "${REGKEY}\Components" JDK5
SectionEnd
Section un.post UNSEC0003
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^UninstallLink).lnk"
Delete /REBOOTOK $INSTDIR\uninstall.exe
DeleteRegValue HKLM "${REGKEY}" Path
DeleteRegKey /IfEmpty HKLM "${REGKEY}\Components"
DeleteRegKey /IfEmpty HKLM "${REGKEY}"
RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup
RmDir /REBOOTOK $INSTDIR
SectionEnd
# Installer functions
Function CustomGUIInit
CreateFont $R1 "华文中宋" 15 500 #/NORMAL
IntOp $9 0 + 0
call showBg
CALL repositionWindow
;System::Call "User32::SetWindowPos(i, i, i, i, i, i, i) b ($HWNDPARENT, -1, 0, 0, 0, 0,
${SWP_NOOWNERZORDER}|${SWP_NOSIZE})"
FunctionEnd
Function .onGUIEnd
BGImage::Destroy
FunctionEnd
Function .onInit
InitPluginsDir
StrCpy $StartMenuGroup "超能系统"
Push $R1
File /oname=$PLUGINSDIR\bg.bmp "img\bg.bmp"
File /oname=$PLUGINSDIR\spltmp.bmp img\MainSplash.bmp
advsplash::show 1000 600 400 -1 $PLUGINSDIR\spltmp
Pop $R1
Pop $R1
FunctionEnd
# Uninstaller functions
Function un.onInit
ReadRegStr $INSTDIR HKLM "${REGKEY}" Path
StrCpy $StartMenuGroup "超能系统"
!insertmacro SELECT_UNSECTION Server ${UNSEC0000}
!insertmacro SELECT_UNSECTION Shortcut ${UNSEC0001}
!insertmacro SELECT_UNSECTION JDK5 ${UNSEC0002}
FunctionEnd
Function repositionWindow
;Save existing register values to the stack
Push $0
Push $1
Push $2
Push $3
Push $4
Push $5
Push $6
Push $7
Push $8
; !define SPI_GETWORKAREA 0x0030
; !define SWP_NOSIZE 0x0001
; !define SWP_NOOWNERZORDER 0x0200
; Reposition window in the lower left
; Create RECT struct
System::Call "*${stRECT} .r1"
; Find Window info for the window we're displaying
System::Call "User32::GetWindowRect(i, i) i ($HWNDPARENT, r1) .r2"
; Get left/top/right/bottom
System::Call "*$1${stRECT} (.r2, .r3, .r4, .r5)"
; Calculate width/height of our window
IntOp $2 $4 - $2 ; $2 now contains the width
IntOp $3 $5 - $3 ; $3 now contains the height
; Determine the screen work area
System::Call "User32::SystemParametersInfo(i, i, i, i) i (${SPI_GETWORKAREA}, 0, r1, 0)
.r4"
; Get left/top/right/bottom
System::Call "*$1${stRECT} (.r4, .r5, .r6, .r7)"
System::Free $1
; Right side of screen - window - 10
IntOp $0 $6 - $2
IntOp $0 $0 / 2
; Left side of screen + 10
;IntOp $0 $4 + 10
; Bottom of screen - window - 5
IntOp $1 $7 - $3
IntOp $1 $1 / 2
IntOp $8 $7 / 10
IntOp $1 $1 + $8
System::Call "User32::SetWindowPos(i, i, i, i, i, i, i) b ($HWNDPARENT, -1, $0, $1, 0,
0, ${SWP_NOOWNERZORDER}|${SWP_NOSIZE})"
;Restore register values from the stack
Pop $8
Pop $7
Pop $6
Pop $5
Pop $4
Pop $3
Pop $2
Pop $1
Pop $0
FunctionEnd
Function showBg
BgImage::Clear /NOUNLOAD
BgImage::SetBg /NOUNLOAD /FILLSCREEN $PLUGINSDIR\bg.bmp
${Switch} $9
${Case} 0
BGImage::AddText /NOUNLOAD " 信息1。" $R1 0 0 0 40 130 990 230
${Break}
${Case} 1
;BGImage::AddImage /NOUNLOAD 38 130 $EXEDIR\img\1.bmp
BGImage::AddText /NOUNLOAD " 信息2 " $R1 0 0 0 40 130 990 230
${Break}
${Case} 2
BGImage::AddText /NOUNLOAD "信息3" $R1 0 0 0 200 130 990 230
${Break}
${Case} 3
BGImage::AddText /NOUNLOAD "信息4" $R1 0 0 0 220 150 990 230
${Break}
${Case} 4
BGImage::AddText /NOUNLOAD " 信息5" $R1 0 0 0 180 130 850 230
${Break}
${Case} 5
BGImage::AddText /NOUNLOAD " 信息6" $R1 0 0 0 120 130 880 230
${Break}
${Case} 6
BGImage::AddText /NOUNLOAD "“信息7" $R1 0 0 0 330 170 990 230
${Break}
${Case} 7
BGImage::AddText /NOUNLOAD "信息8" $R1 0 0 0 400 170 990 230
${Break}
${Case} 8
BGImage::AddText /NOUNLOAD "信息9" $R1 0 0 0 300 150 990 230
${Break}
${Case} 9
BGImage::AddText /NOUNLOAD "信息10" $R1 0 0 0 400 170 990 230
${Break}
${EndSwitch}
BGImage::Redraw /NOUNLOAD
FunctionEnd
/*Function WriteEnvStr
Exch $1 ; $1 has environment variable value
Exch
Exch $0 ; $0 has environment variable name
Push $2
Call IsNT
Pop $2
StrCmp $2 1 WriteEnvStr_NT
; Not on NT
StrCpy $2 $WINDIR 2 ; Copy drive of windows (c:)
FileOpen $2 "$2\autoexec.bat" a
FileSeek $2 0 END
FileWrite $2 "$\r$\nSET $0=$1$\r$\n"
FileClose $2
SetRebootFlag true
Goto WriteEnvStr_done
WriteEnvStr_NT:
;WriteRegExpandStr ${WriteEnvStr_RegKey} $0 $1
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} \
0 "STR:Environment" /TIMEOUT=5000
WriteEnvStr_done:
Pop $2
Pop $0
Pop $1
FunctionEnd*/
# Installer Language Strings
# TODO Update the Language Strings with the appropriate translations.
LangString ^UninstallLink ${LANG_SIMPCHINESE} "Uninstall $(^Name)"
文章出处:http://scnmutou.blog.163.com/blog/static/193453220086651433225/
相关推荐
使用NSIS制作安装程序的基本流程通常包括以下步骤: 1. 下载并安装NSIS:首先,你需要从官方网站或者其他可信源下载NSIS的安装包,并按照向导指示完成安装。 2. 编写安装脚本:NSIS使用一种名为NSIS Script的语言...
标题中的“用NSIS制作安装程序安装驱动”指的是使用Nullsoft Scriptable Install System(NSIS)这个开源的Windows系统下的安装脚本制作工具,来创建一个能够自动安装硬件驱动的安装程序。NSIS是一个功能强大的...
在脚本的-Post部分增加安装驱动的命令,如下红色部分(注:在NSIS脚本中在双引号中输入引号的方法是$\",和C语言不同),installdriver后的第一个参数是inf文件的全路径,第二个参数是DeviceID(可以在设备管理器中...
使用NSIS制作安装程序的流程大致如下: 1. 下载并安装NSIS:首先,你需要从官方网站或提供的下载地址获取NSIS的安装包,按照提示进行安装。 2. 编写脚本:使用文本编辑器创建NSIS脚本文件,如“Setup.nsi”,并定义...
NSIS(Nullsoft Scriptable Install System)是一款强大的安装程序制作工具,特别适合Windows平台上的软件部署。这款开源软件提供了一套灵活的脚本语言,使开发者能够创建具有安装、卸载、系统配置以及文件解压缩等...
它本来是一个由 Nullsoft 创建并用于作为 Winamp 及其插件发布的系统,但现已被上百个应用程序所应用,作为它们进行程序发布的工具。 NSIS 创建的安装程序可以进行安装、卸载、设置系统设置、解压文件等等。几乎...
NSIS(Nullsoft Scriptable Install System)是一款流行的开源安装制作系统,它允许开发者使用脚本语言创建Windows平台上的安装程序。NSIS提供了丰富的功能,包括文件复制、注册表操作、设置环境变量等,使得用户...
NSIS(Nullsoft Scriptable Install System)是一种流行的开源安装制作工具,用于创建Windows平台上的安装、卸载程序。NSIS的错误(NSIS ERROR)通常出现在尝试运行由NSIS编译的安装包时,提示用户安装过程中出现...
NSIS (Nullsoft Scriptable Install System) 是一个流行的开源安装制作工具,主要用于创建Windows平台上的安装、卸载程序。它支持脚本编写,允许开发者通过简单的语法实现复杂的安装逻辑。NSIS提供了丰富的功能,如...
NSIS的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。 NSIS的主要特点包括: * 小巧化,一个完整功能的安装程序仅需要34k的额外开销 * 支持大多数Windows平台,包括Windows 9....
NSIS 安装程序 可以实现组件选择安装 可以排斥选择 这个安装程序是用向导生成 然后往里面添加的代码
总结来说,NSIS是一个强大且易用的安装包制作工具,其灵活性和可扩展性使其成为开发Windows应用程序的理想选择。通过学习和实践本教程,你将能够创建出具有专业级别的自定义安装程序,满足各种项目需求。
“套件”则意味着该压缩包包含了多款与NSIS相关的应用程序,以辅助安装程序的创建。 压缩包内的子文件名“nsis-2.31-setup.exe”是NSIS的安装程序,版本号为2.31。用户需要首先运行这个文件来安装NSIS环境,这将...
NSIS 是“Nullsoft 脚本安装系统”(Nullsoft Scriptable Installation System)的缩写
用NSIS 制作自己的安装程序 bluewind 的 wmp9 nsis安装脚本 NSIS安装脚本简明教程 取得winamp的NSIS脚本的教程 迅雷5.7.3.389 AYU增强版的安装脚本 NSIS制作迅雷安装的脚本 迅雷5.7.2.371 DDR1.5版去广告版源...
关于"Qt安装程序打包工具"的标签,可能是指使用NSIS来打包Qt应用程序。Qt是一个跨平台的应用程序开发框架,开发者可以使用Qt来创建桌面、移动甚至嵌入式设备上的应用。如果需要将Qt应用分发给用户,可以利用NSIS来...
例如,`cloudmusic-0.nsi`可能包含了将网易云音乐应用程序的文件解压到目标目录、设置快捷方式、处理许可协议等步骤。 2. **image**:这是一个文件夹,通常包含安装程序界面使用的图片资源,如背景图片、按钮图标等...
NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的...
【NSIS(Nullsoft Scriptable Install System)】是一款开源的Windows平台下的安装程序制作软件,它允许用户使用简单的脚本语言来创建安装、卸载、维护等程序。NSIS提供了丰富的功能,包括文件操作、注册表操作、...