杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2201|回复: 0

微软官方主题

[复制链接]
发表于 2017-2-26 14:57:10 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. ; 该脚本使用 HM VNISEdit 脚本编辑器向导产生
  2. ; 脚本编译:非正常注册
  3. !include "LogicLib.nsh"
  4. ; 安装程序初始定义常量
  5. !define PRODUCT_NAME "微软官方主题"
  6. !define PRODUCT_VERSION "年韵2006"
  7. !define PRODUCT_PUBLISHER "Microsoft"
  8. !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
  9. !define PRODUCT_UNINST_ROOT_KEY "HKLM"
  10. !define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir"
  11. SetCompressor lzma
  12. InstType "完全安装"
  13. ; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------
  14. !include "MUI.nsh"
  15. ; MUI 预定义常量
  16. !define MUI_ABORTWARNING
  17. !define MUI_ICON "0.ico"
  18. !define MUI_UNICON "3.ico"
  19. !define MUI_WELCOMEFINISHPAGE_BITMAP "1.bmp"
  20. ; 语言选择窗口常量设置
  21. !define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
  22. !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
  23. !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
  24. ; 欢迎页面
  25. !insertmacro MUI_PAGE_WELCOME
  26. ; 组件选择页面
  27. !insertmacro MUI_PAGE_COMPONENTS
  28. ; 安装目录选择页面
  29. !insertmacro MUI_PAGE_DIRECTORY
  30. ; 开始菜单设置页面
  31. var ICONS_GROUP
  32. !define MUI_STARTMENUPAGE_NODISABLE
  33. !define MUI_STARTMENUPAGE_DEFAULTFOLDER "微软增值软件"
  34. !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
  35. !define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
  36. !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}"
  37. !insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP
  38. ; 安装过程页面
  39. !insertmacro MUI_PAGE_INSTFILES
  40. ; 安装完成页面
  41. !define MUI_FINISHPAGE_SHOWREADME "readme.txt"
  42. !insertmacro MUI_PAGE_FINISH
  43. ; 安装卸载过程页面
  44. !insertmacro MUI_UNPAGE_INSTFILES
  45. ; 安装界面包含的语言设置
  46. !insertmacro MUI_LANGUAGE "SimpChinese"
  47. !insertmacro MUI_LANGUAGE "TradChinese"
  48. ; 安装预释放文件
  49. !insertmacro MUI_RESERVEFILE_LANGDLL
  50. !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
  51. ; ------ MUI 现代界面定义结束 ------
  52. ReserveFile "${NSISDIR}\Plugins\advsplash.dll"
  53. ReserveFile "OEMLOGO.bmp"
  54. ReserveFile "Open.wav"
  55. Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
  56. OutFile "主题包.EXE"
  57. InstallDir "$PROGRAMFILES\CNP2006"
  58. ShowInstDetails show
  59. ShowUnInstDetails show
  60. BrandingText "失去记忆的风 QQ:82695161 特别制作,谢谢您的支持!"
  61. ; 激活安装日志记录,该日志文件将会作为卸载文件的依据(注意,本区段必须放置在所有区段之前)

  62. SectionGroup "微软正版增值软件" SecInterfaces
  63. Section "年韵 2006" SEC01
  64.   SectionIn 1
  65.   SetOutPath "$RESOURCES\Themes"
  66.   SetOverwrite on
  67.   File /r "Themes\*.*"
  68.   SetOutPath "$RESOURCES\Themes\Resources"
  69.   File /r "Themes\Resources\*.*"
  70.   SetOutPath "$RESOURCES\Themes\Luna\Shell\NormalColor"
  71.   File /r "Themes\Shell\NormalColor\*.*"
  72.   SetOutPath "$WINDIR\Web\Wallpaper"
  73.   File "Themes\Shell\Wallpaper\*.*"
  74.   SetOutPath "$WINDIR\Cursors"
  75.   File /r "Themes\Cursors\*.*"
  76.   SetOutPath "$WINDIR\Media"
  77.   File /r "Themes\Media\*.*"
  78.   SetOutPath "$PROGRAMFILES\CNP2006"
  79.   File /r "Themes\1\*.*"
  80.   
  81. SectionEnd
  82. Section " Date_Time" SEC02
  83.   SectionIn 1
  84.   SetOutPath "$PROGRAMFILES\Chinese Date_Time"
  85.   SetOverwrite ifnewer
  86.   File /r "Chinese Date_Time\*.*"
  87. ; 创建开始菜单快捷方式
  88.   !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
  89.   CreateDirectory "$SMPROGRAMS\微软增值软件\日历时钟"
  90.   CreateShortCut "$SMPROGRAMS\微软增值软件\日历时钟\ICalClk.lnk" "$PROGRAMFILES\Chinese Date_Time\ICalClk.exe"
  91.   !insertmacro MUI_STARTMENU_WRITE_END
  92. SectionEnd
  93. Section -AdditionalIcons
  94.   SetOutPath $INSTDIR
  95.   !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
  96.   CreateDirectory "$SMPROGRAMS\微软增值软件"
  97.   CreateShortCut "$SMPROGRAMS\微软增值软件\卸载日历时钟.lnk" "$INSTDIR\uninst.exe"
  98.   !insertmacro MUI_STARTMENU_WRITE_END
  99. SectionEnd
  100. Section -Post
  101.   WriteUninstaller "$INSTDIR\uninst.exe"
  102.   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
  103.   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
  104.   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
  105.   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
  106. SectionEnd
  107. #-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#
  108. ; 区段组件描述
  109. !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  110.   !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "微软官方2006主题."
  111.   !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "日历(包括农历和公历)与世界时钟,绿色,可直接删除。"
  112. !insertmacro MUI_FUNCTION_DESCRIPTION_END
  113. Function .onInit
  114.   InitPluginsDir
  115.   File "/oname=$PLUGINSDIR\Splash_OEMLOGO.bmp" "OEMLOGO.bmp"
  116.   File "/oname=$PLUGINSDIR\Splash_Open.wav" "Open.wav"
  117.   ; 使用闪屏插件显示闪屏
  118.   advsplash::show 1000 500 500 -1 "$PLUGINSDIR\Splash_OEMLOGO"
  119.   Pop $0 ; $0 返回 '1' 表示用户提前关闭闪屏, 返回 '0' 表示闪屏正常结束, 返回 '-1' 表示闪屏显示出错
  120.   !insertmacro MUI_LANGDLL_DISPLAY
  121. FunctionEnd
  122. SectionGroupEnd
  123. /******************************
  124. *  以下是安装程序的卸载部分  *
  125. ******************************/
  126. ; 根据安装日志卸载文件的调用宏
  127. !macro DelFileByLog LogFile
  128.   ifFileExists `${LogFile}` 0 +4
  129.     Push `${LogFile}`
  130.     Call un.DelFileByLog
  131.     Delete `${LogFile}`
  132. !macroend
  133. Section Uninstall
  134.   !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP
  135.   ; 调用宏只根据安装日志卸载安装程序自己安装过的文件
  136.   !insertmacro DelFileByLog "$INSTDIR\install.log"
  137.   ; 清除安装程序创建的且在卸载时可能为空的子目录,对于递归添加的文件目录,请由最内层的子目录开始清除(注意,不要带 /r 参数,否则会失去 DelFileByLog 的意义)
  138.   RMDir /r "$PROGRAMFILES\CNP2006"
  139.   RMDir /r "$PROGRAMFILES\Chinese Date_Time"
  140.   RMDir "$WINDIR\Web\Wallpaper"
  141.   RMDir "$WINDIR\Media"
  142.   RMDir "$WINDIR\Cursors"
  143.   RMDir "$SMPROGRAMS\$ICONS_GROUP"
  144.   RMDir "$RESOURCES\Themes"
  145.   RMDir ""
  146.   RMDir "$INSTDIR"
  147.   DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  148.   SetAutoClose true
  149. SectionEnd
  150. #-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#
  151. Function un.onInit
  152. !insertmacro MUI_UNGETLANGUAGE
  153.   MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 微软日历时钟,及其所有的组件?" IDYES +2
  154.   Abort
  155. FunctionEnd
  156. Function un.onUninstSuccess
  157.   HideWindow
  158.   MessageBox MB_ICONINFORMATION|MB_OK "微软日历时钟 已成功地从你的计算机移除。"
  159. FunctionEnd
  160. ; 以下是卸载程序通过安装日志卸载文件的专用函数,请不要随意修改
  161. Function un.DelFileByLog
  162.   Exch $R0
  163.   Push $R1
  164.   Push $R2
  165.   Push $R3
  166.   FileOpen $R0 $R0 r
  167.   ${Do}
  168.     FileRead $R0 $R1
  169.     ${IfThen} $R1 == `` ${|} ${ExitDo} ${|}
  170.     StrCpy $R1 $R1 -2
  171.     StrCpy $R2 $R1 11
  172.     StrCpy $R3 $R1 20
  173.     ${If} $R2 == "File: wrote"
  174.     ${OrIf} $R2 == "File: skipp"
  175.     ${OrIf} $R3 == "CreateShortCut: out:"
  176.     ${OrIf} $R3 == "created uninstaller:"
  177.       Push $R1
  178.       Push `"`
  179.       Call un.DelFileByLog.StrLoc
  180.       Pop $R2
  181.       ${If} $R2 != ""
  182.         IntOp $R2 $R2 + 1
  183.         StrCpy $R3 $R1 "" $R2
  184.         Push $R3
  185.         Push `"`
  186.         Call un.DelFileByLog.StrLoc
  187.         Pop $R2
  188.         ${If} $R2 != ""
  189.           StrCpy $R3 $R3 $R2
  190.           Delete /REBOOTOK $R3
  191.         ${EndIf}
  192.       ${EndIf}
  193.     ${EndIf}
  194.     StrCpy $R2 $R1 7
  195.     ${If} $R2 == "Rename:"
  196.       Push $R1
  197.       Push "->"
  198.       Call un.DelFileByLog.StrLoc
  199.       Pop $R2
  200.       ${If} $R2 != ""
  201.         IntOp $R2 $R2 + 2
  202.         StrCpy $R3 $R1 "" $R2
  203.         Delete /REBOOTOK $R3
  204.       ${EndIf}
  205.     ${EndIf}
  206.   ${Loop}
  207.   FileClose $R0
  208.   Pop $R3
  209.   Pop $R2
  210.   Pop $R1
  211.   Pop $R0
  212. FunctionEnd
  213. Function un.DelFileByLog.StrLoc
  214.   Exch $R0
  215.   Exch
  216.   Exch $R1
  217.   Push $R2
  218.   Push $R3
  219.   Push $R4
  220.   Push $R5
  221.   StrLen $R2 $R0
  222.   StrLen $R3 $R1
  223.   StrCpy $R4 0
  224.   ${Do}
  225.     StrCpy $R5 $R1 $R2 $R4
  226.     ${If} $R5 == $R0
  227.     ${OrIf} $R4 = $R3
  228.       ${ExitDo}
  229.     ${EndIf}
  230.     IntOp $R4 $R4 + 1
  231.   ${Loop}
  232.   ${If} $R4 = $R3
  233.     StrCpy $R0 ""
  234.   ${Else}
  235.     StrCpy $R0 $R4
  236.   ${EndIf}
  237.   Pop $R5
  238.   Pop $R4
  239.   Pop $R3
  240.   Pop $R2
  241.   Pop $R1
  242.   Exch $R0
  243. FunctionEnd
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-19 05:23 , Processed in 0.115367 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表