返回列表 回复 发帖

关于安装文件一个不清楚的地方

下面是我的源码 红色部分是什么意思,一直没搞懂

; 该脚本使用 HM VNISEdit 脚本编辑器向导产生

; 安装程序初始定义常量
!define PRODUCT_NAME "诛仙碧瑶主题"
!define PRODUCT_VERSION "1.0"
!define PRODUCT_PUBLISHER "flan, Inc."
!define PRODUCT_WEB_SITE "http://hi.baidu.com/fland"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"

SetCompressor lzma

; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------
!include "MUI.nsh"

; MUI 预定义常量
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"

; 欢迎页面
!insertmacro MUI_PAGE_WELCOME
; 许可协议页面
!insertmacro MUI_PAGE_LICENSE "E:\碧瑶\诛仙主题之碧瑶版(绿色)声明和许可协议.txt"
; 组件选择页面
!insertmacro MUI_PAGE_COMPONENTS
; 安装目录选择页面
!insertmacro MUI_PAGE_DIRECTORY
; 安装过程页面
!insertmacro MUI_PAGE_INSTFILES
; 安装完成页面
!insertmacro MUI_PAGE_FINISH

; 安装卸载过程页面
!insertmacro MUI_UNPAGE_INSTFILES

; 安装界面包含的语言设置
!insertmacro MUI_LANGUAGE "SimpChinese"

; 安装预释放文件
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
; ------ MUI 现代界面定义结束 ------

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "ZXbiyao.exe"
InstallDir "$PROGRAMFILES\诛仙碧瑶主题"
ShowInstDetails show
ShowUnInstDetails show

Section "主题文件" SEC01
  SetOverwrite ifnewer
  CreateDirectory "$WINDIR\Resources\Themes\ZXbiyao"
  SetOutPath "$WINDIR\Resources\Themes\ZXbiyao"
  File /r "E:\碧瑶\诛仙碧瑶主题完成稿\ZXbiyao\*.*"
  SetOutPath "$WINDIR\Resources\Themes"
  File /r "E:\碧瑶\诛仙碧瑶主题完成稿\ZXbiyao.theme"
SectionEnd

Section "桌面壁纸" SEC02
  SetOutPath "$WINDIR\web\wallpaper"
  File "E:\碧瑶\诛仙碧瑶主题完成稿\ZXbiyao.jpg"
SectionEnd

Section "鼠标指针" SEC03
  CreateDirectory "$WINDIR\Cursors\ZXbiyaocur"
  SetOutPath "$WINDIR\Cursors\ZXbiyaocur"
  File /r "E:\碧瑶\诛仙碧瑶主题完成稿\ZXbiyaocur\*.*"
SectionEnd

Section "系统声音" SEC04
  CreateDirectory "$WINDIR\Cursors\ZXbiyaocur"
  SetOutPath "$WINDIR\media\ZXbiyaomu"
  File "E:\碧瑶\诛仙碧瑶主题完成稿\ZXbiyaomu\*.*"
SectionEnd

Section -AdditionalIcons
  SetOutPath $INSTDIR
  CreateDirectory "$SMPROGRAMS\诛仙碧瑶主题"
  CreateShortCut "$SMPROGRAMS\诛仙碧瑶主题\诛仙碧瑶主题.lnk" "$WINDIR\Resources\Themes\ZXbiyao.theme"
  CreateShortCut "$SMPROGRAMS\诛仙碧瑶主题\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}"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
SectionEnd

#-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#

#-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#

; 区段组件描述
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "安装诛仙碧瑶主题主文件,这个文件将对系统产生视觉样式"
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "选择这项将安装碧瑶壁纸,壁纸大小为800x600。"
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "安装与主题相配套的鼠标指针"
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} "安装windows xp 启动声间和关机声音"
!insertmacro MUI_FUNCTION_DESCRIPTION_END

/******************************
*  以下是安装程序的卸载部分  *
******************************/

Section Uninstall
  Delete "$INSTDIR\uninst.exe"
  Delete "$WINDIR\media\ZXbiyaomu\*.*"
  Delete "$WINDIR\Cursors\ZXbiyaocur\*.*"
  Delete "$WINDIR\web\wallpaper\ZXbiyao.jpg"
  Delete "$WINDIR\Resources\Themes\ZXbiyao.theme"
  Delete "$WINDIR\Resources\Themes\ZXbiyao\*.*"

  Delete "$SMPROGRAMS\诛仙碧瑶主题\Uninstall.lnk"
  Delete "$SMPROGRAMS\诛仙之碧瑶主题\诛仙碧瑶主题.lnk"

  RMDir "$WINDIR\Resources\Themes\ZXbiyao"
  RMDir "$WINDIR\media\ZXbiyaomu"
  RMDir "$WINDIR\Cursors\ZXbiyaocur"
  RMDir "$SMPROGRAMS\诛仙碧瑶主题"
RMDir ""        ;这个地方是什么意思一值没搞懂,删除目录为什么用rmdir"" ,上面删除了,还用这个干什么的,我是用向导产生,总感觉这个没用
  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





下面这段是蕃茄花园主题包代码原代码地址http://www.dreams8.com/viewthrea ... hlight=%D6%F7%CC%E2

Section "-reg" SEC_REG
  SectionIn 1 2

      WriteRegStr HKCU "Control Panel\Cursors\Schemes" "blue_A" "%Windir%\Cursors\blue_A\Arrow.cur,%Windir%

\Cursors\blue_A\Help.cur,%Windir%\Cursors\blue_A\AppStarting.ani,%Windir%\Cursors\blue_A\Wait.ani,%Windir%

\Cursors\blue_A\Cross.cur,%Windir%\Cursors\blue_A\IBeam.cur,%Windir%\Cursors\blue_A\Handwriting.cur,%

Windir%\Cursors\blue_A\NO.cur,%Windir%\Cursors\blue_A\SizeNS.cur,%Windir%\Cursors\blue_A\SizeWE.cur,%

Windir%\Cursors\blue_A\SizeNWSE.cur,%Windir%\Cursors\blue_A\SizeNESW.cur,%Windir%

\Cursors\blue_A\SizeAll.cur,%Windir%\Cursors\blue_A\UpArrow.cur,%Windir%\Cursors\blue_A\Hand.ani"
    WriteRegStr HKCU "Control Panel\Cursors\Schemes" "GreenHiColor" "%Windir%

\Cursors\GreenHiColor\Arrow.cur,%Windir%\Cursors\GreenHiColor\Help.cur,%Windir%

\Cursors\GreenHiColor\AppStarting.ani,%Windir%\Cursors\GreenHiColor\Wait.cur,%Windir%

\Cursors\GreenHiColor\Cross.cur,%Windir%\Cursors\GreenHiColor\IBeam.cur,%Windir%

\Cursors\GreenHiColor\Handwriting.cur,%Windir%\Cursors\GreenHiColor\No.cur,%Windir%

\Cursors\GreenHiColor\SizeNS.cur,%Windir%\Cursors\GreenHiColor\SizeWE.cur,%Windir%

\Cursors\GreenHiColor\SizeNWSE.cur,%Windir%\Cursors\GreenHiColor\SizeNESW.cur,%Windir%

\Cursors\GreenHiColor\SizeAll.cur,%Windir%\Cursors\GreenHiColor\UpArrow.cur,%Windir%

\Cursors\GreenHiColor\Hand.ani"
    WriteRegStr HKCU "Control Panel\Cursors\Schemes" "blue_B" "%Windir%\Cursors\blue_B\01.cur,%Windir%

\Cursors\blue_B\02.cur,%Windir%\Cursors\blue_B\03.ani,%Windir%\Cursors\blue_B\04.ani,%Windir%

\Cursors\blue_B\05.cur,%Windir%\Cursors\blue_B\06.cur,%Windir%\Cursors\blue_B\07.ani,%Windir%

\Cursors\blue_B\08.cur,%Windir%\Cursors\blue_B\09.cur,%Windir%\Cursors\blue_B\10.cur,%Windir%

\Cursors\blue_B\11.cur,%Windir%\Cursors\blue_B\12.cur,%Windir%\Cursors\blue_B\13.cur,%Windir%

\Cursors\blue_B\14.cur,%Windir%\Cursors\blue_B\15.cur"
    WriteRegStr HKCU "Control Panel\Cursors\Schemes" "apple_blue" "%Windir%\Cursors\apple_blue\Cursor.cur,%

Windir%\Cursors\apple_blue\Help.cur,%Windir%\Cursors\apple_blue\Working.ani,%Windir%

\Cursors\apple_blue\Busy.ani,%Windir%\Cursors\apple_blue\Cross.cur,%Windir%\Cursors\apple_blue\Beam.cur,%

Windir%\Cursors\apple_blue\Pen.cur,%Windir%\Cursors\apple_blue\Unavailable.cur,%Windir%

\Cursors\apple_blue\Size Horz.cur,%Windir%\Cursors\apple_blue\Size Vert.cur,%Windir%\Cursors\apple_blue\Resize

Right.cur,%Windir%\Cursors\apple_blue\Resize Left.cur,%Windir%\Cursors\apple_blue\Resize All.cur,%Windir%

\Cursors\apple_blue\Alternate.cur,%Windir%\Cursors\apple_blue\Hand.cur"
    WriteRegStr HKCU "Control Panel\Cursors\Schemes" "apple_pink" "%Windir%\Cursors\apple_pink\Cursor.cur,%

Windir%\Cursors\apple_pink\Help.cur,%Windir%\Cursors\apple_pink\Working.ani,%Windir%

\Cursors\apple_pink\Busy.ani,%Windir%\Cursors\apple_pink\Cross.cur,%Windir%\Cursors\apple_pink\Beam.cur,%

Windir%\Cursors\apple_pink\Pen.cur,%Windir%\Cursors\apple_pink\Unavailable.cur,%Windir%

\Cursors\apple_pink\Size Horz.cur,%Windir%\Cursors\apple_pink\Size Vert.cur,%Windir%\Cursors\apple_pink\Resize

Right.cur,%Windir%\Cursors\apple_pink\Resize Left.cur,%Windir%\Cursors\apple_pink\Resize All.cur,%Windir%

\Cursors\apple_pink\Alternate.cur,%Windir%\Cursors\apple_pink\Hand.cur"
    WriteRegStr HKCU "Control Panel\Cursors\Schemes" "MacOSX" "%Windir%\Cursors\MacOSX\Cursor.cur,%

Windir%\Cursors\MacOSX\Help.cur,%Windir%\Cursors\MacOSX\Working.ani,%Windir%

\Cursors\MacOSX\Busy.ani,%Windir%\Cursors\MacOSX\Cross.cur,%Windir%\Cursors\MacOSX\Beam.cur,%Windir%

\Cursors\MacOSX\Pen.cur,%Windir%\Cursors\MacOSX\Unavailable.cur,%Windir%\Cursors\MacOSX\Size

Horz.cur,%Windir%\Cursors\MacOSX\Size Vert.cur,%Windir%\Cursors\MacOSX\Resize Right.cur,%Windir%

\Cursors\MacOSX\Resize Left.cur,%Windir%\Cursors\MacOSX\Resize All.cur,%Windir%

\Cursors\MacOSX\Alternate.cur,%Windir%\Cursors\MacOSX\Hand.cur"
    WriteRegStr HKCU "Control Panel\Cursors\Schemes" "CNP2006" "%Windir%\Cursors\CNP2006\CNP06NS.cur,%

Windir%\Cursors\CNP2006\CNP06WiB.ani,%Windir%\Cursors\CNP2006\CNP06BSY.ani,,,,,,,,,,,%Windir%

\Cursors\OSX\OS X Hand.cur"

SectionEnd
上面这做代码是不是注册鼠标指针的,而我上面的主题代码没用这段代码,只是把鼠标指针释放到相应位置,也能用,那这蕃茄这段代码好像显的没用,或者是有特殊的用途吗?

[ 本帖最后由 zlmyongheng 于 2008-8-4 08:42 AM 编辑 ]
那就是没用呗。
RMDir ""       这句代码确实没用 - -!不知道你是怎么生成的

RMDir "$INSTDIR" 是删除安装目录
求助的语气相当恼人,想必没多少人愿意出手相助。
如果想自己的求助路途一路畅通,改改自己的语气,或许你在其他论坛是版主,是被人称为大师也好,在这里只要你是求助的,就学着把语气放缓点。谁都想有个好心情,举手之劳何乐而不为呢?


请将已得到答案的帖子改为 【已解决】 分类!!!

谢谢合作!
第二个总是鼠标指针是不是要写入注册表,我的主题直接释放到相应位置也能用,注册是不是有什么特殊作用
楼主可以试试  用 RMdir /r 的语句来删除整个目录,可以简化语句。
RMDir /r "$WINDIR\Resources\Themes\ZXbiyao"
我这一句顶你两句哦!
Delete "$WINDIR\Resources\Themes\ZXbiyao\*.*"
RMDir "$WINDIR\Resources\Themes\ZXbiyao"

注册鼠标指针的目的在于,可以在控制面板的“鼠标指针”列表中找到。至于你没加也可以用,是因为配置了主题文件(.theme)
返回列表