首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何要求用户使用NSIS卸载以前的版本

您可以通过以下步骤要求用户使用NSIS卸载以前的版本:

  1. 在安装程序界面中,添加一个按钮或调用一个函数,以让用户选择是否要卸载以前的版本。例如,您可以使用以下代码:!include nsis.nsh Function Uninstall ; 提示用户输入需要卸载的版本 MessageBox MB_YESNO "您想要卸载以前的版本吗?" /SD IDYES ; 如果用户选择是,则执行卸载操作 If IDYES ; 执行卸载操作 ; 这里可以添加实际的卸载代码 EndIf FunctionEnd!include nsis.nsh Function Uninstall ; 提示用户输入需要卸载的版本 MessageBox MB_YESNO "您想要卸载以前的版本吗?" /SD IDYES ; 如果用户选择是,则执行卸载操作 If IDYES ; 执行卸载操作 ; 这里可以添加实际的卸载代码 EndIf FunctionEnd; 导入NSIS API函数 Import "C:\Program Files (x86)\NSIS\src\lib\nsis.dll" ; 定义卸载函数 Function Uninstall ; 获取当前安装目录 Push "C:\Program Files (x86)\NSIS\bin" Call GetProgramFolder Pop $0 ; 获取注册表键值 Push "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" Call GetRegKey Pop $0 ; 删除注册表键值 Push $0 Call DeleteRegKey Pop $0 ; 删除目录 Push $0 Call DeleteFolder Pop $0 EndFunction ; 导入NSIS API函数 Import "C:\Program Files (x86)\NSIS\src\lib\nsis.dll" ; 定义卸载函数 Function Uninstall ; 获取当前安装目录 Push "C:\Program Files (x86)\NSIS\bin" Call GetProgramFolder Pop $0 ; 获取注册表键值 Push "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" Call GetRegKey Pop $0 ; 删除注册表键值 Push $0 Call DeleteRegKey Pop $0 ; 删除目录 Push $0 Call DeleteFolder Pop $0 EndFunction!include nsis.nsh
  2. 在安装程序界面中,添加一个按钮或调用一个函数,以让用户选择是否要卸载以前的版本。例如,您可以使用以下代码:
  3. 在实际卸载操作中,您需要使用NSIS提供的API函数来完成以前版本的卸载操作。您可以参考以下代码:
  4. 最后,您可以将卸载按钮的代码与卸载函数连接起来,以形成完整的卸载流程。例如,您可以使用以下代码:

; 导入NSIS API函数

Import "C:\Program Files (x86)\NSIS\src\lib\nsis.dll"

; 定义卸载函数

Function Uninstall

代码语言:txt
复制
; 获取当前安装目录
代码语言:txt
复制
Push "C:\Program Files (x86)\NSIS\bin"
代码语言:txt
复制
Call GetProgramFolder
代码语言:txt
复制
Pop $0
代码语言:txt
复制
; 删除目录
代码语言:txt
复制
Push $0
代码语言:txt
复制
Call DeleteFolder
代码语言:txt
复制
Pop $0

EndFunction

; 导入NSIS API函数

Import "C:\Program Files (x86)\NSIS\src\lib\nsis.dll"

; 定义卸载函数

Function Uninstall

代码语言:txt
复制
; 获取当前安装目录
代码语言:txt
复制
Push "C:\Program Files (x86)\NSIS\bin"
代码语言:txt
复制
Call GetProgramFolder
代码语言:txt
复制
Pop $0
代码语言:txt
复制
; 获取注册表键值
代码语言:txt
复制
Push "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS"
代码语言:txt
复制
Call GetRegKey
代码语言:txt
复制
Pop $0
代码语言:txt
复制
; 删除注册表键值
代码语言:txt
复制
Push $0
代码语言:txt
复制
Call DeleteRegKey
代码语言:txt
复制
Pop $0
代码语言:txt
复制
; 删除目录
代码语言:txt
复制
Push $0
代码语言:txt
复制
Call DeleteFolder
代码语言:txt
复制
Pop $0

EndFunction

; 卸载按钮代码

Button

代码语言:txt
复制
Caption := '卸载'
代码语言:txt
复制
Font := 'Arial'
代码语言:txt
复制
FontSize := 12
代码语言:txt
复制
FontColor := clBlack
代码语言:txt
复制
BackColor := clBtnFace
代码语言:txt
复制
Size := 240
代码语言:txt
复制
Left := 
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在 UWP 使用 wpf 的 Trigger 安装 Behaviors以前的代码UWP 使用 Trigger

本文需要告诉大家,如何使用 Behaviors 做出 WPF 的 Trigger ,需要知道 UWP 不支持 WPF 的 Trigger 。...下载 他的官网在 Behaviors 以前的代码 在 WPF 开发,可以写出下面代码 的是 DataTriggerBehavior 是 Behaviors 的一个东西,所以需要安装之后才可以使用。请看下面的代码。...,需要先添加命名空间和寻找一张图片,因为图片使用的是Assets/动漫.jpg ,所以需要把他修改为你的图片的所在,如何写参见win10 uwp 访问解决方案文件 命名空间 xmlns:Interactivity...按钮无法使用时的图片 ? 请使用 DataTriggerBehavior 的Binding 连到需要修改的属性,在 Value 判断他的值。

2.2K00
  • 如何看待50多家组织致信谷歌要求允许用户卸载所有Android预装应用程序?将带来哪些影响?

    现在的谷歌安卓系统统治力还在不断的加强,现在具备全球生态能力的企业前五的企业都是美国的几个头部玩家,像苹果,微软,谷歌,亚马逊,脸书都是具备全球生态能力的科技公司,中国的两个排头兵阿里巴巴和腾讯公司仅仅跟在后边...,在科技领域欧洲也是非常忌惮美国的科技公司,对于谷歌的安卓系统现在很多人不是很理解,既然安卓的代码的开源的为什么还能控制安卓的生态,在这点上谷歌玩了一个花样,虽然代码的开源的但是谷歌的全家桶的服务却是要以来...GMS框架的,所以只要通过不了谷歌的认证手机厂家就没法使用谷歌的全家桶,所以预装谷歌自家的产品也是顺理成章的事情。...而且现在的谷歌的全家桶已经能够影响全球的老百姓,现在几乎离开谷歌的全家桶就不能正常的使用,对于全球老百姓的影响还是非常大,在全球范围内美国的科技实力还是非常强大的,而且依然改变了世界上很多规则,美国的对于全球的影响力还是第一位的...虽然很多企业联合起来抵制谷歌的安卓,但对于大形势而言只是杯水车薪,毕竟用户的行为习惯以及被培养起来了,几乎所有的应用开发都基于安卓和苹果来完成,除非出现新的技术革命或者变革,否则短时间内还是谷歌安卓的天下

    44230

    《使用Nsis打包安装程序》

    文章目录 1、使用HM VNISEdit打包 1.1、配置 1.2、打包 2、编写Nsis脚本打包 3、引用 NSIS(Nullsoft Scriptable Install System...它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的行为和逻辑的。...NSIS 的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的[1]。...1、使用HM VNISEdit打包 当前HM VINISEdit版本为2.0.3是2005年发布的,年纪比较大,可以点击这里下载,也可以下载我从轻狂志大佬博客下载的这个插件集成版本。...< 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    1.2K30

    如何选择合适的 django 版本使用

    首先,是不是需要一个地方来查看 django 有没有新版本发布呢,请看: https://www.djangoproject.com/download/ 然后,该如何选择一个合适的版本,是一股脑装最新版...(很肯能存在一些小问题,如:与其他库的兼容性问题)还是有方法可寻呢,请看:     一般来说我们都选择在长期维护中的 django 版,即 LTS(Long Term Support) 版本。...官网有个图,很明显的看到某些版本标记了 LTS: 从上图可以看出目前在维护中的 只有两个版本,3.2 版本(还没发布)将要加入 LTS: 1.11(Last version to support Python...2.7.) 2.2(我们 python3 就用 2.2 了,跟 1.11 语法上有些变化,比如:路由的匹配模式) 安装的时候指定版本安装就可以安装 LTS 版本(pip install django=

    3K40

    记联软 UniAccess 导致 NSIS 安装包启动进程失效

    且给出 NSIS 安装包脚本的规避方法 特别感谢 lsj 定位到此问题,我只是帮助他记录问题的工具人 联软 UniAccess 是一款监控电脑设备的应用,在很多公司都会使用。...遇到此问题时最佳做法是卸载,如何卸载请参阅以下博客 卸载联软UniAccess,删除UniAccess Agent记录 - Never_Await_Victory - 博客园 最新彻底删除联软uniaccessAgent_zhangxl2000...的博客-CSDN博客_uniaccessagenttray.exe 卸载 UniAccessAgent 软件_ITPUB博客 如果无法卸载或好奇联软 UniAccess 是如何投毒的,请继续阅读本文 我的...NSIS 脚本是使用以下代码进行启动进程的 nsExec::Exec "${PATH_MAIN}\lindexi.exe install" 这里的 ${PATH_MAIN} 在运行的时候大概是 D:\...,记录的日志也都是完成启动进程 其实以上的 NSIS 脚本还是有一刀的,那就是传入的参数是没有给带空格的路径加上引号。

    2.4K30

    【C++】Qt:基于windeployqt+nsis程序打包和发布

    1.windeployqt和nsis介绍 windeployqt是一个Qt提供的非常有用的命令行工具,用于将Qt应用程序所需的所有依赖项自动复制到应用程序的构建目录中,以便在没有Qt安装的计算机上运行应用程序...它还会自动解析应用程序的依赖关系,确保所有依赖的库文件都正确复制到目标目录中,以便应用程序能够正确运行。 使用windeployqt非常简单。...nsis我用的版本是: nsis-3.02.1(最新版nsis是包含了下面的nisedit的) 2.用nisedit制作脚本 1.新建向导脚本 2.填写应用信息 3.设置图标、语言等 4.设置目录与授权信息...5.选择打包的程序文件 6.设置快捷方式 7.安装后运行方式(只有一个.exe就默认) 8.设置卸载提示 9.完成向导 生成的脚本如下,可自定义更改: 比如要在安装开始的时候选择语言,可以添加以下脚本...LangDialog "Installer Language" "Please select the language of the installer" ;显示语言选择对话框 Pop $LANGUAGE ;获得用户对于语言的选择结果

    59710

    如何优雅的使用Git版本控制工具

    若使用 git config 时用 --system 选项,读写的就是这个文件。 ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。...~]# git config --global user.email xxxxxxxx@qq.com 如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息...Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。...如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用--force选项。...git push --force origin  上面命令使用--force选项,结果导致远程主机上更新的版本被覆盖。除非你很确定要这样做,否则应该尽量避免使用--force选项。

    1.3K40

    NSIS 打包 Electron 项目的注意事项(拖拽、权限、兼容性等)

    我自己本人不做 Electron 的开发,但有一位合作伙伴在使用 NSIS 打包 Electron 应用的时候遇到了一些问题,主要问题有以下几个,先记录下来,然后追个击破。...打包后应用在 Windows 7 无法直接运行,需要修改兼容性为 Windows 7 才可以使用 打包后安装或者卸载时应用在运行会安装或者卸载失败,无法替换或删除应用(这个与 Electron 无关但也介绍一下...) 打包后应用第一次启动无法使用拖拽功能 脚本设置启动程序兼容性 设置程序兼容性有两种方式,一种是手动右键修改,但这种方式明显不可能让用户自己去操作,所以我们需要另外一种方式就是在安装程序后自动写入一个注册表...安装或卸载前结束应用 需要两个插件,一个是 KillProcDLL.dll,另一个是 FindProcDLL.dll,这两个插件均可以从 NSIS 官网下载。...经过排查发现,NSIS 打包后安装包程序默认是以管理员身份启动的,第一次安装完成后自动启动应用时会继承安装包的权限(管理员)导致拖拽功能无法使用了,而直接从桌面运行快捷方式是没问题的。

    1.6K20

    将独立的 Python 网络应用程序分发给非技术用户

    该应用程序将在托管的网站上运行,但我们也希望用户能够下载一个自包含的应用程序,以便他们可以在本地安装,以获得更好的性能或他们根本无法在教室中使用互联网连接。...我们已经查看了以前的问题,但似乎没有一个相关的问题。...我们不担心源代码的安全性(我们的应用程序将是开源的,我们将销售与之匹配的内容),我们只需要非技术 Windows 用户能够下载并使用我们的应用程序而不会出现任何问题。...解决方案方法一使用 NSIS 是一个好主意,但我们建议使用诸如 pyinstaller(我们个人最喜欢的,其他选择是 bb_freeze 和 py2exe)这样的“打包器”来在使用 NSIS 之前创建...pyinstaller 允许您指定要包含在 exe 中的依赖项,这样您就不必担心用户没有安装正确的 Python 版本或其他依赖项。

    9810

    NSIS

    NSIS (Nullsoft Scriptable Install System)是一个Open Source的Windows系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。...这如其名字所指出的那样,NSIS是通过它的脚 本语言来描述安装程序的行为和逻辑的。NSIS的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。...NSIS (Nullsoft Scriptable Install System)是一个Open Source的Windows系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。...这如其名字所指出的那样,NSIS是通过它的脚本语言来描述安装程序的行为和逻辑的。NSIS的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。...    支持网络安装、补丁    支持无人值守的安装模式    此外,NSIS的license允许任何用途免费使用。

    1.4K60

    NSIS 打包 Electron 生成exe安装包

    每次文章都从0开始 从搭建开始 使用的是electron-vue 毕竟方便一点 如果只想安装electron 请参见我的另一个文章https://segmentfault.com/a/11......如何访问外国网站请参加另一个文章(好像被和谐了 那就+我们的交流群 814270669 吧!)...编写一个页面 使用IDE打开随便编写一个页面 使用npm 构建安装包 npm run build 安装程序制作 下载NSIS软件,安装 下载地址:https://...安装程序检测360是否运行 如果在运行就禁止安装 其中使用到一个dll插件 (FindProcDLL.dll) 官方下载地址:http://nsis.sourceforge.net/F......: 一个是un.onInit ->卸载程序 一个是un.onUninstSuccess -> 卸载成功提示 .onInit 安装程序初始化 # 检测360杀毒软件是否在运行 Function .onInit

    2.1K31

    NSIS 脚本,安装时添加防火墙规则

    默认情况下,在首次运行程序时,可能会有如下弹窗,只有用户点击运行才能继续使用网络。部分情况,可能是直接被拦截,都没有这个提示。...这里介绍的是,如果在应用安装时(使用 NSIS 打包),自动添加防火墙规则,避免上述问题。...netsh advfirewall 基本思路是使用 netsh advfirewall 命令来进行防火墙规则的添加, 添加规则命令参考: Terminal window netsh advfirewall...看起来的效果就是会有黑框框一闪而过,如果是内部使用的工程板软件,勉强可以接受,如果是面向用户的软件,这个问题还需要进一步处理。...改进 CMD 命令行窗口的闪烁 这里使用的方式是,在 NSIS 中,调用 vbs 脚本,可以做到没有命令行窗口。

    7310

    12.9k star,这个 Windows 卸载工具你必须拥有!

    项目简介 BCU 是一款完全免费的开源软件,专注于快速、批量卸载应用程序,同时清理遗留文件和注册表垃圾。虽然它最初是为 IT 专业人员设计的,但它的界面直观易用,普通用户也能轻松上手。...多种卸载方式:兼容 NSIS、InnoSetup、Msiexec 等安装系统,提供灵活的卸载选项。 可定制:支持根据预设列表执行自动卸载任务。 直观的界面:简洁友好的操作界面,方便普通用户上手。...BCU 目前支持 Windows 7 及更新版本(Vista 或更旧的版本可以使用旧版 4.x)。你可以放心在个人电脑或商业环境中使用,无需支付任何费用。...项目安装与使用 BCU 的安装过程很简单,只需要在项目的 release 页面下载安装程序,按照正常的安装步骤操作即可。...因为它批量操作让卸载变得轻松高效;完全免费,且源码公开,放心使用;无论是普通用户清理电脑,还是 IT 专业人士进行大规模卸载,BCU 都是理想选择;严格清理残留文件,不破坏系统。

    9610

    程序员修炼The Pragmatic Starter Kit

    CruiseControl是用于持续构建过程的框架 包括EMail通知、Ant集成,以及各种源代码控制工具的插件 提供了一个查看当前和以前构建细节的Web界面 LuntBuild http://LuntBuild.sourceforge.net...是一套JUnit Test Decorator,用于帮助测量系统中有JUnit测试的部分的性能和伸缩性 MockObjects http://www.mockobjects.com 给Java程序员使用的核心的...CVS http://www.cvshome.org 一个使用广泛的开源版本控制系统 Subversion http://www.subversion.org 一个准备颠覆CVS的开源版本控制系统 Cygwin...Java日志记录框架 NSIS http://nsis.sourceforge.net Nullsoft公司出品的可脚本化安装系统(Nullsoft Scriptable Install System)...,Windows下的免费安装/卸载程序生成器 Mac OS X开发工具PackageMaker,可以生成安装包.pkg文件 ESP Package Manager http://www.easysw.com

    45420

    windows nsis安装包制作

    3.06.1/nsis-3.06.1-setup.exe 使用方式 NSIS EDIT:使用向导创建打包脚本 菜单栏: 文件 -> 新建脚本:向导 下一步 NSIS_1.png ------ 填写对应安装包信息...英语) NSIS_3.png ------ 选择对应的许可证文件 下一步 许可证文件: BOM-UTF-8格式的TXT NSIS_4.png ------ 选择安装包需要添加的文件、文件夹 下一步...文件:右侧第一个图标 文件夹:右侧第二个图标 NSIS_5.png ------ 选择需要生成的快捷方式(默认即可) 下一步 NSIS_6.png ----- 选择安装包启动参数(如果没有,...默认即可) NSIS_7.png ------ 卸载程序相关(如非特殊需要,默认即可) 下一步 NSIS_8.png ------ 保存脚本信息 完成 NSIS_9.png ------ 保存安装包脚本到磁盘...NSIS_10.png ------ 保存完成之后会自动打开刚刚创建的脚本 菜单栏: NSIS(N) -> 编译脚本 编译完成之后,底部输出框显示编译结果及保存位置 NSIS_11.png

    2.9K00

    linux下卸载软件命令行,如何使用Linux中的命令行卸载软件 | MOS86「建议收藏」

    但是,如果您使用命令行更加舒适,我们将向您显示一个简单的方法来查看系统上安装的内容并卸载程序。...相关文章图片1tupian如何在Ubuntu中轻松添加和删除程序14.04 如何在Linux 中找到应用程序的精确包名如果您有想要卸载的内容,但是您不知道确切的名称,请参阅我们的文章,了解在Linux中查找准确的包名称...通过“终端”窗口中的安装包列表查找要卸载的包。注意包的全名。 要卸载程序,请使用“apt-get”命令,这是安装程序和操作已安装程序的常规命令。...sudo apt-get删除gimp 在本文中讨论的 As中,Linux中安装的程序取决于其他软件包的功能。当您卸载程序时,可能存在卸载程序依赖的程序包不再使用的程序包。...有关使用“apt-get”命令的更多信息,请在提示符下键入“apt-get”,然后按“Enter”。 .” 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    4K20

    Electron桌面应用打包流程(记录一下)

    如果出现 node 和 npm 的版本号,则转下一步。否则转第一步。  c、在命令行,下载淘宝镜像命令工具 cnpm。...安装electron-prebuilt 首先,我们要安装electron-prebuilt,它是一个npm模块,因此我们可以使用Npm来进行安装,它是一个electron的预编译版本。...打包 现在整个过程进行到最后一步,我们需要打包我们自己的应用,那么如何打包,这就需要用到我们先前已经安装的electron-packager 打开命令行我们可以这样使用它: electron-packager...NSIS 打包 Electron 生成exe安装包 NSIS操作简单,而且打包出来的安装包,安装过程和卸载过程都更加正规。推荐使用 一...._20190826110619.png 三.打开NSIS 1)选择可视化脚本编辑器 企业微信截图_20190826110653.png 2)选择使用脚本向导创建新的脚本文件,确定 企业微信截图_20190826110718

    5.9K62
    领券