NSIS使用详解(图文详解版)

NSIS使用教程NSIS简介:NSIS 是“Nullsoft 脚本安装系统”(Nullsoft scrīptable Installation System)的缩写,它是一个免费的Win32 安装、卸载系统,它的特点:脚本简洁高效;系统开销小;当然进行安装、卸载、设置系统设置、解压文件等等更不在话下,几乎可以做所有的事情。

更多的功能请阅读蓝色网际的《NSIS帮助文档》。

对于制作NSIS的使用教程,蓝色网际是NSIS方面的专家,她的《NSIS帮助文档》就是一本NSIS的圣经,而对初学者来说,最头疼的莫过于一大堆看不懂的代码,对他们来说无异于一本天书。

缘于此,特草此基础教程,希望NSIS专家们勿见笑,不当之处欢迎批评指正以期完善,也希望给初学者作个铺垫。

工具:NIS Edit+Nullsoft Installation System(NSIS)[此两款软件都可以到世纪主站上下载到]思路:脚本向导+修改代码=个性化安装包步骤:I.利用向导制作安装包:1.安装上述两款,启动NIS Edit,在“文件”菜单中“新建脚本:向导”=>下一步”,如图1:附图2.设置应用程序信息,如软件名称、版本、出版人等,如图2。

当然最一个网站可以留空,如果设置了,则安装包会生成一个对应网址的“Internet 快捷方式”。

3.设置程序选项,如安装包图标、安装程序文件、安装包语言[这里选“SimChinese”]、用户图形界面及压缩方式等,我们可以选用默认值,也可以点击对应项目的按钮或下拉菜单更改设置,如下图3附图4.设置安装目录及授权信息,如图4后“下一步”:5.选定程序文件,即我们要打包的文件,可以使用默认的“Mainsection”,也可以根据需要进行更改或新建组别,如果组比较多时,你也可以设置是否“允许用户选择要安装的组件”,如图5。

附图完毕后进行“添加文件”操作,选定我们要打包的文件,如图6,完成自动后返回的图5的界面,执行下一步操作。

图6.设置开始菜单中文件夹名称及快捷方式,这里我们使用默认值,如图7,按“下一步”:附图7.指定安装后要运行的程序,同上用默认值并设置相关运行参数及描述,如果你和我一样懒的话,或不想在安装运行任何程序,则留空即可,如图8:附图8.这步是有关卸载程序的相关信息,如卸载时的提示、卸载的图标等,如图9 附图9.至此完成向导,如图10,,钩选“保存脚本”、“转换文件路径到相关路径”及“编译脚本” 附图提示保存脚本路径并自动编译脚本,我们可以按或F9运行安装程序进行预览,向导产生的安装包效果图如图11所示:附图II.修改代码以个性化安装包:10.选择可修改之处:1)软件LOGO[如图11A]、安装包标题[图11B]、图11C、图12、图13图11见上楼图12如下附图图13如下附图2)闪屏界面11.修改代码1) 修改软件LOGO:在源代码“ MUI Settings”后面添加下列代码:以下是代码片段:!define MUI_WELCOMEFINISHPAGE_BITMAP "G:\temp\ pwr.bmp"注释:引号内为位图的路径,位图大小大约为165*298效果图如图14所示附图2)修改安装包标题,在同上位置添加下列代码:以下是代码片段:!define MUI_WELCOMEPAGE_TITLE "\r\n PDF2all 5.35d 汉化版"注释:\r\n为换行标志效果图上楼如图14所示3)修改图11C中的说明,同上位置添加下列代码:以下是代码片段:!define MUI_WELCOMEPAGE_TEXT "pdf2all是一个转换器的集合,它能转换包括doc2pdf (Word to PDF),xls2pdf (Excel Sheet到PDF),ppt2pdf(PowerPoint到PDF),mdb2pdf (Access到PDF),ps2pdf(Postscrīpt 到PDF),pdf2jpg(PDF到JPEG),pdf2bmp(PDF到BMP),pdf2tiff(PDF到TIFF),pdf2eps(PDF到EPS),pdfMerge(合并PDF文件),pdf2ppt(PDF到PowerPoint)。

\r\n\r\n软件汉化:高芳銮 (Raindy)\r\n\r\n$_CLICK"效果图如图14所示4)对图12中的修改,在源代码:以下是代码片段:ShowInstDetails showShowUnInstDetails show后添加:以下是代码片段:BrandingText "软件汉化:高芳銮 (Raindy)"效果图如图15所示附图5)在完成添加“汉化说明”,只要在源代码:以下是代码片段:; Finish page后添加:以下是代码片段:!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\汉化说明.txt"!define MUI_FINISHPAGE_SHOWREADME_TEXT "汉化说明"效果所示附图6)闪屏界面,可以在源代码中加入下列代码即可:A、普通效果以下是代码片段:Function .onInitSetOutPath $TEMPFile /oname=spltmp.bmp "G:\Temp\Nsisres\splash.bmp"splash::show 2300 $TEMP\spltmpPop $0FunctionEnd效果图如此软件下载:pdf2all-setup.rarB、渐隐闪屏以下是代码片段:Function .OnInitInitPluginsDirFile /oname=$PLUGINSDIR\splash.bmp "G:\Temp\Nsisres\splash.bmp"advsplash::show 1500 800 600 -1 $PLUGINSDIR\splashFunctionend7)背景音乐[贯穿安装过程]以下是代码片段:Var hmciFunction .OnInitInitPluginsDirSetOutPath $PLUGINSDIRFile "G:\Temp\Nsisres\music.mp3" [说明:源MP3的存放路径]System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\music.mp3") i .r0SendMessage $0 0x0465 0 "STR:play repeat"System::Call user32.dll::ShowWindow(i r0, i 0)StrCpy $hmci $0FunctionendSection;add your codesSendMessage $hmci 0x0010 0 0Sectionend后语:以上仅是NSIS制作安装包最基本的操作,供初学者入门之用,故云“初级篇”。

希望不会怡笑大方,更希望蓝MM、陈敏毅老大等NSIS高手的中高级教程:)相关资料下载[以Pdf2allV5.35d为例,可直接点击下载]全文的Word文档附在附件中NSIS.rar偶以Pdf2allV5.35d为例,制作了安装包制作动画演示[可直接点击下载]相关文件列表如下:动画演示[pdf2all-movie.exe]安装包的NSIS脚本代码[PDF2all-nsis.nsi.txt]以下是代码片段:Function .OnInitInitPluginsDirFile /oname=$PLUGINSDIR\splash.bmp c:\test.bmpadvsplash::show 1500 800 600 -1 $PLUGINSDIR\splashFunctionend背景音乐(贯穿安装全过程):以下是代码片段:Function .OnInitInitPluginsDirSetOutPath $PLUGINSDIRFile "c:\a.mp3"System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\a.mp3") i .r0SendMessage $0 0x0465 0 "STR:play repeat"System::Call user32.dll::ShowWindow(i r0, i 0)StrCpy $hmci $0FunctionendSection;add your codesSendMessage $hmci 0x0010 0 0Sectionend背景音乐2:以下是代码片段:Section/FunctionSetOutPath $PLUGINSDIRFile $WINDIR\MEDIA\chimes.wavBgImage::Sound /NOUNLOAD /WAIT "$PLUGINSDIR\chimes.wav"BgImage::Clear /NOUNLOADSectionend/Functionend最后一种方法使用了bgimage 插件,安装程序执行到该插件时会等待wav 播放完再继续执行。

raindy谢谢dujuan509兄如果闪屏效果[渐隐]+背景音乐[全程]放在一起那代码该如何修改?偶两者无法兼得望不吝赐教dujuan509以下是代码片段:outfile test.exeVar hmciFunction .OnInitInitPluginsDirSetOutPath $PLUGINSDIRFile "c:\a.mp3"System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\a.mp3") i .r0 SendMessage $0 0x0465 0 "STR:play repeat"System::Call user32.dll::ShowWindow(i r0, i 0)StrCpy $hmci $0File /oname=$PLUGINSDIR\splash.bmp c:\test.bmpadvsplash::show 1500 800 600 -1 $PLUGINSDIR\splashFunctionendSection;add your codessleep 5000SendMessage $hmci 0x0010 0 0Sectionendraindy谢谢dujuan509兄已经学会了:)可惜背景音乐只能支持MP3格式如果能支持midi等就好了蓝色网际MIDI 请参考这个DEMO附件midi.zip蓝色网际推荐一个NSIS 的快速编辑器- NotePad2。

合集下载

NSIS用户手册

NSIS用户手册

NSIS⽤户⼿册NSIS(Nullsoft Scriptable Install System)是⼀个供程序员使⽤的、建⽴Windows installers的⼯具。

它的发布遵守开源许可,且完全免费使⽤。

脚本⽂件要利⽤NSIS制作安装包,你必须编写NSIS脚本,NSIS脚本是⼀些简单语法规则的⽂本。

NSIS脚本的每⼀⾏都是命令。

若命令很长,可以⽤'/'来换⾏写,类似VC⾥⾯写很长的字符串。

例如:Messagebox MB_OK|MB_ICONINFORMATION /"This is a sample that shows how to use line breaks for larger commands in NSIS scripts"如果要在字符串⾥⾯加⼊双引号,可以这样写:$/",或者⽤单引号代替。

脚本⽂件的扩展名是nsi,脚本头⽂件是nsh。

可以分成多个头⽂件来组织脚本⽂件,⽤下⾯的⽅法来包含头⽂件:!include Sections.nsh脚本结构脚本⽂件⼀般包含“Install Attributes”、“Pages”、“Sections”、“Functions”这⼏部分。

Install Attributes,定义了⼀些常量,如安装⽂件名、安装路径等。

Pages,定义授权书页,⽬录选择页,组件选择页,反安装页等等。

Sections,把安装进程分成多个阶段来定义,⽅便操作。

Functions,定义⼀些函数,在安装时进⾏⽤户交互。

脚本格式Commands命令⾏是这样的形式 'command [parameters]'File "myfile"Comments以;或#开始的⾏被认为是注释⾏,你可以在命令⾏后放注释,也可以使⽤c风格的注释。

; Comment# Comment/*CommentComment*/File "myfile" ; Comment如果你需要以;或#作为参数,你应把他们放在引号⾥⾯。

nsis使用方法

nsis使用方法

nsis使用方法NSIS(Nullsoft Scriptable Install System)是一种用于创建Windows安装程序的开源脚本语言。

它提供了许多功能,使开发人员能够定制化安装过程,包括创建目录、复制文件、创建快捷方式等。

下面将介绍NSIS的使用方法,帮助开发人员快速上手。

我们需要安装NSIS。

在NSIS官方网站上下载最新版本的安装程序,并按照提示进行安装。

安装完成后,我们可以在开始菜单中找到NSIS的相关工具。

NSIS使用一种类似于C语言的脚本语言来编写安装程序。

我们可以使用任何文本编辑器来创建NSIS脚本文件,文件的扩展名通常为.nsi。

在脚本文件的开头,我们需要使用`!define`指令来定义一些常量,如安装路径等。

接下来,我们可以使用`Section`指令来定义安装程序的各个部分。

每个部分可以包含一组操作,如创建目录、复制文件等。

我们可以使用适当的标题来描述每个部分的功能。

在每个部分中,我们可以使用各种指令来执行特定的操作。

例如,使用`SetOutPath`指令来设置文件的输出路径,使用`File`指令来复制文件,使用`CreateShortcut`指令来创建快捷方式等。

这些指令可以根据实际需求进行灵活配置。

除了基本的文件操作,NSIS还提供了一些高级功能,如注册表操作、启动应用程序等。

我们可以使用`WriteRegStr`指令来写入注册表,使用`Exec`指令来执行外部程序等。

在脚本文件的末尾,我们可以使用`SectionEnd`指令来结束每个部分的定义。

最后,使用`SectionGroup`指令可以将多个部分组合在一起,以实现更复杂的安装逻辑。

完成脚本文件的编写后,我们可以使用NSIS提供的编译器来将脚本文件编译成可执行的安装程序。

编译后的安装程序可以在Windows 系统上运行,并按照脚本文件中定义的操作进行安装。

NSIS是一个功能强大的工具,可以帮助开发人员快速创建Windows 安装程序。

NSIS基础教程衿华版第一卷

NSIS基础教程衿华版第一卷

上一页 | 目录 | 下一页NSIS基础教程衿华版第一卷NSIS 可以创建安装程序,卸载程序,对系统进行设置,执行外部文件,等等。

因为NSIS 是基于脚本文件的,你可以方便的制作简单安装包或复杂的高级安装包。

NSIS具有体积小,编译速度快,效率高的特点,编译原生所需大小仅为34KB 支持主流平台,并且平台的兼容性好,如$PROGRAMFILES可以自动处理32位与64位目录差异。

独特的压缩方式,如SetCompressor /SOLID lzma固实压缩。

基于脚本的特性可以方便的对文件进行随时更改,灵活简单。

NSIS生成程序必须代码#安装程序名称OutFil "Installer.exe"#区段,NSIS代码里至少需要一个,区段在安装页面执行Section ""SectionEnd弹出窗口OutFile "MessageBox.exe"ShowInstDetails showSection ""DetailPrint "Hello World!"MessageBox MB_OK "Hello World!"SectionEnd搜索当前目录下所有.txt文件里,输出包含"nsis"字符串的文件名!include "LogicLib.nsh"!include "WordFunc.nsh"OutFile "FileOption.exe"SetFont /LANG=2052 "宋体" 12ShowInstDetails show #1016 InformationSection ""#SetAutoClose true #instpage autocloseDetailPrint "#Open File and write string into file" FileOpen $0 "$EXEDIR\FileOption.txt" wFileWrite $0 "Where there is a will there is a way!$\r$\n"FileClose $0DetailPrint "#Open file with add mode"FileOpen $0 "$EXEDIR\FileOption.txt" aFileWrite $0 "Never put off till tomorrow what may be done today!$\r$\n"FileClose $0DetailPrint "#You will find the string had overwrite,so you must seek end of file"FileOpen $0 "$EXEDIR\FileOption.txt" aFileSeek $0 0 ENDFileWrite $0 "String append into file$\r$\n"FileClose $0DetailPrint "#Read file string,note: must less than 1024byte"FileOpen $0 "$EXEDIR\FileOption.txt" r${Do}FileRead $0 $1DetailPrint $1${LoopWhile} $1 != ""/*#you can also do like this.${Do}FileRead $0 $1DetailPrint $1${If} $1 == ""${ExitDo}${EndIf}${Loop}*/DetailPrint "#List file name and echo"FindFirst $0 $1 "$EXEDIR\*.txt"${While} $1 != ""DetailPrint $1FindNext $0 $1${EndWhile}DetailPrint ""#搜索当前目录下所有.txt文件里,输出包含"nsis"字符串的文件名 FindFirst $0 $1 "$EXEDIR\*.txt"${While} $1 != ""#DetailPrint $1FileOpen $3 "$EXEDIR\$1" r${Do}FileRead $3 $4#DetailPrint $4${WordFind} $4 "nsis" "*" $R0${If} $R0 > 0DetailPrint "#Find string $\"nsis$\" in this file $1#" ${ExitDo}${EndIf}${LoopWhile} $4 != ""FindNext $0 $1${EndWhile}SectionEnd简单制作安装程序桌面快捷方式和开始菜单和快速启动栏和任务栏#Simply install a file!include "WinVer.nsh"; EXE 主程序名!define PRODUCT_EXENAME "pythonschool.exe"; 产品要安装的路径 $INSTDIR 的值!define PRODUCT_INSTNAME "PythonSchool"; 产品名称!define PRODUCT_NAME "Python丝酷"OutFile "simpleinstall.exe"# define the directory to install to,# $DESKTOP are the same as "c:\users\administrator\desktop" like Windows 7 InstallDir "$DESKTOP"Section ""#SetAutoClose true# define the output path for this file# The "$INSTDIR"'s value is defind by InstallDir,# you can change like this: StrCpy $INSTDIR "C:\Program files\pythonschool" SetOutPath "$INSTDIR"File /r "*.txt"# define uninstaller name# use this sentence will made a uninstaller.exe file in "$INSTDIR"WriteUninstaller "$INSTDIR\uninst.exe"SectionEndSection "桌面快捷方式" Sec_Desktop#InitPluginsDir#CreateShortCut "$PLUGINSDIR\${PRODUCT_INSTNAME}.lnk" "$INSTDIR\${PRODUCT_EXENAME}"#Rename /REBOOTOK "$PLUGINSDIR\${PRODUCT_INSTNAME}.lnk" "$DESKTOP\${PRODUCT_INSTNAME}.lnk"CreateShortCut "$DESKTOP\${PRODUCT_INSTNAME}.lnk" "$INSTDIR\${PRODUCT_EXENAME}"SectionEndSection /o "快速启动栏" Sec_QuickSetOutPath "$INSTDIR\"CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_EXENAME}"${If} ${AtLeastWin7}ExecShell taskbarpin "$QUICKLAUNCH\${PRODUCT_NAME}.lnk"Delete "$QUICKLAUNCH\${PRODUCT_NAME}.lnk"${EndIf}SectionEndSection "菜单栏快捷方式" Sec_MenuSetOutPath "$SMPROGRAMS"CreateDirectory "$SMPROGRAMS\${PRODUCT_INSTNAME}"CreateShortCut "$SMPROGRAMS\${PRODUCT_INSTNAME}\${PRODUCT_INSTNAME}.lnk" "$INSTDIR\${PRODUCT_EXENAME}" # 主程序快捷方式#WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" # 官方网址快捷方式#CreateShortCut "$SMPROGRAMS\${PRODUCT_INSTNAME}\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" # 将官方网址快捷方式放到菜单栏CreateShortCut "$SMPROGRAMS\${PRODUCT_INSTNAME}\Uninstall.lnk" "$INSTDIR\uninst.exe" # 卸载快捷方式SectionEndSection "Uninstall"#SetAutoClose true# Always delete uninstaller.exe first# In %temp% the "Au_.exe" do the work reallydelete "$INSTDIR\uninst.exe"Delete "$DESKTOP\${PRODUCT_INSTNAME}.lnk"Delete "$INSTDIR\${PRODUCT_NAME}.url"${If} ${AtLeastWin7}IfFileExists "$QUICKLAUNCH\User Pinned\TaskBar\${PRODUCT_NAME}.lnk" 0 +2Messagebox MB_OKCANCEL "是否删除快速启动栏" IDOK 0 IDCANCEL +2ExecShell taskbarunpin "$QUICKLAUNCH\UserPinned\TaskBar\${PRODUCT_NAME}.lnk"${EndIf}; 卸载开始菜单目录RMDir /R "$SMPROGRAMS\${PRODUCT_INSTNAME}"; Win7 下会在所有用户(all)下进行创建SetShellVarContext allRMDir /R "$SMPROGRAMS\${PRODUCT_INSTNAME}"SetShellVarContext currentRMDIR "$INSTDIR"SectionEnd通过注册表读取JAVA运行库的版本号和通过插件获取当前系统是否为admin用户# name installeroutFile "installer.exe"# default section startsection# read the value from the registry into the $0 registerreadRegStr $0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" CurrentVersion# print the results in a popup message boxmessageBox MB_OK "version: $0"# call userInfo plugin to get user info. The plugin puts the result in the stackuserInfo::getAccountType# pop the result from the stack into $0pop $0# compare the result with the string "Admin" to see if the user is admin.# If match, jump 3 lines down.strCmp $0 "Admin" +3# if there is not a match, print message and returnmessageBox MB_OK "not admin: $0"return# otherwise, confirm and returnmessageBox MB_OK "is admin $0"# default section endsectionEnd源代码下载上一页 | 目录 | 下一页。

NSISMUI教程

NSISMUI教程

NSISMUI教程NSIS(Nullsoft Scriptable Install System)是一款开源的安装程序制作工具,它可以帮助开发者快速制作Windows平台下的安装程序。

NSIS MUI(Modern User Interface)提供了更加现代化的用户界面,能够为用户提供更好的安装体验。

本文将为您介绍如何使用NSIS MUI制作安装程序,并说明一些基本概念和常用命令。

一、NSISMUI基本概念1. 页面(Pages):安装程序的页面用于引导用户进行安装过程。

NSIS MUI提供了多种页面模板供开发者选择,例如许可协议、选择目标位置、选择组件等等。

开发者可以根据自己的需求自由调整和修改页面内容。

3. 定义(Define):定义是NSIS脚本中的一种预处理指令,用于定义一些全局的常量和变量。

开发者可以使用定义来方便地管理和使用一些常用的参数。

二、NSISMUI常用命令1. !define:用于定义全局常量。

例如:!define INSTALL_DIR "C:\Program Files\MyApp",将INSTALL_DIR定义为安装目录的路径。

2. Page:用于定义页面模板。

例如:Page License,用于添加许可协议页面。

3. Section:用于定义安装组件。

例如:Section "Main Program",用于定义一个主程序组件。

4. File:用于添加文件到安装程序。

例如:File"C:\MyApp\MyProgram.exe",将MyProgram.exe添加到安装程序中。

5. SectionIn:用于将组件添加到安装节。

例如:SectionIn RO,将当前组件添加到Read Only节。

7. LangString:用于定义多语言字符串。

例如:LangString DESC_SCHN "简体中文",定义一个用于显示中文的字符串。

NSIS使用详解(图文详解版)

NSIS使用详解(图文详解版)

NSIS使‎用教程NSIS简‎介:NSIS 是“Nulls‎o ft 脚本安装系‎统”(Nulls‎o ft‎scrīp‎t able‎Insta‎l lati‎o n Syste‎m)的缩写,它是一个免‎费的 Win32‎安装、卸载系统,它的特点:脚本简洁高‎效;系统开销小‎;当然进行安‎装、卸载、设置系统设‎置、解压文件等‎等更不在话‎下,几乎可以做‎所有的事情‎。

更多的功能‎请阅读蓝色‎网际的《NSIS帮‎助文档》。

对于制作N‎S IS的使‎用教程,蓝色网际是‎N SIS方‎面的专家,她的《NSIS帮‎助文档》就是一本N‎S IS的圣‎经,而对初学者‎来说,最头疼的莫‎过于一大堆‎看不懂的代‎码,对他们来说‎无异于一本‎天书。

缘于此,特草此基础‎教程,希望NSI‎S专家们勿‎见笑,不当之处欢‎迎批评指正‎以期完善,也希望给初‎学者作个铺‎垫。

工具:NIS Edit+Nulls‎o ft Insta‎l lati‎o n Syste‎m(NSIS)[此两款软件‎都可以到世‎纪主站上下‎载到]思路:脚本向导+修改代码=个性化安装‎包步骤:I.利用向导制‎作安装包:1.安装上述两‎款,启动NIS‎Edit,在“文件”菜单中“新建脚本:向导”=>下一步”,如图1:附图2.设置应用程‎序信息,如软件名称‎、版本、出版人等,如图2。

当然最一个‎网站可以留‎空,如果设置了‎,则安装包会‎生成一个对‎应网址的“Inter‎n et 快捷方式”。

3.设置程序选‎项,如安装包图‎标、安装程序文‎件、安装包语言‎[这里选“SimCh‎i nese‎”]、用户图形界‎面及压缩方‎式等,我们可以选‎用默认值,也可以点击‎对应项目的‎按钮或下拉‎菜单更改设‎置,如下图3附图4.设置安装目‎录及授权信‎息,如图4后“下一步”:5.选定程序文‎件,即我们要打‎包的文件,可以使用默‎认的“Mains‎e ctio‎n”,也可以根据‎需要进行更‎改或新建组‎别,比较多时,你也可以设‎置是否“允许用户选‎择要安装的‎组件”,如图5。

nsis使用详解(图文详解版)

nsis使用详解(图文详解版)

nsis使用详解(图文详解版)NSIS使用教程NSIS简介:NSIS 是“Nullsoft 脚本安装系统”(Nullsoft scrīptable Installation System)的缩写,它是一个免费的Win32 安装、卸载系统,它的特点:脚本简洁高效;系统开销小;当然进行安装、卸载、设置系统设置、解压文件等等更不在话下,几乎可以做所有的事情。

更多的功能请阅读蓝色网际的《NSIS帮助文档》。

对于制作NSIS的使用教程,蓝色网际是NSIS方面的专家,她的《NSIS帮助文档》就是一本NSIS的圣经,而对初学者来说,最头疼的莫过于一大堆看不懂的代码,对他们来说无异于一本天书。

缘于此,特草此基础教程,希望NSIS专家们勿见笑,不当之处欢迎批评指正以期完善,也希望给初学者作个铺垫。

工具:NIS Edit+Nullsoft Installation System(NSIS)[此两款软件都可以到世纪主站上下载到]思路:脚本向导+修改代码=个性化安装包步骤:I.利用向导制作安装包:1.安装上述两款,启动NIS Edit,在“文件”菜单中“新建脚本:向导”=>下一步”,如图1:附图2.设置应用程序信息,如软件名称、版本、出版人等,如图2。

当然最一个网站可以留空,如果设置了,则安装包会生成一个对应网址的“Internet 快捷方式”。

附图3.设置程序选项,如安装包图标、安装程序文件、安装包语言[这里选“SimChinese”]、用户图形界面及压缩方式等,我们可以选用默认值,也可以点击对应项目的按钮或下拉菜单更改设置,如下图3 附图4.设置安装目录及授权信息,如图4后“下一步”:附图5.选定程序文件,即我们要打包的文件,可以使用默认的“Mainsection”,也可以根据需要进行更改或新建组别,如果组比较多时,你也可以设置是否“允许用户选择要安装的组件”,如图5。

附图完毕后进行“添加文件”操作,选定我们要打包的文件,如图6,完成自动后返回的图5的界面,执行下一步操作。

NSIS

NSIS (Nullsoft Scriptable Install System)是一个Open Source的Windows 系统下安装程序制作程序。

它提供了安装、卸载、系统设置、文件解压缩等功能。

这如其名字所指出的那样,NSIS是通过它的脚本语言来描述安装程序的行为和逻辑的。

NSIS的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。

NSIS脚本通常以 nsi为扩展名,支持include功能,头文件扩展名为nsh。

NSIS的主要特点是:* 开销小,一个完整功能的安装程序仅需要34k的额外开销。

* 支持大多数Windows平台,包括:Windows 9.x,Windows NT, Windows 2000, Windows XP, Windows 2003* 支持三大压缩算法: Zlig, BZips, LZMA* 支持脚本* 支持多语言* 支持安装界面定制* 提供可扩展的插件接口* 支持网络安装、补丁* 支持无人值守的安装模式* 此外,NSIS的license允许任何用途免费使用。

开发一个NSIS的安装程序通常有以下几步:1. 确定安装的功能和界面元素2. 编写NSIS脚本3. 使用NSIS提供的makensis或者makensisw程序,将步骤2编写的脚本编译成可执行的安装程序4. 调试安装程序,如果有问题退到第二步重复随着NSIS的流行,有一些第三方的NSIS脚本开发环境出现了,如HM NIS Edit,Venis IX前者是完全开源的,后者仅对个人和非商业用途免费。

在这些集成开发环境下,步骤2,3可以方便的组合在一起。

NSIS脚本的结构NSIS脚本(下称nsi脚本)主要包含安装程序属性、页面、区段、函数。

属性用来定义安装程序的行为和界面风格,这些属性大部分是编译时刻属性,即不能在运行时刻改变。

页面是指安装程序的向导页面,示例:Page licensePage componentsPage directoryPage instfilesUninstPage uninstConfirmUninstPage instfiles区段是对应某种安装/卸载选项的处理逻辑,该段代码仅当用户选择相应的选项才被执行。

一、NSIS介绍

⼀、NSIS介绍概述最近需要写⼀个安装程序,⽐对了⼀下现有的安装⼯具,最后选定了NSIS,最主要的原因⼀是开源、⼆是灵活。

下⾯把我的要求简单列举下:1、需要检查系统环境是否满⾜要求2、需要界⾯友好的安装过程3、需要⼀些⾃定义界⾯,在安装过程中来获取⼀些必须的信息4、需要根据界⾯的选择来执⾏或跳过⼀些安装过程5、需要操作数据库6、需要操作IIS7、需要使⽤PowerShell命令设置AD/Exchange/Lync8、需要操作注册表,⽤于标识安装步骤以⽤于卸载或回滚的执⾏经过调查发现NSIS都能实现,但它有⾃⼰的⼀套脚本语⾔,需要学习成本,如果有编程基础这个其实不难,下载⼀个“NSIS⽤户⼿册”、⼀个"NSIS"(脚本编译)、⼀个“HM NIS Edit”(脚本编辑)⼀切就可以开始啦!基本知识那么⾸先,我们先看⼀下“NSIS⽤户⼿册”吧,你总得先了解⼀下NSIS这个东西的基本介绍和脚本的基本结构吧。

我把了解的最重要的东西列举⼀下,其他涉及到细节或遇到难题就可以随时查询⽤户⼿册或者google万能的⽹络:1、安装程序的主体脚本⽂件 .nsi,可以包含⼀个或多个头⽂件 .nsh头⽂件可以通过把它划分为⼀个或多个代码块来帮你编排你的脚本,你也可以在头⽂件⾥加⼊功能函数或宏,并且在多个安装程序⾥包含头⽂件,这样可以更容易的升级你的程序,并且使你的脚本很容易的让⼈看懂。

2、⼀个安装程序的基本结构包含应⽤程序的基本信息定义、头⽂件引⽤、安装程序属性设置、安装程序页⾯、区段(安装过程脚本)和函数(安装页⾯创建之前、显⽰前和离开前的代码)等应⽤程序的基本信息定义:产品的名称、版本、发布者、⽹站等信息;头⽂件引⽤:!include ***.nsh;安装程序属性设置:安装程序语⾔、安装程序名称、输出安装⽂件、默认安装⽬录等信息;安装程序页⾯:内建页⾯(欢迎页⾯、许可页⾯、⽬录选择页⾯、组件选择页⾯、安装记录页⾯、完成页⾯)、⾃定义页⾯;区段:安装程序执⾏的实体,每⼀个 NSIS 安装程序包含⼀个或多个区段;函数:最终要的是页⾯的回调函数(每个内建页⾯有三个回调函数(预置函数、显⽰创建函数和离开函数)、⾃定义的页⾯仅有两个回调函数(创建函数和离开函数))、再就是安装的回调函数(.onInit、.onInstFailed、.onInstSuccess等)、还可以有⼀些⾃定义的函数;3、保存值和使⽤值可以使⽤Var命令来声明变量,使⽤变量来保存值,所有定义的变量都是全局的,即使在区段或函数内定义。

nsis使用详解(图文详解版)

NSIS使用‎教程NSIS简介‎:NSIS 是“Nullso‎f t 脚本安装系统‎”(Nullso‎f t‎scrīpt‎a ble Instal‎l ation‎System‎)的缩写,它是一个免费‎的Win32 安装、卸载系统,它的特点:脚本简洁高效‎;系统开销小;当然进行安装‎、卸载、设置系统设置‎、解压文件等等‎更不在话下,几乎可以做所‎有的事情。

更多的功能请‎阅读蓝色网际‎的《NSIS帮助‎文档》。

对于制作NS‎I S的使用教‎程,蓝色网际是N‎S IS方面的‎专家,她的《NSIS帮助‎文档》就是一本NS‎I S的圣经,而对初学者来‎说,最头疼的莫过‎于一大堆看不‎懂的代码,对他们来说无‎异于一本天书‎。

缘于此,特草此基础教‎程,希望NSIS‎专家们勿见笑‎,不当之处欢迎‎批评指正以期‎完善,也希望给初学‎者作个铺垫。

工具:NIS Edit+Nullso‎f t Instal‎l ation‎System‎(NSIS)[此两款软件都‎可以到世纪主‎站上下载到]思路:脚本向导+修改代码=个性化安装包‎步骤:I.利用向导制作‎安装包:1.安装上述两款‎,启动NIS Edit,在“文件”菜单中“新建脚本:向导”=>下一步”,如图1:附图2.设置应用程序‎信息,如软件名称、版本、出版人等,如图2。

当然最一个网‎站可以留空,如果设置了,则安装包会生‎成一个对应网‎址的“Intern‎e t 快捷方式”。

附图3.设置程序选项‎,如安装包图标‎、安装程序文件‎、安装包语言[这里选“SimChi‎n ese”]、用户图形界面‎及压缩方式等‎,我们可以选用‎默认值,也可以点击对‎应项目的按钮‎或下拉菜单更‎改设置,如下图3附图4.设置安装目录‎及授权信息,如图4后“下一步”:附图5.选定程序文件‎,即我们要打包‎的文件,可以使用默认‎的“Mainse‎c tion”,也可以根据需‎要进行更改或‎新建组别,较多时,你也可以设置‎是否“允许用户选择‎要安装的组件‎”,如图5。

NSIS使用说明

NSIS使用说明学习NSIS一段时间了,在这段时间里自己遇到了很多问题,也用自己摸索的方法一个个解决了,先将积累的知识点以及自己遇到的问题及解决方案,与大家共享下:第一部分:页面设置 ; MUI 预定义常量通用页面向导页面头上的文字!define MUI_PAGE_HEADER_TEXT text向导页面头上的文字想到(解释用)!define MUI_PAGE_HEADER_SUBTEXT text 欢迎页面大标题设置!define MUI_WELCOMEPAGE_TITLE \安装向导\标题下子内容设置!define MUI_WELCOMEPAGE_TEXT \欢迎说明或软件说明等\授权页面安装协议定义!insertmacro MUI_PAGE_LICENSE “文件” 显示在页面顶部的文字!define MUI_LICENSEPAGE_TEXT_TOP text 显示在页面底部的文字!defineMUI_LICENSEPAGE_TEXT_BOTTOM text 按钮方式时按钮上的文字!defineMUI_LICENSEPAGE_BUTTON button_text用户需要钩选该 checkbox 来接受软件许可!define MUI_LICENSEPAGE_CHECKBOX 在checkbox 旁显示的文字!define MUI_LICENSEPAGE_CHECKBOX_TEXT text钩选radio box 接受或拒绝许可!define MUI_LICENSEPAGE_RADIOBUTTONSradio旁接受文字!define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT text radio 旁拒绝文字!define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE text 组件选择页面顶部文字!define MUI_COMPONENTSPAGE_TEXT_TOP text 组件旁文字!defineMUI_COMPONENTSPAGE_TEXT_COMPLIST text 下拉框旁文字!defineMUI_COMPONENTSPAGE_TEXT_INSTTYPE text 描述框顶部文字!defineMUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE text无组件描述框文字!define MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO text 安装目录页面页面顶部文字!define MUI_DIRECTORYPAGE_TEXT_TOP text 路径选择框上文字!define MUI_DIRECTORYPAGE_TEXT_DESTINATION text 存放用户选择的目录的变量,默认是 $INSTDIR !define MUI_DIRECTORYPAGE_VARIABLE variable不禁用\下一步\按钮!define MUI_DIRECTORYPAGE_VERIFYONLEAVE 安装进度页面页面头上的文字!define MUI_INSTFILESPAGE_FINISHHEADER_TEXT text 进一步说明!define MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT text 完成页面页面标题!define MUI_FINISHPAGE_TITLE title 页面标题区的额外空格!defineMUI_FINISHPAGE_TITLE_3LINES 显示在完成页面上文字!define MUI_FINISHPAGE_TEXT text 使checkbox 时,设定文本区额外空间!define MUI_FINISHPAGE_TEXT_LARGE完成按钮的显示文字!define MUI_FINISHPAGE_BUTTON text重启操作系统 checkbox 旁的文字!define MUI_FINISHPAGE_TEXT_REBOOT text 显示在'Reboot now'旁的文字!define MUI_FINISHPAGE_TEXT_REBOOTLATER text 指定checkbox 选择运行的应用程序!define MUI_FINISHPAGE_RUN exe_file程序 checkbox 旁的文字!define MUI_FINISHPAGE_RUN_TEXT text运行应用程序的参数!define MUI_FINISHPAGE_RUN_PARAMETERS parameters 指定checkbox 为非选中状态!define MUI_FINISHPAGE_RUN_NOTCHECKED安装完成执行的nsi函数!define MUI_FINISHPAGE_RUN_FUNCTION function_name checkbox 选择查看文件网站!define MUI_FINISHPAGE_SHOWREADME file/url 用户可及点击的超链上的文字!define MUI_FINISHPAGE_LINK link_text超链上文字的颜色,默认为 000080!define MUI_FINISHPAGE_LINK_COLOR 第二部分问题及我的方法 1、组件选择部分问题组件的显示:组件的显示是根据section 定义的顺序,显示的是section的标题,若选择为空,如section “” sec01,它将不会显示在组件选择中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档