nsis使用:

启动NSIS程序主界面,选择“可视化脚本编辑器(VNISEdit)”菜单,开始制作自己的安装包

选择“使用脚本向导创建新的脚本文件”,确定

进步脚本向导,下一步

第一步,这里填写应用程序的一些基本信息,下一步

第二步,这里是选择安装包的图标,生成的文件名,程序语言等,使用默认的就可以,不需要修改

第三步,选择一些效果,安装程序不用搞这么花哨,直接下一步

第四步,指定默认目录,授权文件有的话就指定,没有就空着,下一步

第五步,选择要打包的文件,直接把要打包的目录内容全部添加进来,注意两处*.*,以及勾选“包含子目录”,不要勾选”单独添加每个文件“,编译的时候会把所有的文件打包进来的,下一步

第六步,快捷方式的一些设置,下一步

第七步,设置安装程序之后要运行的内容,下一步

第八步,卸载信息设置,下一步

完成向导,勾选”保存脚本“,以及”转换文件路径到相对路径“,完成

这时就可以看到通过向导生成的脚本,可以在这里继续修改脚本

修改完脚本以后,点击菜单”NSIS“-》"编译并运行",编译成功后,会生成一个exe文件,安装包制作完成!

一些常见的问题:

1.问:在安装的过程中,如何执行BAT文件?

答:按照上面向导生成的脚本,有这么一段脚本,注意我用红色标注的内容,红色的部分是在文件复制完成以后执行BAT文件的脚本,注意操作步骤,复制文件结束后,再执行,卸载的时候执行BAT文件顺序相反

Section "MainSection"SEC01

SetOutPath"$INSTDIR\*.*"SetOverwrite ifnewer

File /r"D:\Program Files\HyperSnap6\*.*"ExecWait "$INSTDIR\install.bat"SectionEnd

2.问:如果修改安装文件和卸载文件的图标

答:修改这部分脚本即可

!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"!define MUI_UNICON"${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"

nsis自带的有两个图标,我自己感觉稍微能好看一点点(汗,虽然还是很丑,好吧,凑合着用),修改后的

!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\Orange-install.ico"!define MUI_UNICON"${NSISDIR}\Contrib\Graphics\Icons\Orange-uninstall.ico"

3.问:怎么让安装程序以管理员权限运行

答:红色标注的内容,是在原有代码的基础上增加的代码,表示以管理员权限执行安装程序

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"

OutFile "Setup.exe"

InstallDir "$PROGRAMFILES\UKey"

ShowInstDetails show

ShowUnInstDetails show

RequestExecutionLevel admin

BrandingText " "

4.问:怎么在桌面添加桌面快捷方式

答:红色标注的内容,是在原有代码的基础上增加的代码,在桌面上添加一个快捷方式

Section "MainSection" SEC01

SetOutPath "$INSTDIR\*.*"

SetOverwrite ifnewer

File /r "app\*.*"

ExecWait "$INSTDIR\install.bat"

CreateShortCut "$DESKTOP\系统.lnk" "http://localhost/app"

SectionEnd

语法如下:

CreateShortCut 快捷文件.lnk 目标文件 参数 图标文件 图标索引号 启动选项 键盘快捷键 描述

示例:

CreateShortCut "$DESKTOP\快捷方式.lnk" "$INSTDIR\程序.exe" "" "$INSTDIR\图标.ico"

对应卸载的时候,也需要添加删除的代码

5.问:为何卸载的时候无法删除开始菜单的快捷方式

答 :需要在安装和卸载的时候指定安装或卸载的用户

; 指定为所有用户

SetShellVarContext all

; 指定为当前用户

SetShellVarContext current

nsis如何设置运行安装包传参_使用NSIS制作安装包相关推荐

  1. export function函数传参_从底层看前端(七)—— JavaScript到底有多少种函数?

    在上篇文章中我们了解到了执行上下文是什么,也知道了任何语句的执行都会依赖特定的上下文. 一旦上下文被切换,整个语句的效果可能都会发生变化.那么,切换上下文的时机就显得非常重要. 在JavaScript ...

  2. 路由配置url跳转传参_如何配置路由器以进行网络范围的URL记录

    路由配置url跳转传参 Don't be in the dark about who is visiting what web sites on your LAN. Use our two-prong ...

  3. axios 跨域传参_在Vue中如何使用axios跨域访问数据

    vue.js学习之 跨域请求***与axios传参 一:跨域请求*** 1:打开config/index.jsmodule.exports{ dev: { } } 在这里面找到proxyTable{} ...

  4. mybatis java传参_[Java教程]Mybatis批量和传参

    [Java教程]Mybatis批量和传参 0 2014-07-31 04:00:12 MyBatis中批量插入 方法一: resultType="java.lang.String" ...

  5. vue 事件调用 传参_对vue下点击事件传参和不传参的区别详解

    如下所示: {{btn_text1}} {{btn_text2}} var _vm = new Vue({ data : { btn_text1 : '点击1' , btn_text2 : '点击2' ...

  6. 点击事件调用匿名函数如何传参_事件发布/订阅模式的简单实现

    这是一种广泛应用于异步编程的模式,是回调函数的事件化,常常用来解耦业务逻辑.事件的发布者无需关注订阅的侦听器如何实现业务逻辑,甚至不用关注有多少个侦听器存在.数据通过消息的方式可以灵活的传递. --& ...

  7. vue router传参_新手使用vue-router传参时注意事项

    1. 使用name和params组合传参 this.$router.push({name: 'details', params: {'id': 233}}) 路由配置 import Vue from ...

  8. @modelattribute注解用postman测试怎么传参_谁要是再敢用Map传参,我过去就是一JIO...

    还记得上次我写过一篇关于实际项目代码分层和规划的文章<看完这篇,别人的开源项目结构应该能看懂了>, 在文尾处提到过一些注意事项,其中第一条就是: Contorller层参数传递建议不要使用 ...

  9. java代码发送请求并传参_如何优化您的请求请求并使代码审核人员满意

    java代码发送请求并传参 Imagine reading a novel, but having the chapters sliced up and reordered alphabeticall ...

  10. MySQL_PHP学习笔记_2015_0614_PHP传参总结_URL传参_表单传参

    1. PHP 传参总结   1.1 url 传参 解析方法(下面两种解读方式均可以): $firstName1 = $_GET['firstName']; $firstName2 = $_REQUES ...

最新文章

  1. Nat Micro | 沈建忠团队发现新型可转移的替加环素高水平耐药机制
  2. 关于base target=_self 等
  3. pytorch 学习笔记:nn.Sequential构造神经网络
  4. jzoj3736-[NOI2014模拟7.11]数学题(math)【计算几何】
  5. python编译helloworld_python3学习笔记--001--python HelloWorld
  6. chr(10) chr(13) chr(32)
  7. NotificationManager滑动不退出_退出支付宝的相互宝大病互助计划居然需要8个步骤!...
  8. SAP License:值得一看的ERP问题
  9. C++ 动态连接库使用
  10. 计算机一级选择题比大小,科学网—【2年前写的】全国计算机等级考试 【三级网络】考试经验 - 钱世杰的博文...
  11. 打印收款单据(easypoi)Vue+springBoot+Mybatisplus
  12. SMARTS决策引擎:实时决策分析
  13. 干货~~牛人教你如何写好一篇高分SCI论文
  14. s7 modbus测试软件,S7-1200 Modbus-Tcp通讯测试
  15. 《梦幻西游》手游服务器如何实现200万玩家同时在线?(技术篇)
  16. 2021巅峰极客逆向baby_maze题wp
  17. 单链表的建立(C语言):头插法和尾插法建立单链表
  18. DRV8833真值表
  19. springboot flowable 工作流
  20. 参会人员如何快速入场?高科技来帮忙

热门文章

  1. 肝毒净-道格拉斯实验室
  2. zabbix api 接口的自动化
  3. Scrapy爬取小说简单逻辑
  4. Redhat 6.5安装JDK和Tomcat小记
  5. Delphi 中的MD5实现方法及delphi2009和delphi2010中用法
  6. 集成学习 Bagging, Boosting, Stacking
  7. 你一直在用的Beam Search,是否真的有效?
  8. 半监督学习入门基础(二):最基础的3个概念
  9. 【小知识点】分类机器学习中,某一标签占比太大(标签稀疏),如何学习?...
  10. 【NLTK基础】一文轻松使用NLTK进行NLP任务(附视频)