杉宫竹苑工作室

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

NSIS 按键皮肤

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

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

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

x
  1. ;==============================================
  2. ;
  3. ;       需要skinnedbutton.dll实现
  4. ;
  5. ;==============================================
  6. ; example_MUI.nsi

  7. ;--------------------------------

  8. !define VERSION 1.1
  9. !define NAME "Skinned Button plugin for NSIS"

  10. ; The name of the installer
  11. Name "${NAME} ${VERSION}"

  12. ; The file to write
  13. OutFile "SkinnedButton${VERSION}.exe"

  14. ; The default installation directory
  15. InstallDir $PROGRAMFILES\NSIS

  16. ; Registry key to check for directory (so if you install again, it will
  17. ; overwrite the old one automatically)
  18. InstallDirRegKey HKLM Software\NSIS ""

  19. ;--------------------------------
  20. ;Include Modern UI

  21.   !include "MUI.nsh"

  22. ;--------------------------------
  23. ;Interface Settings

  24.   !define MUI_ABORTWARNING
  25.   !define MUI_UNABORTWARNING
  26.   !define MUI_COMPONENTSPAGE_NODESC
  27.   !define MUI_CUSTOMFUNCTION_GUIINIT myGUIInit
  28.   !define MUI_CUSTOMFUNCTION_UNGUIINIT un.myGUIInit
  29.   !define MUI_LICENSEPAGE_RADIOBUTTONS
  30.   !define MUI_HEADERIMAGE
  31.   
  32. ;--------------------------------
  33. ;Pages

  34.   !insertmacro MUI_PAGE_WELCOME
  35.   !insertmacro MUI_PAGE_LICENSE "..\..\Docs\skinnedbutton\license.txt"
  36.   !insertmacro MUI_PAGE_COMPONENTS
  37.   !insertmacro MUI_PAGE_DIRECTORY
  38.   !insertmacro MUI_PAGE_INSTFILES
  39.   !insertmacro MUI_PAGE_FINISH

  40.   !insertmacro MUI_UNPAGE_WELCOME
  41.   !insertmacro MUI_UNPAGE_CONFIRM
  42.   !insertmacro MUI_UNPAGE_INSTFILES
  43.   !insertmacro MUI_UNPAGE_FINISH
  44.   
  45.   
  46. ;--------------------------------
  47. ;very important!!!

  48.   XPStyle off

  49. ;--------------------------------
  50. ;Languages

  51.   !insertmacro MUI_LANGUAGE "English"

  52. ;--------------------------------
  53. ; The stuff to install

  54. Section "${NAME}"
  55.   SectionIn RO
  56.   
  57.   SetOutPath $INSTDIR\Plugins
  58.   File "..\..\Plugins\skinnedbutton.dll"
  59.    
  60.   SetOutPath $INSTDIR\Examples\skinnedbutton
  61.   File "Example.nsi"
  62.   File "Example_MUI.nsi"

  63.   SetOutPath $INSTDIR\Contrib\skinnedbutton\skins
  64.   File "..\..\Contrib\skinnedbutton\skins\*.bmp"
  65.   
  66.   SetOutPath $INSTDIR\Docs\skinnedbutton
  67.   File "..\..\Docs\skinnedbutton\*.txt"
  68.   
  69.   ; Write the uninstall keys for Windows
  70.   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayName" "${NAME}"
  71.   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "UninstallString" '"$INSTDIR\uninstall_skinnedbutton.exe"'
  72.   WriteUninstaller "uninstall_skinnedbutton.exe"
  73.   
  74.   SetOutPath "$SMPROGRAMS\NSIS\Contrib"
  75.   CreateShortCut "$SMPROGRAMS\NSIS\Contrib\Skinned Button Readme.lnk" "$INSTDIR\Docs\skinnedbutton\Readme.txt"
  76.   CreateShortCut "$SMPROGRAMS\NSIS\Contrib\Uninstall Skinned Button.lnk" "$INSTDIR\uninstall_skinnedbutton.exe"

  77. SectionEnd

  78. Section "Source Code"
  79.    
  80.   SetOutPath $INSTDIR\Contrib\skinnedbutton
  81.   File "..\..\Contrib\skinnedbutton\exdll.h"
  82.   File "..\..\Contrib\skinnedbutton\wa_dlg.h"
  83.   File "..\..\Contrib\skinnedbutton\skinnedbutton.c"
  84.   File "..\..\Contrib\skinnedbutton\skinnedbutton.dev"
  85.    
  86. SectionEnd

  87. ;--------------------------------

  88. ; Uninstaller

  89. Section "Uninstall"
  90.   
  91.   ; Remove registry keys
  92.   DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}"
  93.   DeleteRegKey HKLM "SOFTWARE\NSIS\${NAME}"

  94.   Delete "$INSTDIR\Plugins\skinnedbutton.dll"
  95.   RMDir /r "$INSTDIR\Contrib\skinnedbutton"
  96.   Delete "$INSTDIR\Docs\skinnedbutton\*.txt"
  97.   RMDir "$INSTDIR\Docs\skinnedbutton"
  98.   Delete "$INSTDIR\Examples\skinnedbutton\*.nsi"
  99.   RMDir "$INSTDIR\Examples\skinnedbutton"
  100.   
  101.   Delete "$SMPROGRAMS\NSIS\Contrib\Skinned Button Readme.lnk"
  102.   Delete "$SMPROGRAMS\NSIS\Contrib\Uninstall Skinned Button.lnk"
  103.   RMDir "$SMPROGRAMS\NSIS\Contrib"
  104.   RMDir "$SMPROGRAMS\NSIS"
  105.   Delete "$INSTDIR\uninstall_skinnedbutton.exe"
  106.   
  107. SectionEnd



  108. ;-------------------------

  109. ; Skin the button

  110. Function .onInit
  111.   InitPluginsDir
  112.   File "/oname=$PLUGINSDIR\button.bmp" "${NSISDIR}\Contrib\skinnedbutton\skins\ishield.bmp"
  113. FunctionEnd

  114. Function myGUIInit
  115. skinnedbutton::skinit /NOUNLOAD "$PLUGINSDIR\button.bmp"
  116.   Pop $0
  117.   StrCmp $0 "success" noerror
  118.     MessageBox MB_ICONEXCLAMATION|MB_OK "skinned button error: $0"
  119.   noerror:
  120. FunctionEnd

  121. Function .onGUIEnd
  122. skinnedbutton::unskinit
  123. FunctionEnd

  124. Function un.onInit
  125.   InitPluginsDir
  126.   File "/oname=$PLUGINSDIR\button.bmp" "${NSISDIR}\Contrib\skinnedbutton\skins\ishield.bmp"
  127. FunctionEnd

  128. Function un.myGUIInit
  129. skinnedbutton::skinit /NOUNLOAD "$PLUGINSDIR\button.bmp"
  130.   Pop $0
  131.   StrCmp $0 "success" noerror
  132.     MessageBox MB_ICONEXCLAMATION|MB_OK "skinned button error: $0"
  133.   noerror:
  134. FunctionEnd

  135. Function un.onGUIEnd
  136. skinnedbutton::unskinit
  137. FunctionEnd
复制代码


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 15:10 , Processed in 0.130207 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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