nsis源码 nsisdialogdesigner
; 安装程序初始定义常量
!define PRODUCT_NAME "nsisdialogdesigner"
!define PRODUCT_VERSION "1.1.3"
!define PRODUCT_WEB_SITE "http://www.pythonschool.com"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
SetCompressor /SOLID lzma
SetCompressorDictSize 32
; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------
!include "MUI2.nsh"
; MUI 预定义常量
!define MUI_ABORTWARNING
!define MUI_ICON "inst.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
; 欢迎页面
!insertmacro MUI_PAGE_WELCOME
; 安装目录选择页面
!insertmacro MUI_PAGE_DIRECTORY
; 安装过程页面
!insertmacro MUI_PAGE_INSTFILES
; 安装完成页面
!define MUI_FINISHPAGE_RUN "$INSTDIR\NSISDialogDesigner.exe"
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\HISTORY.txt"
!insertmacro MUI_PAGE_FINISH
; 安装卸载过程页面
!insertmacro MUI_UNPAGE_INSTFILES
; 安装界面包含的语言设置
!insertmacro MUI_LANGUAGE "SimpChinese"
; 安装预释放文件
#!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
; ------ MUI 现代界面定义结束 ------
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "nsisdialogdesigner.exe"
InstallDir "$PROGRAMFILES\nsisdialogdesigner"
ShowInstDetails show
ShowUnInstDetails show
BrandingText "python丝酷网"
Section "MainSection" SEC01
  SetOutPath "$INSTDIR"
  SetOverwrite ifnewer
  File /r "nsisdialogdesigner\*.*"
SectionEnd
Section -AdditionalIcons
  WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
  CreateDirectory "$SMPROGRAMS\nsisdialogdesigner"
  CreateShortCut "$SMPROGRAMS\nsisdialogdesigner\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
  CreateShortCut "$SMPROGRAMS\nsisdialogdesigner\Uninstall.lnk" "$INSTDIR\uninst.exe"
SectionEnd
Section -Post
  WriteUninstaller "$INSTDIR\uninst.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
SectionEnd
/******************************
 *  以下是安装程序的卸载部分  *
 ******************************/
Section Uninstall
  Delete "$INSTDIR\${PRODUCT_NAME}.url"
  Delete "$INSTDIR\uninst.exe"
Delete "$SMPROGRAMS\nsisdialogdesigner\Uninstall.lnk"
  Delete "$SMPROGRAMS\nsisdialogdesigner\Website.lnk"
RMDir "$SMPROGRAMS\nsisdialogdesigner"
RMDir "$INSTDIR"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  SetAutoClose true
SectionEnd
#-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#
Function un.onInit
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,及其所有的组件?" IDYES +2
  Abort
FunctionEnd
Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。"
FunctionEnd
nsis源码 nsisdialogdesigner的更多相关文章
- 分享Syslinux4USB 0.3源码——改自神雕大侠作品
		神雕大侠写的Syslinux4USB是我在无忧论坛里找到的工具,他是2011年写出的,他在帖子里也发布了源码,可惜那个帖子里的链接失效了,我为了这个工具的源码找了2年,终于在Google上搜到了,并且 ... 
- CMake安装(源码方式)
		CMake主页是 https://cmake.org/download/ 一.不指定安装目录方式(不需要配置环境变量) 1.安装必备包(存在的包不用卸载,yum会自动更新) yum install - ... 
- Go-ethereum源码解析-Part I
		1. 整体概览 makefile CANDY: .PHONY: geth android ios geth-cross swarm evm all test clean 已知phony 目标并非是由其 ... 
- vim7.4官方源码在vs2013的编译方法及问题总结
		vim7.4发布也有一段时候了,也该是把之前编译的7.3重新编译一下了,于是考虑着到最新的visual studio 2013编译一下,也顺便看看有没有其它问题. 1.安装vs2013,这个应该不用说 ... 
- 源码编译Redis Desktop Manager ---(转载)
		精美文章转载: 版权声明:本文作者为「Kany.Wang」,本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议.转载请注明出处!原文链接:https://kany.me/20 ... 
- 源码编译Redis Desktop Manager | 懒人屋
		原文:源码编译Redis Desktop Manager | 懒人屋 源码编译Redis Desktop Manager 2.3k 字 10 分钟 2019-10-10 文章背景 本 ... 
- 制作python程序windows安装包(飞机大战源码)
		本文以飞机大战源码为例: 1.首先使用pyinstaller -w xxx.py打包 -w的意思是不显示命令行:飞机大战源码由多个.py文件以及一些图片,音乐文件组成,我们将main.py打包, ... 
- 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新
		本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ... 
- C# ini文件操作【源码下载】
		介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ... 
随机推荐
- 170329、用 Maven 部署 war 包到远程 Tomcat 服务器
			过去我们发布一个Java Web程序通常的做法就是把它打成一个war包,然后用SSH这样的工具把它上传到服务器,并放到相应的目录里,让Tomcat自动去解包,完成部署. 很显然,这样做不够方便,且我们 ... 
- 170321、Spring+Quartz实现定时任务的配置方法
			Quartz是Java版开源定时调度器. 核心概念: Job 表示一个工作,要执行的具体内容.此接口中只有一个方法 void execute(JobExecutionContext context): ... 
- 项目中整合第三方插件与SpringMVC数据格式化关于ip地址
			一.Bootstrap 响应式按钮 <div calss="col-sm-2"> <button class="btn btn-default btn- ... 
- python--base64
			import base64import os # base64,参数为文件路径名def file_base64(filepath): if os.path.isfile(filepath): with ... 
- 解决存储过程中拼接的SQL字符串超长导致sql语句被截取的问题
			今天遇到了一个奇葩的问题:存储过程中的sql字符串拼接的太长,超出了分页存储过程执行sql参数的nvarchar(4000)的长度. 没办法,只能修改自己的存储过程,因为分页存储过程是不能动的. 开始 ... 
- Storm-源码分析-Topology Submit-Nimbus
			Nimbus Server Nimbus server, 首先从启动命令开始, 同样是使用storm命令"storm nimbus"来启动 看下源码, 此处和上面client不同, ... 
- python的@classmethod和@staticmethod
			本文是对StackOverflow上的一篇高赞回答的不完全翻译,原文链接:meaning-of-classmethod-and-staticmethod-for-beginner Python面向对象 ... 
- 提交任务到spark master -- 分布式计算系统spark学习(四)
			部署暂时先用默认配置,我们来看看如何提交计算程序到spark上面. 拿官方的Python的测试程序搞一下. qpzhang@qpzhangdeMac-mini:~/project/spark-1.3. ... 
- python-gitlab 模块
			安装:pip install python-gitlab import gitlab # 登录 gl = gitlab.Gitlab('http://127.0.0.1', private_token ... 
- SCADA必备函数  实际测试。
			一:GetTickCount() 综述: 这是一个Window的平台的API函数, 所以啊 在 MFC中 他的前面有两个冒号,像个和尚一样. 所以它不会受限于类,可以在MFC中任意位置使用. 这个函数 ... 
