前面我们提到了NSIS
的界面自定义、服务器检测已经系统判断,现在我们说下,NSIS
最基本的美化教程。

1、正常情况我安装自动向导打包出来的软件打开来的是欢迎界面

2、我们在点击了下一步出现的是

3、这时候我们点击安装就会进入安装进度条界面(这里不在截图),因为向导安装不是重点,下面我们说下个性美化
4、美化第一修改logo图和位图(logo即安装程序生成的图标,位图就是我们在第二张图片看到的左边的那个图片),怎么修改的,这里贴出代码
003 | !define MUI_ABORTWARNING |
004 | !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" |
005 | !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" |
007 | !define MUI_WELCOMEFINISHPAGE_BITMAP "C:\util\nsis_uis\流年测试.bmp" |
008 | C:\util\nsis_uis\ceshi.bmp是位图的路径,位图大小大约为169×257,而默认的NSIS该图的大小为164×314,从而产生一定比例的伸缩,因此最好采用164×314的尺寸。logo最好用透明底色 |
011 | !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" |
012 | !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" |
014 | !define MUI_ICON "C:\util\nsis_uis\安装.ico" |
015 | !define MUI_UNICON "C:\util\nsis_uis\卸载.ico" |
016 | 5、这里我们把位图和logo已经修改完成,下来我们要修改第二张图的右边向导文字 |
018 | !define MUI_WELCOMEPAGE_TITLE "\r\n 欢迎使用流年测试1.0-安装示例向导" |
025 | !define MUI_WELCOMEPAGE_TEXT " 欢迎使用流年测试1.0-安装示例是流年开发的一个NSIS安装示例软件。\r\n\r\n 软件作者:流年博客 \r\n\r\n 官方网址:http://izmm.me\r\n\r\n $_CLICK" |
026 | 7、接下来我们修改品牌文本(即第三张图左下角横线上的文字) |
030 | ShowUnInstDetails show |
033 | 8、最后我们应该修改下打包软件的名称(即Setup.exe) |
038 | OutFile "${PRODUCT_NAME}.exe" |
041 | 到这里我们基本已经修改完成了。可是实现自己的软件包了,刚快去尝试一下,下面是未修改前的源码请自行查看 |
043 | ; 该脚本使用 HM VNISEdit 脚本编辑器向导产生 |
045 | !define PRODUCT_NAME "流年测试" |
046 | !define PRODUCT_VERSION "1.0" |
047 | !define PRODUCT_PUBLISHER "My company, Inc." |
049 | !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" |
050 | !define PRODUCT_UNINST_ROOT_KEY "HKLM" |
052 | ; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------ |
055 | !define MUI_ABORTWARNING |
056 | !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" |
057 | !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" |
059 | !insertmacro MUI_PAGE_WELCOME |
061 | ;!insertmacro MUI_PAGE_LICENSE "c:\path\to\licence\YourSoftwareLicence.txt" |
063 | !insertmacro MUI_PAGE_DIRECTORY |
065 | !insertmacro MUI_PAGE_INSTFILES |
067 | !insertmacro MUI_PAGE_FINISH |
069 | !insertmacro MUI_UNPAGE_INSTFILES |
071 | !insertmacro MUI_LANGUAGE "SimpChinese" |
073 | !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS |
074 | ; ------ MUI 现代界面定义结束 ------ |
075 | Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" |
077 | InstallDir "$PROGRAMFILES\My application" |
079 | ShowUnInstDetails show |
080 | Section "MainSection" SEC01 |
081 | SetOutPath "$INSTDIR" |
083 | File "C:\Users\流年\Desktop\nsis.jpg" |
085 | Section -AdditionalIcons |
086 | WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" |
087 | CreateDirectory "$SMPROGRAMS\My application" |
088 | CreateShortCut "$SMPROGRAMS\My application\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" |
089 | CreateShortCut "$SMPROGRAMS\My application\Uninstall.lnk" "$INSTDIR\uninst.exe" |
092 | WriteUninstaller "$INSTDIR\uninst.exe" |
093 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" |
094 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" |
095 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" |
096 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" |
097 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" |
103 | Delete "$INSTDIR\${PRODUCT_NAME}.url" |
104 | Delete "$INSTDIR\uninst.exe" |
105 | Delete "$INSTDIR\nsis.jpg" |
106 | Delete "$SMPROGRAMS\My application\Uninstall.lnk" |
107 | Delete "$SMPROGRAMS\My application\Website.lnk" |
108 | RMDir "$SMPROGRAMS\My application" |
110 | DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" |
113 | #-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--# |
115 | MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "您确实要完全移除 $(^Name) ,及其所有的组件?" IDYES +2 |
118 | Function un.onUninstSuccess |
120 | MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从您的计算机移除。" |
LEAVE A REPLY