Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3250
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2015-02-27 16:17
文章分类
文章存档

2015年(3)

我的朋友
最近访客

分类:

2015-03-10 15:05:07

原文地址:NSIS的学习和使用 作者:bluekey1979

1,选择一个中文版本工具和帮助

  nullsoft scriptable install system 2.37

   1,仔细阅读 NSIS用户手册(中文)大概了解一些规则。

   2,利用自带例程进行测试和修改熟悉NSIS

2,一个实际的安装程序制作

   1,要求:          

        

    如果在一台机上安装我们的服务器,安装步骤如下(仅供参考)

   1 运行Vertrigo_221.exe,安装VertrigoServ
  2
运行VertrigoServ,右键点击右下角小图标,"Tools"=>"MySQL Console(for root)"

     密码是****。进入之后,

     输入命令:\. d:\ipcamera\install\monitorplatform.sql,用于恢复数据。

     可用命令 show tables;检查,注意带分号。

3 输入命令:grant select,update,insert,delete,create on monitorplatform.* to           identified by 'guest';用于恢复用来查询的用户身份。

4 拷贝文件夹 voyager VertrigoServ安装文件夹的 www 中。恢复网页。

5 修改secserver文件夹中的文件 secserver.ini,如有必要,创建文件夹,用来让服务器程序存放snapshotvid

6 右键点击右下角小图标,"Settings"=>"Aliases and dirs",进入后选择按钮 "Add directory""Add aliases"。注意别名是ipcam,这是在vCam中写死了。

从以上安装步骤可以看出,有些事情只有搞开发的人才容易懂。因此,为了让一般人也能方便地安装服务器,要制作一个安装程序。安装程序可用NSIS来制作。NSIS的学习可以在安装NSIS后参考帮助文档。请从 安装程序的制作取得相关资料,包括NSIS的安装程序和服务器/客户端的程序。

 

请你制作的安装程序中,具体任务如下:

VertrigoServ在此前已经安装好)

1 默认系统安装目录是$PROGRAMFILES\VoyIPCAM,显示此文件夹,用户可选择另外的文件夹。然后把ClientServer中的文件拷贝到此文件夹。

2 默认的存放快照(snapshot_dir)和录像(vidrecord_dir)的文件夹是上一步指定的安装文件夹下的.\Server\multimedia。显示这一默认文件夹,并允许用户更改。补充说明:存放快照(snapshot_dir)和录像(vidrecord_dir)的文件夹是同一文件夹。但在下面第3步,要在secserver.ini中写入两项。

3 把第2步的设置保存到.\Server\secserver.ini文件中。webmanage的值是安装文件夹的.\Server\voyager。再添加一项:serverport=***

4 查找VertrigoServ的安装文件夹,修改其目录(\Apache\conf\)下的 vertrigo.conf 文件,把(snapshot_dir\vidrecord_dir\webmanage路径添加到vertrigo.conf 文件中。添加的格式如下(除了修改所处的文件夹外,其余字符不用修改):

 

vidrecord_dir的文件夹,从盘符开始的绝对路径">
     Options All
     AllowOverride All
     Order allow,deny
     Allow from All

 

Alias /ipcam "snapshot_dirvidrecord_dir的文件夹,从盘符开始的绝对路径"


的文件夹,从盘符开始的绝对路径">
     Options All
     AllowOverride All
     Order allow,deny
     Allow from All

 

Alias /voyager "webmanage的文件夹,从盘符开始的绝对路径"

以上是当前的工作。下一步还要考虑卸载程序的制作。安装时要检测当前程序的版本等。

 

  

 2,遇到问题和解决办法

      1,在具体任务1中,可以通过nullsoft scriptable install system 2.37直接建立;

      2,在任务2中,需要建立一个对话框。

           1,创建一个窗体。(directory.ini                 

               在菜单【File】中找到【新建 InstallOption 文件】编辑一个窗体。

[Settings]

NumFields=2

 

[Field 1]

Type=Label

Text=Please select snap shot and video record dictory.

Left=6

Right=230

Top=26

Bottom=44

 

[Field 2]

Type=DirRequest

State=DirRequest

Left=7

Right=235

Top=46

Bottom=59

 

           2,在初始化的地方调用。

                ; 添加Video record 路径
                 ;=============================
              
!insertmacro MUI_PAGE_COMPONENTS
                Page custom SetCustom LeaveCustom
                ;=============================

                 

                 Function .onInit
                      !insertmacro MUI_LANGDLL_DISPLAY
                       InitPluginsDir
               
       File /oname=$PLUGINSDIR\io.ini directory.ini
               FunctionEnd

            

      3,写数据到文件中

            1,获取路经。

            2,写文件函数。

                   

Section "-VideoRecordDir" SEC_VideoRecordDir

SectionEnd

 

Function SetCustom

    WriteINIStr $PLUGINSDIR\io.ini "Field 2" State "$INSTDIR\Server\multimedia"

    InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\io.ini"

    InstallOptions::show

FunctionEnd

 

Function LeaveCustom

    ReadINIStr $0 "$PLUGINSDIR\io.ini" "Field 2" State

    CreateDirectory $0

    ${Unless} ${FileExists} "$0\*"

        MessageBox MB_OK|MB_ICONSTOP "error"

        Abort

    ${EndUnless}

    ;===================================================

    ClearErrors

    FileOpen $1 "$INSTDIR\Server\secserver.ini" w

    IfErrors done

    FileWrite $1 "snapshot_dir=$0$\r$\n"

    FileWrite $1 "vidrecord_dir=$0$\r$\n"

    FileWrite $1 "serverport=9394$\r$\n"

    FileClose $1

    done:

    ${Unless} ${FileExists} "$INSTDIR\Server\secserver.ini"

        MessageBox MB_OK|MB_ICONSTOP "Setting secserver.ini error"

        Abort

    ${EndUnless}

    ;=====================================================

    ;==========处理vertigo=================================

    ReadRegStr $2 HKCU  Software\vertrigoServ "" ;HKEY_CURRENT_USER Software  vertrigoServ

    ;MessageBox MB_OK|MB_ICONSTOP "vertrigoServ 安装在: $2" ;for test message

    FileOpen $3 "$2\Apache\conf\vertrigo.conf" a

    ClearErrors

    IfErrors done2

    FileSeek $3 0 END

    FileWrite $3 "$\r$\n"

    FileWrite $3 "$\r$\n"

    FileWrite $3 "     Options All$\r$\n"

    FileWrite $3 "     AllowOverride All$\r$\n"

    FileWrite $3 "     Order allow,deny$\r$\n"

    FileWrite $3 "     Allow from All$\r$\n"

    FileWrite $3 "     $\r$\n"

    FileWrite $3 "$\r$\n"

    FileWrite $3 "Alias /ipcam $\"$0$\" $\r$\n"

    FileWrite $3 "$\r$\n"

    FileWrite $3 "$\r$\n"

    FileWrite $3 "     Options All$\r$\n"

    FileWrite $3 "     AllowOverride All$\r$\n"

    FileWrite $3 "     Order allow,deny$\r$\n"

    FileWrite $3 "     Allow from All$\r$\n"

    FileWrite $3 "     $\r$\n"

    FileWrite $3 "$\r$\n"

    FileWrite $3 "Alias /voyager $\"$INSTDIR\Server\voyager$\" $\r$\n"

 

    FileClose $3

    done2:

    ${Unless} ${FileExists} "$2\Apache\conf\vertrigo.conf"

        MessageBox MB_OK|MB_ICONSTOP "Setting vertrigo.conf error!"

        Abort

    ${EndUnless}

    ;=====================================================

FunctionEnd

ReserveFile directory.ini

  

      4,得到本地IP地址,并创建一个URL连接。

            下载一个得到本地IP地址的插件 ,(源码见附件)

             URL快捷方式:            

;=====================================================================

Section -AdditionalIcons

  SetOutPath $INSTDIR

  WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"

  WriteIniStr "$INSTDIR\SecserverWebsite.url" "InternetShortcut" "URL" ""

  CreateShortCut "$SMPROGRAMS\VoyIPcam\CompanyWebsite.lnk" "$INSTDIR\${PRODUCT_NAME}.url"

  CreateShortCut "$SMPROGRAMS\VoyIPcam\Uninstall.lnk" "$INSTDIR\uninst.exe"

  CreateShortCut "$SMPROGRAMS\VoyIPcam\SecserverWebsite.lnk" "$INSTDIR\SecserverWebsite.url"

 

SectionEnd

 

      5,在程序安装完成时进行改写默认执行程序。

                ; 安装完成页面
             
 !define MUI_FINISHPAGE_RUN
              !define MUI_FINISHPAGE_RUN_TEXT "Run Secserver and then Run VoyCMS"
              !define MUI_FINISHPAGE_RUN_FUNCTION "RunMultFun"

              !insertmacro MUI_PAGE_FINISH
             ;!define MUI_FINISHPAGE_RUN "$INSTDIR\Client\VoyCMS.exe"
             ;!insertmacro MUI_PAGE_FINISH

 

             Function RunMultFun
            ExecShell "" "$INSTDIR\Server\secserver.exe"
            ExecShell "" "$INSTDIR\Client\VoyCMS.exe"
            FunctionEnd

   6, 如何默认安装语言

           在初始中动态更改

            Function .onInit
               !insertmacro MUI_LANGDLL_DISPLAY
               InitPluginsDir
              File /oname=$PLUGINSDIR\io.ini directory.ini
          FunctionEnd

 

3,完整的安装源码 

  见附件

 

4, 参考:
 
文件: NSIS.rar
大小: 6KB
下载: 下载
   
阅读(358) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~