记录对NSIS的一些微调 实现Electron安装包美化

利洽科技-nsNiuniuSkinUI - NSIS 实现了electron 的安装包美化,免费,便捷。
下面我整理了一些关于它的微调,使其安装卸载更加简单快捷。
在这里插入图片描述

1. 默认展示安装路径部分

在这里插入图片描述
(1)将moreconfiginfo标签visible 设置为 true,切换[btnShowMore] [btnHideMore]下拉按钮 (SetupScripts>nim>skin>configpage.xml

<?xml version="1.0" encoding="utf-8"?>
<Windows>
   <!-- 安装目录 -->
   <VerticalLayout>
   	<VerticalLayout width="480" height="250" roundcorner="5,5" bkimage="file='form\pic.png'">
	
	</VerticalLayout>
	<VerticalLayout bkcolor="#FFFFFFFF">
		
	<VerticalLayout name="moreconfiginfo" bkimage="form\bk_down.png" visible="true" height="130">
	  <Control height="25" />
	  <Label font="5" textcolor="#FF333333" text="安装路径:" padding="40,0,30,0" />
	  <HorizontalLayout height="32" padding="40,6,30,0">
      <RichEdit  name="editDir" text="" textcolor="0xFF000000" inset="5,8,2,2" bkimage="public\edit\edit0.png" autohscroll="false" bordervisible="true"  bordersize="1" bordercolor="0xFFD1D1D1" focusbordercolor="0xFFD1D1D1" wantreturn="false" wantctrlreturn="false" multiline="false" width="360" />
      <Control width="10" />
      <Button name="btnSelectDir" width="40" height="32" normalimage="form\btn_path_normal.png" hotimage="form\btn_path_hovered.png" pushedimage="form\btn_path_pressed.png"  />      
      </HorizontalLayout>
	  
	 <HorizontalLayout height="23" padding="40,5,80,0">
        <Label font="0" textcolor="#FF999999" width="150" text="所需空间:100M" />
		<Label font="0" name="local_space" width="150" textcolor="#FF999999"  />
		<Control />
     </HorizontalLayout>
	</VerticalLayout>
	<Control />
	<HorizontalLayout height="20" padding="95,25,0,0" >
      <CheckBox name="chkAgree" width="125" heigh="20" font="7" text="我已经阅读并认可" textcolor="#FF333333" selected="true" valign="center" align="left" textpadding="20,0,0,0" normalimage="file='public/CheckBox/check_no.png' dest='0,2,16,18'" normalhotimage="file='public/CheckBox/check_no.png' dest='0,2,16,18'" selectedimage="file='public/CheckBox/check_yes.png' dest='0,2,16,18'" selectedhotimage="file='public/CheckBox/check_yes.png' dest='0,2,16,18'"/>
      <Button name="btnAgreement" width="180" font="7" text="《软件许可及服务协议》" textpadding="0,0,0,0" textcolor="0xff00bb96" align="left" />
	  <Control />
    </HorizontalLayout>
	<Button name="btnInstall" padding="95,10,0,30" width="290" height="40" normalimage="form\btn_installation_normal.png" hotimage="form\btn_installation_hovered.png" pushedimage="form\btn_installation_pressed.png" disabledimage="form\btn_installation_disable.png" font="6" textcolor="0xffffffff" disabledtextcolor="0xffffffff" margin="0,10,0,0" text="一键安装" />
	
	</VerticalLayout>
	<Button float="true" visible="false" inset="0,5,5,0" pos="220,230,260,270"  name="btnShowMore" width="40" height="40" normalimage="form\btn_down_normal.png" hotimage="form\btn_down_hovered.png" pushedimage="form\btn_down_pressed.png" />
	<Button float="true" visible="true" inset="0,5,5,0" pos="220,230,260,270"  name="btnHideMore" width="40" height="40" normalimage="form\btn_up_normal.png" hotimage="form\btn_up_hovered.png" pushedimage="form\btn_up_pressed.png" />
	<Include source="licensepage.xml" />
   
   </VerticalLayout>
</Windows>

(2)设置初次加载尺寸为480 * 500(路径: SetupScripts>nim>ui_nim_setup.nsh>DUIPage函数 #添加设置初始高度 500

Function DUIPage
    StrCpy $InstallState "0"	#设置未安装完成状态
	InitPluginsDir   	
	SetOutPath "$PLUGINSDIR"
	File "${INSTALL_LICENCE_FILENAME}"
    File "${INSTALL_RES_PATH}"
	File /oname=logo.ico "${INSTALL_ICO}" 		#此处的目标文件一定是logo.ico,否则控件将找不到文件 
	nsNiuniuSkin::InitSkinPage "$PLUGINSDIR\" "${INSTALL_LICENCE_FILENAME}" #指定插件路径及协议文件名称
    Pop $hInstallDlg
   	
	#生成安装路径,包含识别旧的安装路径  
    Call GenerateSetupAddress
	
	#设置控件显示安装路径 
    nsNiuniuSkin::SetControlAttribute $hInstallDlg "editDir" "text" "$INSTDIR"
	Call OnRichEditTextChange

	#设置安装包的标题及任务栏显示  
	nsNiuniuSkin::SetWindowTile $hInstallDlg "${PRODUCT_NAME}安装程序"
	nsNiuniuSkin::ShowPageItem $hInstallDlg "wizardTab" ${INSTALL_PAGE_CONFIG}
	
	nsNiuniuSkin::SetControlAttribute $hInstallDlg "licensename" "text" "服务条款"
	#nsNiuniuSkin::SetControlAttribute $hInstallDlg "btnAgreement" "text" "  用户许可协议"

    #设置初始高度 500
	nsNiuniuSkin::SetWindowSize $hInstallDlg 480 500
		
    Call BindUIControls	
    nsNiuniuSkin::ShowPage 0
FunctionEnd
2. 双击安装包和卸载时 默认杀掉当前运行进程,无需提示用户手动关闭应用程序

在这里插入图片描述

(代码最下方添加如下钩子函数 路径: SetupScripts>nim>ui_nim_setup.nsh

#进入安装程序时回调
Function .onInit
    #硬编码杀掉指定进程
    nsProcess::_KillProcess "React18-Electron-Temp.exe"
    #或者
    nsProcess::_KillProcess "${EXE_NAME}"
FunctionEnd

#当卸载程序接近完成初始化时调用
Function un.onInit
	#硬编码杀掉指定进程
    nsProcess::_KillProcess "React18-Electron-Temp.exe"
    #或者
    nsProcess::_KillProcess "${EXE_NAME}"
FunctionEnd
3. 自定义许可协议(改这两个文件)

SetupScripts>nim>ui_nim_setup.nsh>licence.txt
SetupScripts>nim>ui_nim_setup.nsh>licence.rtf
最终默认使用licence.rtf 想办法生成 rtf 文件

4. 包体压缩

SetupScripts>nim>nim_setup.nsi
根据需要配置压缩即可
在这里插入图片描述

#包体压缩
#SetCompressor lzma ZLIB ZLIB(固实)  BZIP2 BZIP2(固实) LZMA LZMA(固实) 极限压缩

; 设置压缩选项 lzma 压缩率高 解压安装快  打包慢
SetCompress auto
SetCompressor /SOLID lzma
SetCompressorDictSize 32
5. 快捷方式添加UCA盾牌

(1)SetupScripts>nim>nim_setup.nsi

#==================== NSIS属性 ================================
#针对Vista和win7 的UAC进行权限请求.
#RequestExecutionLevel none|user|highest|admin
RequestExecutionLevel admin

(2)electron项目 package.json 中添加

   "win": {
      "requestedExecutionLevel": "requireAdministrator"
    },
  "build": {
    "asar": true,
    "icon": "./public/ico/favicon.ico",
    "productName": "React18-Electron-Temp",
    "appId": "React18ElectronTemp",
    "win": {
      "requestedExecutionLevel": "requireAdministrator"
    },
    "nsis": {
      "oneClick": false,
      "allowElevation": true,
      "allowToChangeInstallationDirectory": true,
      "installerIcon": "./public/ico/favicon.ico",
      "uninstallerIcon": "./public/ico/favicon.ico",
      "createDesktopShortcut": true,
      "createStartMenuShortcut": true,
      "shortcutName": "React18-Electron-Temp",
      "artifactName": "${productName}-setup-${version}_${os}_${arch}.${ext}"
    },
    "directories": {
      "output": "build"
    },
    "files": [
      "!node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme}",
      "!node_modules/*/{test,__tests__,tests,powered-test,example,examples}",
      "!node_modules/*.d.ts",
      "!**/*.map",
      "!**/electron-log*",
      "!node_modules/rc-*/**/*",
      "!node_modules/xlsx/**/*",
      "!node_modules/react*/**/*",
      "!node_modules/redux*/**/*",
      "!node_modules/protobufjs/**/*",
      "!node_modules/dayjs/**/*",
      "!node_modules/@types/**/*",
      "!node_modules/@babel/**/*",
      "!node_modules/@rc-component/**/*",
      "!node_modules/antd/**/*",
      "!node_modules/@formatjs/**/*",
      "!node_modules/prop-types/**/*",
      "!node_modules/@ant-design/**/*",
      "!node_modules/classnames/**/*",
      "!node_modules/ahooks/**/*",
      "!node_modules/qg-react-components/**/*",
      "!node_modules/lodash/**/*",
      "!node_modules/@reduxjs/toolkit/**/*",
      "!node_modules/js-export-excel/**/*",
      "!node_modules/lottie-web/**/*",
      "!node_modules/uuid/**/*",
      "!src/**/*",
      "!public/**/*",
      "!local-debug/**/*",
      "dist/**/*",
      "core-pro/**/*"
    ],
    "extraResources": [
      {
        "from": "./local-debug",
        "to": "."
      }
    ]
  },

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

利洽科技-nsNiuniuSkinUI - NSIS官网

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: NSIS(Nullsoft Scriptable Install System)是一种开源的脚本安装制作工具,可以用于创建Windows操作系统上的安装程序。NSIS提供了内置的模板和命令,可以根据需求进行定制和美化安装模板。 为了美化NSIS安装模板,我们可以进行以下操作: 1. 自定义界面:NSIS提供了内置的默认界面,但我们可以根据需要自定义界面。可以修改窗口样式、字体、颜色等,以及添加自定义的图片和图标。这样可以使安装更加专业和吸引人。 2. 设计安装向导:安装向导是用户在安装过程中导航的重要界面。我们可以自定义安装向导的页面顺序、文本内容和按钮的样式。通过设计精美的安装向导,可以提升用户体验。 3. 添加自定义脚本:NSIS使用自定义的脚本语言来编写安装程序。我们可以添加自定义的脚本,实现一些复杂的逻辑和功能。例如,可以在安装过程中检测系统环境、设置注册表、创建快捷方式等。 4. 压缩和解压缩文件:NSIS支持对文件进行压缩和解压缩。我们可以选择不同的压缩算法和选项,以便在安装含更多的文件,并确保安装程序的大小和执行效率。 5. 加入自动更新:NSIS还支持自动更新功能。我们可以加入自动更新模块,使得用户可以方便地获取最新版本的安装,并进行自动覆盖安装。 总之,通过对NSIS安装模板进行美化和定制,我们可以创建出具有个性化和专业化特点的安装程序。这不仅可以提升用户体验,还会提高软件的品牌形象和推广效果。 ### 回答2: NSIS(Nullsoft Scriptable Install System)是一种开源的脚本驱动的安装/解压缩系统,它允许开发者创建自定义的安装程序。美化安装模板指的是对NSIS安装界面进行个性化设计,以提升用户体验。 首先,美化安装模板可以通过自定义背景、图标、颜色和字体来提升安装程序的美观度。通过选择适当的背景图片和配色方案,可以为用户营造一个舒适和专业的界面。 其次,美化安装模板可以改善用户的交互体验。通过添加动画效果、过渡效果和交互式元素,可以使用户在安装过程中感到更加舒心和投入。例如,可以在安装进度条上添加动态效果,让用户直观地了解安装的进展情况。 还有,美化安装模板还可以增加品牌形象的展示。开发者可以加入自己的品牌标志、公司信息和其他形象元素,以提升品牌的知名度和认可度。 此外,美化安装模板还可以提供更多的自定义选项,以满足用户的个性化需求。通过添加选项勾选框或下拉菜单,用户可以根据自己的喜好选择是否安装某些组件或功能。 总之,美化安装模板是通过个性化设计和增加交互元素,提升NSIS安装程序的外观和用户体验的方法。通过美化安装模板,开发者可以为用户提供一个更加吸引人、专业和方便的安装过程。 ### 回答3: NSIS(Nullsoft Scriptable Install System)是一个开源的安装制作工具,可以用来制作Windows环境下的安装程序。美化安装模板是指对NSIS生成的默认安装界面进行个性化定制,使其更符合软件产品的品牌形象和用户界面设计要求。 NSIS提供了一系列的默认界面模板,括经典的Installer等等,但这些默认模板一般比较简单,无法满足一些特殊的设计需求,因此需要对安装界面进行美化定制。 美化安装模板的主要步骤如下: 1. 设计安装界面布局:根据软件产品的界面设计风格,确定安装界面的整体布局,括窗口的尺寸、背景色、图标、标题、按钮等元素。 2. 自定义背景图和图标:可以使用自定义的背景图片作为安装界面的背景,提升整体美观度;同样,可以使用自定义图标替换默认的图标,突出软件品牌形象。 3. 修改字体和颜色:根据软件界面设计规范,选择合适的字体和颜色,使安装界面的文字信息更易读、更符合软件产品的风格。 4. 添加自定义按钮和界面元素:根据具体需求,可以添加一些自定义按钮和界面元素,比如“继续”、“退出”按钮,或者安装进度条,以提升用户体验。 5. 错误处理和展示:在安装过程中,可能会遇到一些错误情况,可以根据具体需求预先设计好错误处理和展示界面,如错误提示框等。 通过美化安装模板,可以使得最终生成的安装程序更具视觉吸引力,与软件产品的UI风格保持一致,提升用户的安装体验。同时,也可以在安装过程中添加一些个性化的功能,满足特定的需求。总之,美化安装模板是NSIS制作安装程序的重要环节,它可以为软件产品增添更多的价值和个性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值