本节主要介绍一些安装的实例,其实也是很简单的哦!
我们先介绍一个basic.nsi的例子,这个是比较简单,且有代表性的一个例子。下面的是经过我简化的例子
;--------------------------------
;Include Modern UI
  !include "MUI2.nsh"
;-------------上面这段是包含头文件的语法
;General
//这个节是关于常规的设置,一般是宏定义的具体定义
  ;Name and file
  Name "Modern UI Test" ; 这个是安装软件的名字,会出现在安装setup的title上.
  OutFile "Basic.exe" ;编译后的输出文件名为Basic.exe,一般我们是用setup.exe
  ;Default installation folder //这个软件的默认安装目录,当然可以改的,一般我们是安装到$PROGRAMFILES,具体的含义参考帮助里面的
  InstallDir "$LOCALAPPDATA\Modern UI Test"
  ;Get installation folder from registry if available //这个是在注册表里面建立的文件夹的名字,一般是软件公司的名字。
  InstallDirRegKey HKCU "Software\Modern UI Test" ""
  ;Request application privileges for Windows Vista //vista 权限的相关,我也没搞明白。呵呵
  RequestExecutionLevel user
;--------------------------------
;Interface Settings
  !define MUI_ABORTWARNING
;--------------------------------
;Pages
//注意,下面的很重要。每一行代表一个安装页面,即,协议界面,组件界面,选择安装到文件夹界面,执行安装。
  !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt" //后面的文件及时要显示的协议的内容。
 ; !insertmacro MUI_PAGE_COMPONENTS //要安装的组件界面,一般是选择那些安装那些不安装的,我们只有一个,所以不需要这个界面
  !insertmacro MUI_PAGE_DIRECTORY //选择安装的目录,是C盘PROGRAM FILES 还是其他地方
  !insertmacro MUI_PAGE_INSTFILES // 真实执行安装的情况
  
  !insertmacro MUI_UNPAGE_CONFIRM //卸载的确认操作。
  !insertmacro MUI_UNPAGE_INSTFILES //真正执行卸载的情况
  
;--------------------------------//根语言有关的,我们不去管它
;Languages
 
  !insertmacro MUI_LANGUAGE "English"
;--------------------------------
;Installer Sections//安装要做的事情都在下面的section里面
Section "Dummy Section" SecDummy //对应于组件中的Dummy Section的具体执行动作。每个section 对于与一个组件
  SetOutPath "$INSTDIR"    //设置安装的最终目录,这样对于一些操作可以不设定默认的目录。如:File命令
    ;ADD YOUR OWN FILES HERE...
        //这里可以增加自己的操作,比如注册组件,拷贝文件FILE
  ;Store installation folder
  WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR //写注册表信息
    ;Create uninstaller
  WriteUninstaller "$INSTDIR\Uninstall.exe" //创建卸载的注册表信息,可以在安装卸载里面看到
SectionEnd
;Uninstaller Section //卸载要做的事情
Section "Uninstall"     //卸载的节,同理跟安装的差不多,基本是安装的反操作。
  ;ADD YOUR OWN FILES HERE...
  Delete "$INSTDIR\Uninstall.exe" //删除卸载程序本身,其实这里有一个细节,写作程序是先把自己拷贝到临时目录,然后运行位于临时目录的程序。
  RMDir "$INSTDIR"     //删除程序的文件夹
  DeleteRegKey /ifempty HKCU "Software\Modern UI Test"//删除注册表相关的东西
  DeleteRegKey "$INSTDIR\Uninstall.exe"
SectionEnd
今天先写道这里吧。写了个比较简单的例子,但是,具体安装要做的东西,还有很多没有介绍,这里只是介绍下这个安装卸载的大致结构
在下一节,我们介绍比较常用的命令,比如,copy文件,注册表都写那些内容等等,比较实用的东西

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/renjwjx/archive/2009/05/26/4214829.aspx