`
hipeace87
  • 浏览: 173697 次
  • 性别: Icon_minigender_1
  • 来自: 山东菏泽
社区版块
存档分类
最新评论

Installshield2008使用心得(打包web工程)

阅读更多
1.新建InstallScript Project

2.在Project Assistant 视图中填写Project的基本信息和文件及文件夹

3.InstallScript介绍()语法类似C;

//以下的那些弹出窗口都可以在user interface -->dialog中找到.可以修改.
//user interface 下skin可改安装程序皮肤

#include "ifx.h"
function OnFirstUIBefore()//执行安装程序的第一个窗口时执行
    number  nResult, nLevel, nSize, nSetupType;
    string  szTitle, szMsg, szOpt1, szOpt2, szLicenseFile;
    string  szName, szCompany, szTargetPath, szDir, szFeatures;
    BOOL    bLicenseAccepted;     
begin     
    nSetupType = COMPLETE;   
    szDir = TARGETDIR;
    szName = "";
    szCompany = "";
    bLicenseAccepted = FALSE;
  
// Beginning of UI Sequence
Dlg_Start:
    nResult = 0;

Dlg_SdWelcome:
    szTitle = "";
    szMsg = "";
    //{{IS_SCRIPT_TAG(Dlg_SdWelcome)
    nResult = SdWelcome( szTitle, szMsg );//弹出欢迎窗口
    //}}IS_SCRIPT_TAG(Dlg_SdWelcome)
    if (nResult = BACK) goto Dlg_Start;

Dlg_SdLicense2:
    szTitle = "";
    szOpt1 = "";
    szOpt2 = "";
    //{{IS_SCRIPT_TAG(License_File_Path)
    szLicenseFile = SUPPORTDIR ^ "License.rtf";//找一个名为license.rtf的文件(协议风容放在Support files/Billboards  language independent下面)
    //}}IS_SCRIPT_TAG(License_File_Path)
    //{{IS_SCRIPT_TAG(Dlg_SdLicense2)
    nResult = SdLicense2Rtf( szTitle, szOpt1, szOpt2, szLicenseFile, bLicenseAccepted );//弹出协议窗口
    //}}IS_SCRIPT_TAG(Dlg_SdLicense2)
    if (nResult = BACK) then
        goto Dlg_SdWelcome;
    else
        bLicenseAccepted = TRUE;
    endif;

Dlg_SdRegisterUser:
    szMsg = "";
    szTitle = "";
    //{{IS_SCRIPT_TAG(Dlg_SdRegisterUser)   
    //nResult = SdRegisterUser( szTitle, szMsg, szName, szCompany );
    //}}IS_SCRIPT_TAG(Dlg_SdRegisterUser)
    if (nResult = BACK) goto Dlg_SdLicense2;

Dlg_SetupType2:  
    szTitle = "";
    szMsg = "";
    nResult = CUSTOM;
    //{{IS_SCRIPT_TAG(Dlg_SetupType2)   
    //nResult = SetupType2( szTitle, szMsg, "", nSetupType, 0 );
    //SdShowDlgEdit1 (szTitle,szMsg,szDir,szTargetPath);
    //}}IS_SCRIPT_TAG(Dlg_SetupType2)
    if (nResult = BACK) then
        goto Dlg_SdLicense2;
    else
        nSetupType = nResult;
        if (nSetupType != CUSTOM) then
            szTargetPath = TARGETDIR;
            nSize = 0;
            FeatureCompareSizeRequired( MEDIA, szTargetPath, nSize );
            if (nSize != 0) then     
                MessageBox( szSdStr_NotEnoughSpace, WARNING );
                goto Dlg_SetupType2;
            endif;
        endif;  
    endif;

Dlg_SdAskDestPath2:
    if ((nResult = BACK) && (nSetupType != CUSTOM)) goto Dlg_SetupType2;
    szTitle = "";
    szMsg = "";
    if (nSetupType = CUSTOM) then
                //{{IS_SCRIPT_TAG(Dlg_SdAskDestPath2)   
        nResult = SdAskDestPath2( szTitle, szMsg, szDir );
                //}}IS_SCRIPT_TAG(Dlg_SdAskDestPath2)
        TARGETDIR = szDir;
    endif;
    if (nResult = BACK) goto Dlg_SdLicense2;

Dlg_SdFeatureTree:
    if ((nResult = BACK) && (nSetupType != CUSTOM)) goto Dlg_SdAskDestPath2;
    szTitle = "";
    szMsg = "";
    szFeatures = "";
    nLevel = 2;
    if (nSetupType = CUSTOM) then
        //{{IS_SCRIPT_TAG(Dlg_SdFeatureTree)   
        //nResult = SdFeatureTree( szTitle, szMsg, TARGETDIR, szFeatures, nLevel );
        //}}IS_SCRIPT_TAG(Dlg_SdFeatureTree)
        if (nResult = BACK) goto Dlg_SdAskDestPath2; 
    endif;

Dlg_SQLServer:
    nResult = OnSQLServerInitialize( nResult );
    if( nResult = BACK ) goto Dlg_SdFeatureTree;

Dlg_ObjDialogs:
    nResult = ShowObjWizardPages( nResult );
    if (nResult = BACK) goto Dlg_SQLServer;
   
Dlg_SdStartCopy2:
    szTitle = "";
    szMsg = "";
    //{{IS_SCRIPT_TAG(Dlg_SdStartCopy2)   
    nResult = SdStartCopy2( szTitle, szMsg );   
    //}}IS_SCRIPT_TAG(Dlg_SdStartCopy2)
    if (nResult = BACK) goto Dlg_ObjDialogs;

    // Added in 11.0 - Set appropriate StatusEx static text.
    SetStatusExStaticText( SdLoadString( IDS_IFX_STATUSEX_STATICTEXT_FIRSTUI ) );

    return 0;
end;
//---------------------------------------------------------------------------
// OnBegin
//
// The OnBegin event is called directly by the framework after the setup
// initializes. Note that this event will be called AFTER "Initialization"
// events (i.e.) OnSetTARGETDIR, OnCheckMediaPassword.
//
// Note: This event will not be called automatically in a
// program...endprogram style setup.
//---------------------------------------------------------------------------
function OnBegin()  //程序开始时执行
string     szInfoString;
begin
     //增加背景图片
    szInfoString = SUPPORTDIR ^ "bbrd8.bmp" ;
    DialogSetInfo ( DLG_INFO_ALTIMAGE , szInfoString , TRUE);
   
    //设置安装程序时的桌面背景
    Enable( BACKGROUND );
    Enable(FULLWINDOWMODE); 
    PlaceBitmap(SUPPORTDIR ^ "bbrd7.bmp",13,0,0,FULLSCREENSIZE);  
    //SetDisplayEffect(EFF_FADE)
    //PlaceBitmap(szInfoString,12,10,10,UPPER_LEFT);
end;
//---------------------------------------------------------------------------
// OnEnd
//
// The OnEnd event is called at the end of the setup. This event is not
// called if the setup is aborted.
//---------------------------------------------------------------------------


下面是执行系统批处理(注册mysql,tomcat服务)如何注册tomcat,mysql服务上一篇中已讲到

export prototype DefaultFeature_Installed();
function DefaultFeature_Installed()    
STRING myIniFile,baseDir,dataDir; 
STRING tomcatStart,mysqlStart;    
STRING  BASEPATH,TEMP;    
NUMBER  nSize,i;
begin  
//设置mysql的my.ini配置文件的要根目录

//替换\\成/
BASEPATH = TARGETDIR;
StrRemoveLastSlash(BASEPATH);
nSize = StrLength(BASEPATH);
i=0;
while (i < nSize)
if (BASEPATH[i] = "\\") then
BASEPATH[i] = "/";
endif;
    i = i + 1;
endwhile;
//处理完\\成/
myIniFile=BASEPATH+"/mysql5/my.ini";
baseDir= "basedir=\""+BASEPATH+"/mysql5/\"";
dataDir="datadir=\""+BASEPATH+"/mysql5/data/\"";
FileInsertLine (myIniFile,dataDir , 80, BEFORE);
FileInsertLine (myIniFile,baseDir , 80, BEFORE);    

//注册mysql成系统服务
//ServiceAddService("OupuMysql222","OupuMysqlServer222","Mysql5021",TARGETDIR+"\\mysql5\\bin\\mysqld-nt.exe",TRUE,""); 
//启动mysql服务
//ServiceStartService("OupuMysql222","");   
       
//调用 启动mysql.bat
mysqlStart = TARGETDIR+"\\mysql5\\bin\\启动mysql.bat";
LaunchAppAndWait (mysqlStart,"",WAIT);
//调用 启动tomcat.bat  
tomcatStart = TARGETDIR+"\\tomcat-5.5.20\\bin\\启动tomcat.bat";
LaunchAppAndWait (tomcatStart,"",WAIT); 




end;
//---------------------------------------------------------------------------
// The UnInstalling event is sent just before the feature
// DefaultFeature is uninstalled.
//---------------------------------------------------------------------------

export prototype DefaultFeature_UnInstalling();
function DefaultFeature_UnInstalling()    
STRING tomcatStop,mysqlStop;
begin 
//取消服务注册   
//调用 启动mysql.bat
mysqlStop = TARGETDIR+"\\mysql5\\bin\\停止mysql.bat";
LaunchAppAndWait (mysqlStop,"",WAIT);
//ServiceRemoveService("OupuMysql222");  
//调用 启动tomcat.bat  
tomcatStop = TARGETDIR+"\\tomcat-5.5.20\\bin\\停止tomcat.bat";
LaunchAppAndWait (tomcatStop,"",WAIT); 

end;

4.添加uninstall快捷方式郁闷了N久.
  其实installshield本身已经自带uninstall程序.在你安装自己打包的程序时installshield会在C:\Program Files\下创建一个InstallShield Installation Information文件夹,下面再有一个{DE407BEB-F8AD-475F-AB69-73590C37D34F}的文件夹.DE407BEB-F8AD-475F-AB69-73590C37D34F是你程序的GUID 在General information-->product property-->product GUID可以看到..此文件夹下面有反安装程序.只要在setup动行的时候加一个 -uninst的参数就变成了卸载程序


知道这个就好办了.添加一个快捷方式.把路径指(target)定为<PROGRAMFILES>\InstallShield Installation Information\{DE407BEB-F8AD-475F-AB69-73590C37D34F}\Setup.exe,DE407BEB-F8AD-475F-AB69-73590C37D34F是你的GUID 自己手动替换一下.改一下Arguments参数为:/uninst

分享到:
评论

相关推荐

    如何使用 InstallShield12 打包WEB工程

    如何使用 InstallShield12 打包WEB工程 今天研究了一下用InstallShield12打包,顺便把代码给大家共享一下, 希望对刚接触的朋友有所帮助(我也是刚接触的),程序包括安装JDK,TOMCATE等等

    installshield打包web.doc

    在本文中,我们将深入探讨如何使用InstallShield打包ASP.NET项目,以便用户能够在目标计算机上顺利安装Web应用程序。 首先,创建一个新项目时,选择"Web project"类型至关重要。这样的好处在于,InstallShield会...

    Installshield程序打包之web程序数据库.pdf

    InstallShield程序打包之web程序数据库 InstallShield是一个强大的安装程序打包工具,能够帮助用户快速创建一个功能强大且高效的安装包。本文将指导用户使用InstallShield11.5版本创建一个web程序数据库的安装包,...

    如何使用installshield制作windows版本,及在已经有工程的情况下,怎么模仿使用

    以下是如何使用InstallShield制作Windows版本的详细步骤,以及在已有工程基础上进行模仿使用的指南。 **第一步:启动InstallShield** 首先,打开InstallShield软件。如果你已有一个项目工程,可以跳过此步骤,直接...

    InstallShield 制作安装程序(java web程序)

    本文主要探讨如何使用InstallShield工具来创建一个针对Java Web程序的.exe安装程序,该程序不仅包含了JDK(Java Development Kit),还集成了Resin服务器。 InstallShield是一款功能强大的安装制作软件,它允许...

    installshield最全的打包软件资料

    这个“installshield最全的打包软件资料”压缩包很可能是包含了一系列教程、手册、示例项目、脚本模板和其他资源,旨在帮助用户全面理解和掌握InstallShield的使用。 InstallShield的核心功能包括: 1. **项目创建...

    InstallShield 2008 User Guide

    《InstallShield 2008 用户指南》是针对软件安装制作工具InstallShield 2008的一款详尽的使用手册,旨在帮助开发者和系统管理员高效地创建、管理和部署软件安装包。InstallShield作为业界领先的安装制作软件,为各种...

    Installshield2008英文教程

    《深入理解Installshield2008:从标准项目到基本MSI项目的运行时架构解析》 在软件开发领域,安装程序的设计与实现是一项至关重要的任务,它不仅关乎用户体验,更直接影响到软件部署的成功率。在众多安装包制作工具...

    Installshield终极使用教程.doc

    Installshield终极使用教程.doc

    J2EE打包详解 Installshield

    参考提供的文档《Installshield12应用教程.doc》,可以深入学习如何使用这个版本进行J2EE应用的打包。文档可能涵盖如何配置安装项目、添加文件、编写脚本、定制用户界面以及生成安装包的详细步骤。 总之,...

    使用Installshield2010打包AE10.0+.NET4.0

    使用Installshield2010打包的整个流程

    installshield10.5打包AE程序

    2. 利用 InstallShield 的工程向导,将自己的程序打包进来。 3. 将所有需要安装的 AE 相关的文件准备好,并设置好他们在目标机器上的路径。 4. 写安装脚本,进行运行时及其补丁的安装和授权。 ### 十、安装脚本参数...

    微软安装程序打包工具InstallShield使用教程.zip

    InstallShield是微软推出的一款强大的安装程序打包工具,它被广泛应用于软件开发领域,用于创建专业级别的安装程序。这个工具以其用户友好的界面、强大的功能和灵活的定制性著称,使得开发者能够轻松地将应用程序...

    installshield打包程序资料

    1. **InstallShield基本概念**:InstallShield是一个强大的安装包构建器,它可以创建Windows安装程序,支持多种安装类型,包括单用户、多用户、网络、Web和可定制的安装。其核心功能包括文件复制、注册表编辑、启动...

    Winform打包教程(installShield)

    使用installShield打包Winform应用的步骤大致如下: 1. **新建项目**:打开InstallShield,选择合适的项目模板,例如“Basic MSI Project”或“Redistributable Package”,这取决于你的需求,是创建完整的安装程序...

    Installshield2008制作安装包详解(结合实际项目)

    ### Installshield2008制作安装包...通过这些详细的介绍,我们可以更好地理解如何使用Installshield2008来创建高质量的安装包。无论是从基础设置还是高级脚本编写,都有详细的指导帮助我们完成整个安装包的制作流程。

    Installshield使用详解,使用大全

    ### Installshield 使用详解及关键技术点解析 #### 一、Installshield 概述 **Installshield** 是一款业界领先的软件安装程序制作工具,以其强大的功能、直观的用户界面以及丰富的自定义选项著称。无论是初学者...

Global site tag (gtag.js) - Google Analytics