`

【转】NSIS 发布程序及bat编写及运行

阅读更多

 

提到这个第三方打包软件,最近研究了下,之前使用vs2008打包,只是简单的程序打包,没有设计到dllocx注册及其他辅助程序的运行等,所以,这回需求需要将这些内容都统一打包进去,所以就选择这个NSIS第三个打包到了一点脚本语言的编写,还好有这个NSIS帮助文档。说白了,它是向导+编码。做起来还是比较容易。

这个软件,我用的是nsis2.37版本,编辑器用的是VNISEdit060712。

首先要准备好你的程序,比如我们的SMMS.exe,还要程序运行的必要注册安装之类的东西。比如,我们需要注册TeeChar.ocx,需要注册matlab写好的两个comsingkalman.dll,singSubImgPro.dll,还有一些图像的库dll.

而且在用户机器上需要安装vs2008安装包,vcredist_x86.exe和matlab的运行时MCRInstaller.exe。所以这些需要写脚步文件进行控制。最后是一些按照过程中的安装图标(格式为ico),背景图片(格式为bmp)等。

一、打开HM-VNISEdit文件-》新建向导,打开向导,如下图


 

 

二、点击下一步,见下图,输入打包程序名称,比如liyySMMSSetup。出版人:liyy,应用程序网址

http://hi.baidu.com/liyy011,其他可以默认。

 

 

第二个界面变成如下图。

 

 

 

三、点击下一步,修改以下几个方面,

1)安装图像图标,选择你准备好的安装图像图标,格式为ico

2)安装程序文件,选择你的写好的程序,这里是我们的smms

3)安装程序语言,选择simplechinese

其他的默认,见下图

 

 

四、下一步后,可以设置背景闪屏,背景音乐等,这里我们选择了一张闪屏的图像,格式bmp,背景色为上面浅粉,下面深粉色。见下图



 

五、点击下一步,

 

授权文件需要选择目录存在的文件,这个文件可以为空。但是需要存在。

六、点击下一步,删除那些默认的东西

 

添加上你的程序

 

 

当然也需要把程序运行时需要存在的DLL,运行的bat,还有exe等文件可以设置不同目录进行添加。这里添加了DLLCOMbat三个部分并将三个部分需要添加的文件,添加进去。见下面四个图。

 

 

 

 

 

七、下一步,添加应用程序“开始菜单”文件夹名称。比如叫liyySMMS(下面图起的名字有些误导用户的意思,这个是快捷方式,应该就是我们程序的名字)

 

 

八、安装程序后是否要运行该程序,如果需要运行,就添加我们写好的程序。

 

 

九、卸载部分向导,这里默认,图标可以改成你事先准备好的卸载ico


十一、向导完成后,可以选择保存脚本,再编辑些自己的东西进去。

十二、将编译文件进行保存,保存后缀名为nsi.打开nsi后,可以见下图。

 

 

十三、第二大部分是写脚步文件。

一)

在源代码

; MUI 预定义常量

!define MUI_ABORTWARNING

!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"

!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"

下面添加下列代码:1)欢迎画面bmp,大小为165*2982)加上欢迎界面标题;3)添加一些信息;4)提示运行的文档和程序代码如下

 

 

;liyy

!define MUI_WELCOMEFINISHPAGE_BITMAP "D:\打包程序\liyyTest20110112\安装图.bmp"

!define MUI_WELCOMEPAGE_TITLE "\r\n   船模跟踪系统安装向导"

!define MUI_WELCOMEPAGE_TEXT "  船模跟踪系统是对船模实验进行跟踪分析系统。\r\n\r\n  软件作者:liyy\r\n\r\n  官方网址:http://hi.baidu.com/liyy011\r\n\r\n  $_CLICK"

!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\安装说明.txt"

!define MUI_FINISHPAGE_SHOWREADME_TEXT "查看 安装说明"

二)

如果当时文件加载的不够,忽然想起某些文件也需要打包进去,那么可以在他生成的代码里继续添加。

比如,com bat运行注册时,还需要.ctf文件,

Section "COM" SEC03

  File "singKalman14Reg\distrib\singKalman14_1_0.dll"

  File "singKalman14Reg\distrib\singKalman14_pkg.exe"

  File "singSubImgPro10Reg\distrib\singSubImgPro10_1_0.dll"

  File "singSubImgPro10Reg\distrib\singSubImgPro10_pkg.exe"

  File "singKalman14Reg\distrib\singKalman14.ctf"

  File "singSubImgPro10Reg\distrib\singSubImgPro10.ctf"

SectionEnd

三)运行exe

Section StartPro

  ExecWait $INSTDIR\MCRInstaller.exe 

SectionEnd

ExecWait 要比Exc 要好,直到这个程序运行完毕,才执行下面步骤。

 

四)运行ocx

我不知道怎么运行ocx,只能把这个ocx写成一个bat文件,bat代码如下

echo off

regsvr32 TeeChart5.ocx

echo Installation complete.

命名为为TeeChar_install.bat,(而且这个文件在加载文件的时候,已经打包到安装程序里面,还有他需要的TeeChart5.ocx,否则会运行失败,脚步文件运行bat时只需运行他目录下的TeeChar_install.bat即可。)

脚本文件注册bat

Section StartPro

 ExecWait $INSTDIR\TeeChar_install.bat

SectionEnd

 

将两个注册com的代码写成了一个注册batbat代码如下

echo off

echo Deploying project singKalman14, version 1.0.

IF EXIST MCRInstaller.exe (

echo Running MCRInstaller

MCRInstaller.exe

)

echo Registering the component...

IF EXIST MCRRegCOMComponent.exe (

MCRRegCOMComponent.exe singKalman14_1_0.dll 

) ELSE (

regsvr32 singKalman14_1_0.dll 

)

echo Installation complete.

echo Please refer to the documentation for any additional setup steps.

 

echo off

rem echo Deploying project singSubImgPro10, version 1.0.

rem IF EXIST MCRInstaller.exe (

rem echo Running MCRInstaller

rem MCRInstaller.exe

rem )

rem echo Registering the component...

rem IF EXIST MCRRegCOMComponent.exe (

rem MCRRegCOMComponent.exe singSubImgPro10_1_0.dll 

rem ) ELSE 

(

regsvr32 singSubImgPro10_1_0.dll 

)

rem是注释的意思。

脚步文件运行注册bat是一样的,

;bat 文件

Section StartPro

 ExecWait $INSTDIR\Two_install.bat

SectionEnd

 

五)脚步文件注册DLL

Section Regdll

  RegDLL $INSTDIR\MFC42D.DLL

SectionEnd

 

Section Regdll

  RegDLL $INSTDIR\MSVCRTD.DLL

SectionEnd

 

Section Regdll

  RegDLL $INSTDIR\FreeImage.dll

SectionEnd

 

Section Regdll

  RegDLL $INSTDIR\ImagePro.dll

SectionEnd

 

Section Regdll

  RegDLL $INSTDIR\Utility.dll

SectionEnd

 

打包程序中安装部分基本完成,卸载部分基本都是默认的。

不过,有些com卸载不了,也可装自己写个bat,在卸载的时候加上运行即可。

比如,卸载的combat

echo off

IF EXIST MCRInstaller.exe (

echo unRunning MCRInstaller

InstallUtil.exe -u MCRInstaller.exe

 

)

echo Registering the component...

IF EXIST MCRRegCOMComponent.exe (

InstallUtil.exe -u MCRRegCOMComponent.exe singKalman14_1_0.dll

) ELSE (

regsvr32  -u singKalman14_1_0.dll 

)

echo Unstallation complete.

echo Please refer to the documentation for any additional setup steps.

 

 基本ok了,其他的每太研究。

 

 

 

 

转自:http://hi.baidu.com/liyy011/blog/item/876c01b0f8a458470823021b.html

分享到:
评论

相关推荐

    QQ_nsis_demo

    这个文件使用NSIS的脚本语言编写,定义了安装程序的行为,如安装路径选择、文件拷贝、注册表项修改等。通过这个脚本,开发者能够自定义安装界面、设置安装选项,并控制软件的安装流程。例如,`qq.nsi`可能包含了将QQ...

    bat转exe文件

    "bat转exe"就是这样一个过程,它使得批处理脚本可以在没有CMD环境或者用户不熟悉命令行的情况下运行。 首先,我们需要理解为什么需要将.bat文件转换为.exe文件。.bat文件在双击时会自动打开命令提示符窗口执行命令...

    bat文件转exe文件

    - **DOS命令**:BAT文件的基础是DOS命令,如`copy`, `del`, `mkdir`等,了解这些命令是编写BAT脚本的前提。 - **批处理语法**:包括命令行参数、环境变量、条件语句(`if`)、循环结构(`for`)等。 - **Windows ...

    mypackage.rar

    这个目录可能包含了NSIS的安装程序、预编写的NSIS脚本、Tomcat、MySQL、JDK的安装文件或者已精简的版本,以及其他可能的辅助文件和文档。 总的来说,"mypackage.rar"是一个全面的开发工具集,特别适合那些需要将...

    BAT批处理全自动(静默)安装软件的方法(包含4种常见安装包格式)

    本文将详细介绍如何使用BAT批处理脚本来实现全自动静默安装,并覆盖四种常见的安装包格式:InstallShield、Inno Setup、Microsoft Windows Installer以及Nullsoft Scriptable Install System (NSIS)。 #### 一、...

    牛牛安装包界面美化控件

    1. **makensiscode.bat**:这是一个批处理文件,通常用于运行NSIS(Nullsoft Scriptable Install System)编译器,将脚本转换为可执行的安装程序。NSIS是一个开源的Windows安装包制作工具,支持自定义界面和逻辑。 ...

    winrar制作exe安装软件

    6. **测试与分发**:生成的.exe文件可以先进行测试,确保在目标系统上能正常运行并正确解压及安装。之后,就可以通过电子邮件、下载链接等方式分发给用户。 7. **安全性考虑**:自解压文件可能被用于传播恶意软件,...

    Windows下Qt应用程序开发环境搭建.docx

    完成以上步骤后,你将拥有一个完整的Windows下Qt应用程序开发环境,能够使用Eclipse进行Qt应用的编写、调试和版本控制。同时,Qt Creator和QtDebugHelper可以提供额外的功能和支持。这个环境适用于个人开发者或团队...

    Windows下Qt应用程序开发环境搭建.pdf

    - 打包应用,利用NSIS插件生成安装程序。 通过以上步骤,开发者可以在Windows环境下构建一个完整的Qt应用程序开发环境,集成了Eclipse的高效编辑、版本控制、调试和打包功能,大大提高了开发效率。

    绿色软件制作工具软件及教程

    在实践中,还需要了解文件权限、软件打包工具(如NSIS、Inno Setup等)、程序逆向工程等技术,以确保软件的完整性和兼容性。通过学习和实践,你可以将任何软件转化为绿色版,既方便自己使用,也可以分享给他人,享受...

    LazurBeemz:与构建Vana的Windows依赖项安装程序有关的说明,脚本等

    这些脚本可能是用批处理(.bat)、Python(.py)或其他脚本语言编写的。 3. **source** - 如果存在此目录,它可能包含了Vana库的源代码,或者是LazurBeemz自身的一部分,用于辅助构建过程。 4. **build.bat** / **...

    mscode脚本编译

    这种脚本可以自动化执行一系列命令,如复制文件、设置注册表项、运行安装程序等,从而实现软件的无人值守安装。编写自动安装脚本的关键在于理解各种系统命令和逻辑控制结构,确保脚本能在不同环境中正确运行。 **2....

    Fiddler HTTP抓包工具

    - **RunNsisUninstallers.bat**:这可能是一个批处理文件,用于卸载使用NSIS(Nullsoft Scriptable Install System)编译的安装程序。 - **Fiddler.exe.config**:这是Fiddler主程序的配置文件,包含了应用程序运行...

    绿色软件制作大全(第一辑)

    6. **打包工具**:有许多工具可以帮助我们制作绿色软件,如NSIS(Nullsoft Scriptable Install System)、Inno Setup等,它们可以用来创建自解压包或安装程序,同时处理好所有文件的复制和配置。 7. **许可证和版权...

    milkbone-开源

    这个项目因其小巧而高效的特点而受到关注,发行版本仅190K,却能提供高度的功能扩展和完全的自定义能力,充分体现了Perl语言在编写轻量级、高效应用程序方面的优势。 在跨平台性方面,Milkbone表现出色,不仅能在...

    Paperprogs-开源

    6. **cygwin.nsi**:NSIS(Nullsoft Scriptable Install System)是一个用于创建Windows安装程序的开源工具。这个文件可能包含了Cygwin安装程序的脚本。 7. **regset.pl**:这可能是一个Perl脚本,用于处理注册表...

    Rufus - BitTorrent Client-开源

    7. **安装与配置**:rufus.nsi文件可能是NSIS(Nullsoft Scriptable Install System)脚本,用于创建Windows安装程序,而pathsetup.dat可能包含程序路径和依赖项的配置信息。 8. **版本控制**:PKG-INFO文件通常在...

    DOS批处理高级教程精选合编(for_windows_Xp)完整版.pdf

    - **批处理文件**(`.bat` 或 `.cmd` 文件)是一种包含一系列命令的文本文件,当运行该文件时,系统会依次执行其中的命令。 #### 二、常用批处理内部命令详解 1. **REM 和 ::** - `REM` 命令用于添加注释,其后的...

    tsunami-开源

    4. `bittorrent.nsi`和`completedir.nsi`:这些是NSIS(Nullsoft Scriptable Install System)脚本文件,用于创建Windows安装程序。`bittorrent.nsi`可能是tsunami客户端的主要安装脚本,而`completedir.nsi`可能...

Global site tag (gtag.js) - Google Analytics