原文 轻狂写的桌面日历秀NSIS脚本供大家参考学习
现在共享桌面日历秀的NSIS脚本,以便交流学习。此脚本实现的功能如下:
7-Zip打开看不到内容。
自动读取原安装路径,如果有则不允许更改。
取得编译日期。
自定义欢迎页面文字。
自定义图标。
文件版本声明。
多区段可选安装。
……
安装效果参考http://www.flighty.cn/html/soft/20101001_101.html
代码如下:
001 |
;增加一个包含链接内容的7z压缩包到可执行文件头部,使7-Zip打开看不到其他内容。 |
002 |
!packhdr temp.dat 'cmd /c Copy /B temp.dat /B +轻狂志.7z temp.dat' |
005 |
!define PRODUCT_NAME "桌面日历秀" |
006 |
!define PRODUCT_VERSION "3.1.0 免费版" |
007 |
!define PRODUCT_UNINST_KEY"Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" |
008 |
!define PRODUCT_UNINST_ROOT_KEY "HKLM" |
009 |
!define /date VER_BUILD "%Y.%m.%d" |
012 |
RequestExecutionLevel admin |
014 |
; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------ |
018 |
!define MUI_ABORTWARNING |
019 |
!define MUI_HEADERIMAGE |
020 |
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" |
021 |
!define MUI_ICON "ico.ico" |
022 |
!define MUI_UNICON "unico.ico" |
023 |
!define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp" |
024 |
!define MUI_WELCOMEPAGE_TITLE "\r\n 桌面日历秀 3.1.0 免费版" |
025 |
!define MUI_WELCOMEPAGE_TEXT "\r\n 桌面日历秀是一款优秀的桌面日历和个人信息管理软件。\r\n\r\n 此版本已经剔除了原安装包中的haozip和百度搜霸,安装过程中可以自动进行软件注册而无任何功能或时间限制,所以命名为“免费版”。\r\n\r\n 桌面日历秀原始文件收集于网络,您使用该软件时所享受到的主要功能,皆为原始作者的开发成果。使用此软件是您的自由选择,轻狂志(www.flighty.cn)并不对可能由此给您带来的任何损失负责。如果您认为该软件具有实用价值,请从正式渠道获得授权许可。\r\n\r\n $_CLICK" |
027 |
!define MUI_FINISHPAGE_RUN_TEXT "运行桌面日历秀" |
030 |
!insertmacro MUI_PAGE_WELCOME |
032 |
!define MUI_LICENSEPAGE_CHECKBOX |
033 |
!insertmacro MUI_PAGE_LICENSE "license.rtf" |
035 |
!insertmacro MUI_PAGE_COMPONENTS |
037 |
!define MUI_PAGE_CUSTOMFUNCTION_show Pageshow |
038 |
!insertmacro MUI_PAGE_DIRECTORY |
040 |
!insertmacro MUI_PAGE_INSTFILES |
042 |
!define MUI_FINISHPAGE_RUN "$INSTDIR\XDeskCal.exe" |
043 |
!insertmacro MUI_PAGE_FINISH |
046 |
!insertmacro MUI_UNPAGE_INSTFILES |
049 |
!insertmacro MUI_LANGUAGE "SimpChinese" |
052 |
VIProductVersion "3.1.0.1225" |
053 |
VIAddVersionKey /LANG=2052 "ProductName" "桌面日历秀免费版" |
054 |
VIAddVersionKey /LANG=2052 "Comments" "免费使用,不限分发。" |
055 |
VIAddVersionKey /LANG=2052 "CompanyName" "www.flighty.cn" |
056 |
VIAddVersionKey /LANG=2052 "LegalTrademarks" "flighty" |
057 |
VIAddVersionKey /LANG=2052 "LegalCopyright" "轻狂志" |
058 |
VIAddVersionKey /LANG=2052 "FileDescription" "桌面日历秀免费版" |
059 |
VIAddVersionKey /LANG=2052 "FileVersion" "3.1.0.1225" |
062 |
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS |
063 |
; ------ MUI 现代界面定义结束 ------ |
065 |
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" |
066 |
OutFile "XDeskCal_Free.exe" |
067 |
InstallDir "D:\Program Files\XDeskCal\" |
068 |
;读取注册中的键值,如果没有,就按默认路径。 |
069 |
InstallDirRegKey HKCU "Software\XDeskCal" "" |
071 |
ShowUnInstDetails show |
072 |
ShowInstDetails hide ;该项默认为show,hide表示不显示安装信息,点击显示按钮后显示。 |
073 |
ShowUnInstDetails hide ;该项同上,卸载过程 |
074 |
BrandingText "轻狂志www.flighty.cn - 编译日期${VER_BUILD}" |
078 |
SetOutPath "$INSTDIR" |
083 |
SectionGroup "快捷方式" SEC02 |
085 |
Section "开始菜单" SEC0201 |
087 |
CreateDirectory "$SMPROGRAMS\桌面日历秀" |
088 |
CreateShortCut "$SMPROGRAMS\桌面日历秀\桌面日历秀.lnk""$INSTDIR\XDeskCal.exe" |
089 |
CreateShortCut "$SMPROGRAMS\桌面日历秀\卸载日历秀.lnk" "$INSTDIR\卸载程序.exe" |
094 |
CreateShortCut "$DESKTOP\桌面日历秀.lnk" "$INSTDIR\XDeskCal.exe" |
100 |
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Run""XDeskCal" "$INSTDIR\XDeskCal.exe" |
104 |
WriteUninstaller "$INSTDIR\卸载程序.exe" |
106 |
WriteRegStr HKCU "Software\XDeskCal" "" $INSTDIR |
107 |
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""DisplayName" "$(^Name)" |
108 |
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""UninstallString" "$INSTDIR\uninst.exe" |
109 |
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}""DisplayVersion" "${PRODUCT_VERSION}" |
113 |
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN |
114 |
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "桌面日历秀的主程序,必选!" |
115 |
!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "快捷方式可选安装。" |
116 |
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0201} "开始菜单快捷方式。" |
117 |
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0202} "桌面快捷方式。" |
118 |
!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "选择操作系统启动时是否自动运行桌面日历秀。" |
119 |
!insertmacro MUI_FUNCTION_DESCRIPTION_END |
121 |
/****************************** |
123 |
******************************/ |
126 |
Delete "$INSTDIR\config.ini" |
127 |
Delete "$INSTDIR\GdiPlus.dll" |
128 |
Delete "$INSTDIR\Update.exe" |
129 |
Delete "$INSTDIR\update.URS" |
130 |
Delete "$INSTDIR\UpdateLang.ini" |
131 |
Delete "$INSTDIR\XDeskCal.exe" |
132 |
Delete "$INSTDIR\卸载程序.exe" |
134 |
Delete "$SMPROGRAMS\桌面日历秀\卸载日历秀.lnk" |
135 |
Delete "$SMPROGRAMS\桌面日历秀\桌面日历秀.lnk" |
136 |
Delete "$SMSTARTUP\桌面日历秀.lnk" |
137 |
Delete "$DESKTOP\桌面日历秀.lnk" |
139 |
RMDir "$SMPROGRAMS\桌面日历秀" |
141 |
RMDir /r "$INSTDIR\Res" |
142 |
RMDir /r "$INSTDIR\PluginSkins" |
143 |
RMDir /r "$INSTDIR\mainskins" |
144 |
RMDir /r "$INSTDIR\icon" |
145 |
RMDir "$INSTDIR\DataBackup" |
146 |
RMDir "$INSTDIR\Data" |
150 |
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" |
152 |
DeleteRegKey /ifempty HKCU "Software\XDeskCal" |
154 |
DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Run""XDeskCal" |
159 |
ReadRegStr $0 HKCU "Software\XDeskCal" "" |
163 |
FindWindow $0 "#32770" "" $HWNDPARENT |
164 |
GetDlgItem $0 $0 1001 |
167 |
FindWindow $0 "#32770" "" $HWNDPARENT |
168 |
GetDlgItem $0 $0 1019 |
170 |
FindWindow $0 "#32770" "" $HWNDPARENT |
171 |
GetDlgItem $0 $0 1006 |
172 |
SendMessage $0 ${WM_SETTEXT} 0 "STR:您已经安装过 ${PRODUCT_NAME} ,现在进行的覆盖安装不能更改安装目录,如果您需要更改安装目录,请先卸载已经安装的版本之后再运行此安装程序!" |
177 |
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "您确实要完全移除 $(^Name) ,及其所有的组件?" IDYES +2 |
181 |
Function un.onUninstSuccess |
183 |
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功卸载,您的用户配置和数据文件需要手工删除!" |
|
- 关于NSIS脚本的Demo
这个NSIS脚本是打包公司的整个Release项目工程. 用NSIS编译器编译下就可以了. ; Script generated by the HM NIS Edit Script Wizard. ! ...
- 全方位掌握nsis脚本
NSIS 确实是一个不错的安装程序制作软件.新版本 2.0a7 真正实现了中文支持和支持 WinXP 的安装对话框. 不过要用它实现漂亮的安装界面和完美的安装功能就必须好好的写脚本. 而 NSIS 的 ...
- NSIS脚本入门和进阶方法
NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序.它提供了安装.卸载.系统设置.文件解压缩等功能.对于新手来说,它有 ...
- NSIS脚本:在卸载页面收集信息
原文 NSIS脚本:在卸载页面收集信息 此功能用于在软件卸载时收集相关信息,以便进行后续改进.实现功能如图: 以下为实现代码: 01 !include nsDialogs.nsh 02 !includ ...
- 基于NSIS脚本开发的安装程序制作软件:易量安装
原文 基于NSIS脚本开发的安装程序制作软件:易量安装 前几天“萝卜”给我推荐了一款安装程序制作工具——易量安装. 易量安装是一款安装程序制作软件,基于著名的NSIS(Nullsoft Scripta ...
- 使用NSIS脚本制作一个安装包
大部分人第一次看到NSIS脚本都是一脸懵逼的.因为它这个脚本的结构乍一看上去就非常奇怪,不作说明的话是看不懂的. 编写脚本命令的时候要非常注意,命令要按照规定写在脚本中不同的段落里,也就是说,命令的先 ...
- 桌面上嵌入窗口(桌面日历)原理探索(将该窗口的Owner设置成桌面的Shell 窗口,可使用SetWindowLong更改窗口的GWL_HWNDPARENT,还要使用SetWindowPos设置Z-Order)
今天在QQ群里有人问怎样实现将自己的窗口嵌入桌面,让它和桌面融为一体,就像很多桌面日历软件那样. 我当时想到的就是建立一个Child Window,将他的父窗口设置成桌面Shell窗口就可以了.但是 ...
- Cmake调用NSIS(一个可执行文件,其实就是一个编译器)编译NSIS脚本问题研究
技术经理说,可以用Cmake当中的add_custom_command,add_custom_target命令来使用. 我初次研究了下,add_custom_command应该用官方文档中说明的第二种 ...
- NSIS脚本:更改壁纸
原文 NSIS脚本:更改壁纸 我们在制作主题安装包的时候,经常要进行自动更改壁纸的操作,其实用NSIS实现这一点非常简单.示例代码如下: 01 Name "更改壁纸" 02 Out ...
随机推荐
- POJ 1287 Networking(最小生成树)
题意 给你n个点 m条边 求最小生成树的权 这是最裸的最小生成树了 #include<cstdio> #include<cstring> #include<algor ...
- 怎么样excel其产生的条形码(10分钟的时间excel)从而出现了条形码
现在快递行业.京东购物,这样一来,使用条码管理,因此,如何在你的excel其中还生产商品条码管理它?其实很easy,4步骤学会!10分钟搞定. 1.从网址如下.下载字体, 2.双击安装字体. 3,在e ...
- mysql安装前的系统准备工作(转)
一.系统环境总结:
- GRUB2配置详解:默认启动项,超时时间,隐藏引导菜单,配置文件详解,图形化配置
配置文件详解: /etc/default/grub # 设定默认启动项,推荐使用数字 GRUB_DEFAULT=0 # 注释掉下面这行将会显示引导菜单 #GRUB_HIDDEN_TIMEOUT=0 # ...
- Android适应方案汇总(三)
在Android适应方案汇总(一个).(两)在.我们理解一些基本概念. 那么详细的开发,我们应该重视起来. 首先,我们需要知道.关键的事实是,这两个适配器: (1).这点在单位的使用上用dp.sp以及 ...
- mysql table is marked as crashed and last (automatic?) repair failed
1.同事的服务器在mysqldump备份的时候报错了 这个原因是myisam的表数据太多,在某个时刻, 存放数据的这个MyISAM表数据急速长大. 比如一些log表, 当硬盘写满了.这个时候还在继续写 ...
- Sql Server远程查询db 表中的数据,以本地
step 1: sp_configure 'show advanced options', 1; RECONFIGURE; sp_configure 'Ad Hoc Distributed Queri ...
- Xamarin.Android 在VS下调试时提示 In mgmain JNI_OnLoad 程序“Mono”已退出 解决办法
原因是使用了破解版的 Xamarin,调试时不能使用共享库
- 网页信息抓取进阶 支持Js生成数据 Jsoup的不足之处
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23866427 今天又遇到一个网页数据抓取的任务,给大家分享下. 说道网页信息抓取 ...
- Android 浏览器开发WebView setBlockNetworkImage本末
含义本身防止网络数据图片 webSettings.setBlockNetworkImage(true); 停止发布数据 webSettings.setBlockNetworkImage(false); ...