您的位置:首页 > 其它

install shierld的脚本

2015-09-16 13:26 525 查看
//===========================================================================

//

//  File Name:    Setup.rul

//

//  Description:  Blank setup main script file

//

//  Comments:     Blank setup is an empty setup project. If you want to

//      create a new project via. step-by step instructions use the

//      Project Assistant.

//

//===========================================================================

// Included header files ----------------------------------------------------

#include "ifx.h"

#include "utils.rul"

// Note: In order to have your InstallScript function executed as a custom

// action by the Windows Installer, it must be prototyped as an

// entry-point function.

// The keyword export identifies MyFunction() as an entry-point function.

// The argument it accepts must be a handle to the Installer database.

   

/* export prototype MyFunction(HWND); */

//---------------------------------------------------------------------------

// The Installing event is sent just before the feature

// 组件\WebServer is installed.

//---------------------------------------------------------------------------

//===========================================================================

#define BES   TARGETDIR^"Server\\BES\\BEventServer.exe"   

#define BAS   TARGETDIR^"Server\\BAS\\BAppServer.exe"   

#define BNMS   TARGETDIR^"Server\\BNMS\\NetManagerServer.exe"

#define ACSDAG  '"'+TARGETDIR^"Server\\ACS_DAG\\ACSDAGServer.exe"+'" '+'"'+"-service"+ '"'       

#define CCSDAG  '"'+TARGETDIR^"Server\\CCS_DAG\\CCSDAGServer.exe"+'" '+'"'+"-service"+ '"'      

#define ECSDAG  '"'+TARGETDIR^"Server\\ECS_DAG\\ECSDAGServer.exe"+'" '+'"'+"-service"+ '"'   

#define SERVER_PORT_FILE SUPPORTDIR^"ServerPort.dll"//判断端口是否被占用的库

BOOL bRequire; //标记必备组件安装情况

BOOL bBES;  //标记事件服务器安装情况

BOOL bBAS;  //标记行业服务器安装情况

BOOL bVRM;  //标记VRM安装情况

BOOL bNVR;  //标记PCNVR安装情况

BOOL bVMS;  //标记电视墙服务器安装情况

BOOL bStream; //标记流媒体服务器安装情况

BOOL bManager; //标记网管服务器的安装情况

BOOL bKPS;  //标记键盘代理服务器的安装情况    

BOOL bPSS;  //标记图片管理服务器安装情况

BOOL bGENDAG; //标记通用服务器安装情况     

BOOL bACSDAG; //标记门禁服务器安装情况   

BOOL bCCSDAG; //标记消费服务器安装情况

BOOL bECSDAG; //标记消费服务器安装情况 

BOOL bMAG;  //标记移动网关安装情况   

BOOL bVAG;  //标记视频接入网关安装情况

BOOL bInstallPostgrel;    //标记是否要安装Postgrel数据库

string szCmsIp;//平台地址

string szPort;//服务器端口

string szSqlIp;//sql地址

string szSqlPort;//sql端口

string szSqlUser;//sql用户名

string szSqlPwd;//sql密码

NUMBER iIsOracleSql;//1为是oracle数据库

 prototype   ServerPort.Init();//库的初始化

 prototype   ServerPort.UnInit();//库的反初始化

 prototype   BOOL ServerPort.ServerPortTest(BYREF STRING, INT); //检测端口是否占用

 prototype   BOOL ServerPort.HikKillProcess(BYREF STRING);  //根据进程名称,杀进程

 

export prototype BOOL CheckPort(NUMBER, STRING);//判断指定端口是否被占用 

export prototype BOOL CheckServer(NUMBER, STRING);//判断指定端口是否被占用

export prototype BOOL KillProcess(STRING);//判断指定端口是否被占用 

//检查程序是否正在运行,如果正在运行将其关闭。

prototype CheckProgramRun(STRING);  

function   CheckProgramRun(szProgramName)//返回0,没有运行,1正在运行,

INT   nRet;  

HWND   nHwnd;  

begin  

 if(szProgramName   =   "")   then  

  nRet   =   0;  

  return   nRet;  

 endif;  

 //得到句柄  

 nHwnd   =   FindWindow("",szProgramName);  

 if(nHwnd   !=   NULL)   then        

  nRet   =   1;  

  //发消息关闭程序  

  //SendMessage(nHwnd,   WM_SYSCOMMAND,   SC_CLOSE,   0);  

 else  

  nRet   =   0;  

 endif;  

 return   nRet;  

end;  

prototype CheckOrtherSql(); 

function   CheckOrtherSql()// 1  选择为Oracle数据库

INT   nRet; 

begin  

     if (AskYesNo("数据库选择为Oracle数据库", YES) = YES) then

        //MessageBox("选择数据库为Oracle数据库", SEVERE);  

        nRet = 1;

     else

        //MessageBox("不选择数据库为Oracle数据库", SEVERE);      

  nRet = 0;

     endif;

 iIsOracleSql = nRet;

 return   nRet;  

 

end;  

prototype GetOrlcleAddr(); 

function   GetOrlcleAddr()

STRING szTitle, szMsg;

string  szField1, szField2;  

NUMBER nResult;

begin  

 //获取共享平台和一卡通应用平台的IP地址

  szTitle = "请输入OrlCle数据库配置的参数";

  szMsg  = "配置OrlCle数据库的IP地址和端口\r\n\r\nIP地址是自动获取的,请确认是否正确!";

     szField1 = "IP:";

     szField2 = "端口:";

     szSqlIp = szCmsIp;

     szSqlPort = "1521";

  // Get source and target folder names.

    nResult = SdShowDlgEdit2 (szTitle, szMsg, szField1, szField2, szSqlIp,  szSqlPort);

    return nResult;

end;  

prototype GetOrlcleUsrPwd(); 

function   GetOrlcleUsrPwd()

STRING szTitle, szMsg;

string  szField1, szField2;  

NUMBER nResult;

begin  

 //获取共享平台和一卡通应用平台的IP地址

  szTitle = "请输入OrlCle数据库的用户名密码";

  szMsg  = "配置OrlCle数据库的用户名和密码\r\n\r\n请确认是否正确!";

     szField1 = "用户名:";

     szField2 = "密码:";

     szSqlUser= "system";

     szSqlPwd = "manager";

  // Get source and target folder names.

    nResult = SdShowDlgEdit2 (szTitle, szMsg, szField1, szField2, szSqlUser,  szSqlPwd);

    return nResult;

end;  

export prototype CreateOrlcleCfgFile();

function CreateOrlcleCfgFile()

    STRING  szTitle, szMsg;

    NUMBER  nvFileHandle;

begin

 DeleteFile ( TARGETDIR^"WEB\\orlcleCfg.bat" );

    // Set the file mode to append.

    OpenFileMode (FILE_MODE_APPEND);

    // Create a new file and leave it open.

    if (CreateFile (nvFileHandle, TARGETDIR^"WEB\\", "orlcleCfg.bat") < 0) then

        // Report the error.

        MessageBox ("CreateFile orlcleCfg.bat failed.", SEVERE);

    else

        // Set the message to write to the file.

        szMsg = "This line was appended by an example InstallShield script.";

        // Append the message to the file.

        if (WriteLine(nvFileHandle, "@set sqlip=" + szSqlIp) < 0) then

            // Report the error.

            MessageBox ("WriteLine failed.", SEVERE);

        else

   WriteLine(nvFileHandle, "@set sqlport=" + szSqlPort);

   WriteLine(nvFileHandle, "@set sqluser=" + szSqlUser);

   WriteLine(nvFileHandle, "@set sqlpwd=" + szSqlPwd);   

  

            // Report success.

            /*szTitle = "CreateFile & WriteLine";

            szMsg   = "Successfully created and wrote to %s.";

            SprintfBox (INFORMATION, szTitle, szMsg, "orlcleCfg.bat");*/

        endif;

    endif;

    // Close the file.

    CloseFile (nvFileHandle);

end;

 

function BOOL CheckPort(nPort, szServer)

    STRING szLocalIP;

    BOOL   bExist;//端口是否被占用

    NUMBER nResult;

begin 

      

    szLocalIP = "127.0.0.1";

    //加载库

    nResult = UseDLL(SERVER_POR
4000
T_FILE);

    if(nResult < 0)then

        SprintfBox(SEVERE, "","无法自动检测地址:%s:%d 是否被占用\n请手动检查",szLocalIP, nPort);

    endif;

   

    Init();  //初始化动态库

   

    bExist = ServerPortTest(szLocalIP, nPort); //检查端口是否被占用

   

    if(bExist = TRUE) then

        SprintfBox(SEVERE, "", "端口%d已经被占用,%s服务无法正常运行\n请先卸载或停止相关程序!", nPort, szServer);

    endif;

   

    UnInit();  //卸载库

   

    if(UnUseDLL(SERVER_PORT_FILE) < 0) then

        MessageBox("动态库卸载失败", SEVERE);

    endif;  

   

    return bExist;

 end;

 

function BOOL KillProcess(processname)//杀进程

 NUMBER nResult;

begin

 UseDLL(SERVER_PORT_FILE);

    HikKillProcess(processname);

    UnUseDLL(SERVER_PORT_FILE);

end;

function BOOL CheckServer(nPort, szServer)

    BOOL   bExist;//端口是否被占用

 BOOL   bExit;

 string strDescribe;

begin

 bExist = TRUE;

 bExit = FALSE;

    repeat

  bExist = CheckPort(nPort, szServer);

  if(bExist = TRUE) then

   Sprintf(strDescribe, "检测到端口%d冲突,请选择:\n是(Y):重试\n否(N):跳过", nPort);

   if(AskYesNo(strDescribe, YES) = YES) then

       ;

   else

       Sprintf(strDescribe, "跳过操作后服务运行异常,需手动修改服务[%s]端口[%d]", szServer, nPort);

    MessageBox(strDescribe, SEVERE);

    bExit = TRUE;

   endif;

  else

   bExit = TRUE; 

  endif;

 until(bExit = TRUE);

 

 return bExist;

end;

//---------------------------------------------------------------------------

// The Installed event is sent after the feature 必备组件

// is installed.

//---------------------------------------------------------------------------

export prototype Feature_Installed();

function Feature_Installed()

string strcmdline;

string strDate;

string strTime;

NUMBER nTmp;

begin

 //获取系统时间

 GetSystemInfo(DATE, nTmp, strDate);

 GetSystemInfo(TIME, nTmp, strTime);

 //打印日志

 strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 开始安装必备组件" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

 LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

       

 if(!bRequire)  then

  //SetStatusExStaticText("安装程序运行必备组件VC_x86Runtime.exe");

  //安装程序运行必备组件VC_x86Runtime.exe

  if ( LaunchAppAndWait(TARGETDIR ^ "WatchDog\\Microsoft Visual C++ 2008 SP1 Redistributable Package.exe", "/q",   WAIT) < 0) then

    SprintfBox(MB_OK, "VC运行库安装", "安装程序运行所必须的系统组件VC_x86Runtime失败,请手动安装!"); 

  endif;

   

  bRequire = TRUE;

 endif;

end;          

//---------------------------------------------------------------------------

// The UnInstalling event is sent just before the feature

// 必备组件 is uninstalled.

//---------------------------------------------------------------------------

export prototype Feature_UnInstalling();

function Feature_UnInstalling()

begin

 if(!bRequire)  then

  //SetStatusExStaticText("正在卸载windows VC X86 运行时库");

  //LaunchAppAndWait(TARGETDIR ^"WatchDog\\VC_x86Runtime.exe", "/qu",   WAIT);

  bRequire = TRUE;

 endif;

end;  

 

export prototype WebServer_Installing();

function WebServer_Installing()

string  strDescribe;

begin 

    //SetStatusExStaticText("正在安装WEB服务");

    //CheckServer(8081, "Tomcat"); //判断Tomcat的8081端口是否被占用

    //Sprintf(strDescribe, "检测tomcat端口[%d]", 8081);

 //MessageBox(strDescribe, SEVERE);

    //CheckServer(61618, "ActiveMQ"); //判断ActiveMQ的61618端口是否被占用

    //Sprintf(strDescribe, "检测ActiveMQ端口[%d]", 61618);

 //MessageBox(strDescribe, SEVERE);

end;

export prototype WebServer_UnInstalling();

function WebServer_UnInstalling()

string strcmdline;

string strDate;

string strTime;

NUMBER nTmp;

begin

       //卸载WebServer服务

  SetStatusExStaticText("正在卸载WEB服务");

  //获取系统时间

        GetSystemInfo(DATE, nTmp, strDate);

        GetSystemInfo(TIME, nTmp, strTime);

        //打印日志

        strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 开始卸载tomcat服务器" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

        LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

     ServiceStopService("HikEMS") ;

   

        //卸载tomcat

        strcmdline = "cmd.exe /c cd \"" + TARGETDIR^"WEB\\tomcat\\bin\""  + " &&  \"" + TARGETDIR^"WEB\\tomcat\\bin\\UninstallService.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

        LaunchAppAndWait ("", strcmdline , LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 卸载tomcat服务器成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

        LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

       

    //删除MQ服务

  ServiceStopService("ActiveMQ");

    

     strcmdline="cmd.exe /c cd \"" + TARGETDIR^"WEB\\apache activemq-5.10.0\\bin\"" + " && \"" + TARGETDIR^"WEB\\apache activemq-5.10.0\\bin\\win32\\UninstallService.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

     

     if LaunchAppAndWait ("", strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN) < 0 then

             GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

             strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] MQ服务删除失败" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  else

          GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

    strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] MQ服务删除成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  endif;

      

 

  //删除数据

  strcmdline = "cmd.exe /c cd \"" + TARGETDIR^"WEB\""  + " && \"" + TARGETDIR^"WEB\\Oracle_Uninstall.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

  SetStatusExStaticText("正在删除数据");

  if LaunchAppAndWait ("", strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN) < 0 then

    //MessageBox("批处理删除数据库脚本失败",WARNING);

    GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

    strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理删除数据库失败" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  else

    GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

    strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理删除数据库成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  endif; 

end;

//---------------------------------------------------------------------------

// The Installed event is sent after the feature 组件\WebService

// is installed.

//---------------------------------------------------------------------------

 

export prototype WebService_Installed();

function WebService_Installed()

NUMBER nResult;

string strcmdline;

string strDate;

string strTime;

string xmlparam;

NUMBER nTmp;

begin

       //安装必备组件

       Feature_Installed();

       if(iIsOracleSql == 1) then

   CreateOrlcleCfgFile(); 

   //执行Oracle数据库初始化脚本

   SetStatusExStaticText("正在执行Oracle数据库初始化脚本。。。");

   strcmdline = "cmd.exe /c echo %cd% && cd /d \"" + TARGETDIR^"WEB\""  + " && \"" + TARGETDIR^"WEB\\Oracle_Install.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

   if LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN) < 0 then

             MessageBox("执行Oracle数据库初始化脚本失败",WARNING);

             strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 执行Oracle数据库初始化脚本失败" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   else

    GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

    strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 执行Oracle数据库初始化脚本成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   endif;

       endif;

      

      

   //创建平台和服务器参数的配置文件

 

      //解压tomcat ROOT.war

   SetStatusExStaticText("正在解压WEB\\tomcat\\webapps\\ROOT.war...");

   strcmdline = "cmd.exe /c echo %cd% && cd /d \"" + TARGETDIR^"tools\\haozip\"" +

               "&&  HaoZipC.exe x ..\\..\\WEB\\tomcat\\webapps\\ROOT.war -o..\\..\\WEB\\tomcat\\webapps\\ROOT -y" +

                ">>\"" + TARGETDIR^"tools\\install.log\"" + " 2>>&1";

   LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  

  

  strcmdline = "cmd.exe /c echo ===================安装WEB服务服务器=============================" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

  LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

       SetStatusExStaticText("正在安装Web服务");

   

  //获取系统时间

        GetSystemInfo(DATE, nTmp, strDate);

        GetSystemInfo(TIME, nTmp, strTime);

        //打印日志

        strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 开始安装WEB服务" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

        LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

       

  //注册mq服务

   SetStatusExStaticText("正在安装MQ"); 

   strcmdline = "cmd.exe /c echo %cd% && cd /d \"" + TARGETDIR^"WEB\\apache activemq-5.10.0\""  + " && \"" + TARGETDIR^"WEB\\apache activemq-5.10.0\\bin\\win32\\InstallService.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

  

   if LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN) < 0 then

   MessageBox("安装MQ脚本失败",WARNING);

   strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 安装MQ脚本失败" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

   LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   else

   GetSystemInfo(DATE, nTmp, strDate);

   GetSystemInfo(TIME, nTmp, strTime);

   strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 安装MQ脚本成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

   LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   ServiceStartService("ActiveMQ","");

   endif;

  

  

          

        //创建平台和服务器参数的配置文件

  strcmdline = "cmd.exe /c echo CMSIP=" + szCmsIp +  ">\"" + TARGETDIR^"tools\\servercfg.ini\"";

  LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT| LAAW_OPTION_HIDDEN);

  strcmdline = "cmd.exe /c echo ServerPORT=" + szPort + ">>\"" + TARGETDIR^"tools\\servercfg.ini\"";

  LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT| LAAW_OPTION_HIDDEN);

  strcmdline = "cmd.exe /c echo installdir=" + TARGETDIR + ">>\"" + TARGETDIR^"tools\\servercfg.ini\"";

  LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT| LAAW_OPTION_HIDDEN);

  //修改服务器的配置文件中的平台和服务地址

  LaunchAppAndWait(TARGETDIR^"tools\\tomcatPort.bat", "" , LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

     strcmdline = "cmd.exe /c echo server.xml修改成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

  LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  

  if szPort = "80"  then

   SetStatusExStaticText("检查并停止http服务,防止占用80端口");   

   LaunchAppAndWait(TARGETDIR^"tools\\stopHttpSvr.bat", "" , LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   strcmdline = "cmd.exe /c echo 检查并停止http服务,防止占用80端口" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

   LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  endif;

  

  

       //安装tomcat服务

       SetStatusExStaticText("正在安装HikEMS服务");

       if(ServiceExistsService("HikEMS") = TRUE)then

         strcmdline = "cmd.exe /c echo 正在卸载HikEMS服务" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

   LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   LaunchAppAndWait (TARGETDIR^"WEB\\tomcat\\bin\\UninstallService.bat", "", LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

    endif;

   

     strcmdline = "cmd.exe /c echo 下步正在安装tomcat服务" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

   LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   

  //SetStatusExStaticText("正在安装tomcat服务");

     strcmdline = "cmd.exe /c echo %cd% && cd /d \"" + TARGETDIR^"WEB\\tomcat\\bin\""  + " &&  \"" + TARGETDIR^"WEB\\tomcat\\bin\\InstallService.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

  if LaunchAppAndWait ("", strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN) < 0 then

   MessageBox("InstallService.bat 程序执行失败",WARNING);

   strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理安装tomcat失败" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

   LaunchAppAnd
126d3
Wait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

     else

   GetSystemInfo(DATE, nTmp, strDate);

   GetSystemInfo(TIME, nTmp, strTime);

   strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理安装tomcat成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

   LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  endif;

  

  strcmdline = "cmd.exe /c echo ===============================================================" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

  LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN); 

end;

//---------------------------------------------------------------------------

// The UnInstalled event is sent after the feature 组件\WebServer

// is uninstalled.

//---------------------------------------------------------------------------

 

export prototype WebServer_UnInstalled();

function WebServer_UnInstalled()

begin

    DeleteDir( TARGETDIR^"WEB", ALLCONTENTS);

end;

//---------------------------------------------------------------------------

// The PostgreSQL_UnInstalling event is sent after the feature 组件\PostgreSQL_UnInstalling

// is uninstalled.

//---------------------------------------------------------------------------

 

export prototype PostgreSQL_UnInstalling();

function PostgreSQL_UnInstalling()

string strcmdline;

string strDate;

string strTime;

NUMBER nTmp;

begin

  //获取系统时间

        GetSystemInfo(DATE, nTmp, strDate);

        GetSystemInfo(TIME, nTmp, strTime);

       

  //删除数据

  strcmdline = "cmd.exe /c cd \"" + TARGETDIR^"WEB\\PostgreSQL\""  + " && \"" + TARGETDIR^"WEB\\PostgreSQL\\Uninstall.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

  SetStatusExStaticText("正在删除数据");

     if LaunchAppAndWait ("", strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN) < 0 then

             //MessageBox("批处理删除数据库脚本失败",WARNING);

             GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

             strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理删除数据库失败" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  else

          GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

    strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理删除数据库成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  endif; 

  

  //删除数据库

  strcmdline = "cmd.exe /c cd \"" + TARGETDIR^"WEB\\PostgreSQL\\9.0\\bin\""  + " && \"" + TARGETDIR^"WEB\\PostgreSQL\\9.0\\bin\\UninstallService.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

     if LaunchAppAndWait ("", strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN) < 0 then

             GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

             strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理删除数据库失败" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  else

          GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

    strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理删除数据库成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  endif;

end;

//---------------------------------------------------------------------------

// The Installed event is sent after the feature 组件\PostgreSQL_Installed

// is installed.

//---------------------------------------------------------------------------

 

export prototype PostgreSQL_Installed();

function PostgreSQL_Installed()

NUMBER nResult;

string strcmdline;

string strDate;

string strTime;

string xmlparam;

NUMBER nTmp;

begin

  //获取系统时间

        GetSystemInfo(DATE, nTmp, strDate);

        GetSystemInfo(TIME, nTmp, strTime);

       

  strcmdline = "cmd.exe /c echo ===================安装PostgreSQL =============================" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

     LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

       SetStatusExStaticText("正在安装PostgreSQL服务");

  

   //判断 PG 是否安装

   if(ServiceExistsService("PostgreSQL") = TRUE)then

  bInstallPostgrel = FALSE;

  else

     bInstallPostgrel = TRUE;//安装新的Postgrel服务

  endif;

   

    if(bInstallPostgrel = FALSE) then//有老的PostgreSQL,不需要安装新的Postgrel,删除卸载文件

           //执行数据库安装脚本

           //打印日志

   strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 数据库服务已安装,安装数据库初始化脚本" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

   LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   

   strcmdline = "cmd.exe /c echo %cd% && cd /d \"" + TARGETDIR^"PostgreSQL\""  + " &&  \"" + TARGETDIR^"PostgreSQL\\Install.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

   if LaunchAppAndWait ("" , strcmdline,  LAAW_OPTION_WAIT) < 0 then

             MessageBox("批处理安装数据库脚本失败",WARNING);

             GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

             strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理安装数据库脚本失败" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   endif;

   

   //删除卸载文件

   DeleteFile( TARGETDIR^"PostgreSQL\\9.0\\bin\\UninstallService.bat");

   

    else//安装了新的Postgrel服务

   //执行安装服务

   SetStatusExStaticText("正在安装PostgreSQL服务");

   strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 数据库服务未安装,安装数据库服务PostgreSQL--9.0---bin--InstallService.bat" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

   LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   

   strcmdline = "cmd.exe /c echo %cd% && cd /d \"" + TARGETDIR^"PostgreSQL\\9.0\\bin\""  + " && \"" + TARGETDIR^"PostgreSQL\\9.0\\bin\\InstallService.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

   if LaunchAppAndWait ("", strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN) < 0 then

             MessageBox("批处理安装数据库服务失败",WARNING);

             MessageBox("批处理安装数据库脚本失败",WARNING);

             GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

             strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理安装数据库服务失败" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   else

    GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

    strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理安装数据库服务成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   endif;

   

   //启动数据库服务器

   ServiceStartService("PostgreSQL","");

            strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 执行数据库安装脚本---begin...." + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

   LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   

      //执行数据库安装脚本

   SetStatusExStaticText("正在安装PostgreSQL数据库初始脚本。。。");

   strcmdline = "cmd.exe /c echo %cd% && cd /d \"" + TARGETDIR^"PostgreSQL\""  + " && \"" + TARGETDIR^"PostgreSQL\\Install.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

   if LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN) < 0 then

             MessageBox("批处理安装数据库脚本失败",WARNING);

             strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理安装数据库脚本失败" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   else

    GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

    strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 批处理安装数据库脚本成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

   endif;

  endif;

end;

 

//---------------------------------------------------------------------------

// The Installing event is sent just before the feature

// 组件\WebServer is installed.

//---------------------------------------------------------------------------

 

export prototype EPDAG_Installing();

function EPDAG_Installing()

begin 

    //SetStatusExStaticText("正在安装环保数据接入网关");

end;

//---------------------------------------------------------------------------

// The Installed event is sent after the feature 组件\WebService

// is installed.

//---------------------------------------------------------------------------

 

export prototype EPDAG_Installed();

function EPDAG_Installed()

string strcmdline;

string strDate;

string strTime;

NUMBER nTmp;

string strFile;

begin

       

  strcmdline = "cmd.exe /c echo ===================安装环保数据接入网关=============================" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

        LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

       

        SetStatusExStaticText("正在安装环保数据接入网关");

       

        //获取系统时间

        GetSystemInfo(DATE, nTmp, strDate);

        GetSystemInfo(TIME, nTmp, strTime);

        //打印日志

        strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 开始安装环保数据接入网关" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

        LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

       

        strcmdline = "cmd.exe /c echo %cd% && cd /d \"" + TARGETDIR^"EPDAG\""  + " &&  \"" + TARGETDIR^"EPDAG\\install.bat\"" + " >> \"" + TARGETDIR^"install.log\" " + " 2>>&1";

       

        if LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN) < 0 then

             MessageBox("批处理安装EPDAG失败",WARNING);

             GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

             strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 环保数据接入网关安装失败" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  else

          GetSystemInfo(DATE, nTmp, strDate);

    GetSystemInfo(TIME, nTmp, strTime);

    strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 环保数据接入网关安装成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

    LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

     endif;

    

     strcmdline = "cmd.exe /c echo =============================================================" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

        LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

end;

//---------------------------------------------------------------------------

// The UnInstalled event is sent after the feature 组件\WebServer

// is uninstalled.

//---------------------------------------------------------------------------

 

export prototype EPDAG_UnInstalled();

function EPDAG_UnInstalled()

begin

     //删除记录日志

 DeleteDir( TARGETDIR^"EPDAG", ALLCONTENTS);

end;

export prototype EPDAG_UnInstalling();

function EPDAG_UnInstalling()

string strcmdline;

string strDate;

string strTime;

NUMBER nTmp;

begin

        strcmdline = "cmd.exe /c echo ===================卸载环保数据接入网关=============================" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

        LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

        //卸载AMS

       SetStatusExStaticText("正在卸载环保数据接入网关"); 

  KillProcess("EPDAG.exe");

  

   //获取系统时间

        GetSystemInfo(DATE, nTmp, strDate);

        GetSystemInfo(TIME, nTmp, strTime);

        //打印日志

        strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 开始卸载环保数据接入网关" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

        LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

       

        ServiceStopService("EPDAG");

        ServiceRemoveService("EPDAG"); 

       

        strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 环保数据接入网关卸载成功" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

  LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

    

  

  

end;

//---------------------------------------------------------------------------

// OnAppSearch

//

// The OnAppSearch event is called after OnBegin and can be used to search

// for previous versions of the current application. This event is called

// only when the setup is running in first install mode.

//---------------------------------------------------------------------------

function OnAppSearch()

begin

end;

//---------------------------------------------------------------------------

// OnFilterComponents

//

// The OnFilterComponents event is called by the framework to filter out

// components in each feature by language and platform, override this

// event to perform custom filtering.

//

// Note: This event will not be called automatically in a

// program...endprogram style setup.

//---------------------------------------------------------------------------

function OnFilterComponents()

begin

    // Filter file groups by current platform.

    FeatureFilterOS(MEDIA, 0, ISOSL_ALL, TRUE);

    FeatureFilterOS(MEDIA, 0, SYSINFO.nISOSL, FALSE);

 

    // Filter file groups by current language.

    FeatureFilterLanguage(MEDIA, ISLANG_ALL, TRUE);

    FeatureFilterLanguage(MEDIA, STANDARD_SELECTED_LANGUAGE, FALSE);

   

end;

//---------------------------------------------------------------------------

// OnFirstUIBefore

//

// The OnFirstUIBefore event is called by the framework when the setup is

// running in first install mode. By default this event displays UI allowing

// the end user to specify installation parameters.

//---------------------------------------------------------------------------

function OnFirstUIBefore()

    NUMBER nResult, nSetupType, nvSize, nUser;

    STRING szTitle, szMsg, szQuestion, svName, svCompany, szFile;

    STRING szLicenseFile;

 BOOL bCustom, bIgnore1, bIgnore2;

 

  string strcmdline;

 string strDate;

 string strTime;

 NUMBER nTmp;

 string  szField1, szField2;

begin

    // TO DO: if you want to enable background, window title, and caption bar title                                                                  

    // SetTitle( @PRODUCT_NAME, 24, WHITE );                                       

    // SetTitle( @PRODUCT_NAME, 0, BACKGROUNDCAPTION );                   

    // Enable( FULLWINDOWMODE );        

    // Enable( BACKGROUND );        

    // SetColor(BACKGROUND,RGB (0, 128, 128));       

    // Added in InstallShield 15 - Show an appropriate error message if

    // -removeonly is specified and the product is not installed.

    if( REMOVEONLY ) then

        Disable( DIALOGCACHE );

  szMsg = SdLoadString( IDS_IFX_ERROR_PRODUCT_NOT_INSTALLED_UNINST );

     SdSubstituteProductInfo( szMsg );

  MessageBox( szMsg, SEVERE );

  abort;

    endif;

   

 nSetupType = TYPICAL; 

   

 //获取系统时间

 GetSystemInfo(DATE, nTmp, strDate);

 GetSystemInfo(TIME, nTmp, strTime);

 

 strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "]  ===================开始安装=============================" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

 LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

       

       

Dlg_SdWelcome:

    szTitle = "";

    szMsg   = "";

    nResult = SdWelcome(szTitle, szMsg);

    if (nResult = BACK) goto Dlg_SdWelcome;

 

 szTitle   = "";

 svName    = "";

    svCompany = "";

Dlg_SdRegisterUser:

    szMsg = "";

    szTitle = "";

    nResult = SdRegisterUser( szTitle, szMsg, svName, svCompany );

    if (nResult = BACK) goto Dlg_SdWelcome;

Dlg_SetupType:

    szTitle = "";

    szMsg   = "";

    nSetupType = TYPICAL;

    nResult = SetupType2(szTitle, szMsg, "", nSetupType, 0);

    if (nResult = BACK) then

        goto Dlg_SdRegisterUser;

    else

     nSetupType = nResult;

        if (nSetupType != CUSTOM) then

         nvSize = 0;

         FeatureCompareSizeRequired(MEDIA, INSTALLDIR, nvSize);

         if (nvSize != 0) then     

             MessageBox(szSdStr_NotEnoughSpace, WARNING);

             goto Dlg_SetupType;

            endif;

   bCustom = FALSE;

   goto Dlg_SQL;

  else

   bCustom = TRUE;

        endif;

    endif;   

Dlg_SdAskDestPath:     

    nResult = SdAskDestPath(szTitle, szMsg, INSTALLDIR, 0);

    if (nResult = BACK) goto Dlg_SetupType;

Dlg_SdFeatureTree:

    szTitle    = "";

    szMsg      = "";

   

    if (nSetupType = CUSTOM) then

  nResult = SdFeatureTree(szTitle, szMsg, INSTALLDIR, "", 2);

  if (nResult = BACK) goto Dlg_SdAskDestPath; 

    endif;

      // Display the user's selections.

      //SprintfBox (INFORMATION, szTitle, "svEdit1: %s\n\nsvEdit2: %s",

      //            szCmsIp, szServerIp);

Dlg_SQL:

    nResult = OnSQLLogin( nResult );

    if( nResult = BACK ) then

     if (!bCustom) then

      goto Dlg_SetupType;   

     else

      goto Dlg_SdFeatureTree;

     endif;

    endif;

   

Dlg_SdStartCopy:

 //获取本机的IP地址

  szCmsIp = GetLocalIP();

 if( CheckOrtherSql() = 1 )then

  if( GetOrlcleAddr() == BACK) then

   goto Dlg_SQL;

  endif;

  if( GetOrlcleUsrPwd() == BACK) then

   goto Dlg_SQL;

  endif;

 endif;

 //获取共享平台和一卡通应用平台的IP地址

  szTitle = "请输入配置的参数";

  szMsg  = "配置加油站平台的IP地址和端口\r\n\r\nIP地址是自动获取的,请确认是否正确!";

     szField1 = "平台IP:";

     szField2 = "平台端口:";

     szPort = "80";

    

  // Get source and target folder names.

     nResult = SdShowDlgEdit2 (szTitle, szMsg, szField1, szField2, szCmsIp,  szPort);

    if (nResult = BACK)  then //后退

      goto Dlg_SQL;

    endif;

    

    szTitle = "";

    szMsg   = "";

    nResult = SdStartCopy2( szTitle, szMsg );   

 

    if (nResult = BACK) then

       goto Dlg_SQL;;

    endif;

    // Added in IS 2009 - Set appropriate StatusEx static text.

    //SetStatusExStaticText( SdLoadString( IDS_IFX_STATUSEX_STATICTEXT_FIRSTUI ) );

    // setup default status

    Enable(STATUSEX);

 

    return 0;

end;

 

 

 

export prototype Servers_Installing();

function Servers_Installing()

string strDate;

string strTime;

NUMBER nTmp;

string strcmdline;

begin 

    GetSystemInfo(DATE, nTmp, strDate);

 GetSystemInfo(TIME, nTmp, strTime);

 //打印日志

 strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "] 开始安装服务组件" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

 LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

end;

export prototype Servers_UnInstalling();

function Servers_UnInstalling()

begin

      

      

end;

//---------------------------------------------------------------------------

// The Installed event is sent after the feature 组件\WebService

// is installed.

//---------------------------------------------------------------------------

 

export prototype Servers_Installed();

function Servers_Installed()

string strcmdline;

string strDate;

string strTime;

NUMBER nTmp;

begin

 //获取系统时间

 

    //安装必备组件

    Feature_Installed();

   

   

  //创建平台和服务器参数的配置文件

  strcmdline = "cmd.exe /c echo CMSIP=" + szCmsIp +  ">\"" + TARGETDIR^"tools\\servercfg.ini\"";

  LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT| LAAW_OPTION_HIDDEN);

  strcmdline = "cmd.exe /c echo ServerPORT=" + szPort + ">>\"" + TARGETDIR^"tools\\servercfg.ini\"";

  LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT| LAAW_OPTION_HIDDEN);

  strcmdline = "cmd.exe /c echo installdir=" + TARGETDIR + ">>\"" + TARGETDIR^"tools\\servercfg.ini\"";

  LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT| LAAW_OPTION_HIDDEN);

 //修改服务器的配置文件中的平台和服务地址

  LaunchAppAndWait(TARGETDIR^"tools\\configtool.bat", "", LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

  

    if ( LaunchAppAndWait(TARGETDIR ^ "WatchDog\\ServiceWatchdog.exe", "",   NOWAIT) < 0) then

  SprintfBox(MB_OK, "看门狗", "启动看门狗失败,请手动安装!"); 

 endif;

end;

//---------------------------------------------------------------------------

// The UnInstalled event is sent after the feature 组件\WebServer

// is uninstalled.

//---------------------------------------------------------------------------

 

export prototype Servers_UnInstalled();

function Servers_UnInstalled()

begin

    //删除记录日志

 DeleteDir( TARGETDIR^"Server", ALLCONTENTS);

end;

//---------------------------------------------------------------------------

// OnBegin

//

// The OnBegin event is called directly by the framework after the setup

// initializes.

//---------------------------------------------------------------------------

function OnBegin()

begin

 // TO DO: you may change default non-UI setting, for example

 //

 // You may also perform your custom initialization steps, check requirements, etc. 

 // You may also perform your custom initialization steps, check requirements, etc.

end;

//---------------------------------------------------------------------------

// OnMaintUIBefore

//

// The OnMaintUIBefore event is called by the framework when the setup is

// running in maintenance mode. By default this event displays UI that

// allows the end user to add or remove features, repair currently

// installed features or uninstall the application.

//---------------------------------------------------------------------------

function OnMaintUIBefore()

 NUMBER nResult, nType;

 STRING szTitle, szMsg, svDir, svResult, szCaption;

begin

 // TO DO: if you want to enable background, window title, and caption bar title           

 // SetTitle( @PRODUCT_NAME, 24, WHITE );     

 // SetTitle( @PRODUCT_NAME, 0, BACKGROUNDCAPTION );     

 // SetColor(BACKGROUND,RGB (0, 128, 128));     

 // Enable( FULLWINDOWMODE );      

 // Enable( BACKGROUND );       

 //if (CheckProgramRun("Watchdog") = 1) then

  //LaunchAppAndWait("", "taskkill /f /im ServiceWatchdog.exe", LAAW_OPTION_HIDDEN|WAIT );     

  //Delay(2);

  //MessageBox ("在执行操作之前,请先停止服务管理程序ServiceWatchdog.", SEVERE); 

  //KillProcess("ServiceWatchdog.exe");

  LaunchAppAndWait("", "taskkill /f /im ServiceWatchdog.exe", LAAW_OPTION_HIDDEN|WAIT );     

 //endif;  

Dlg_Start:

    // Added in Version 9.5 - Support for REMOVEONLY option.

    if( !REMOVEONLY ) then

  // In standard mode show maintenance dialog

  Disable(BACKBUTTON);

  nType = SdWelcomeMaint(szTitle, szMsg, MODIFY);

  Enable(BACKBUTTON);

 else

        // Hide the initial progress dialog as otherwise the user can

        // click on it, and hide the MessageBox.

        Disable( DIALOGCACHE );

        // In RemoveOnly mode, set to remove.

        nType = REMOVEALL;

    endif;

 

 // Show Uninstall Confirmation Dialog

    if ( nType = REMOVEALL ) then

  nResult = MessageBox( SdLoadString( IFX_MAINTUI_MSG ), MB_YESNO );

  if (nResult != IDYES ) then

           

            if( REMOVEONLY ) then

                // In REMOVEONLY mode, abort the setup.

                abort;

            else

                // In non-REMOVEONLY mode, redisplay the previous dialog.

       goto Dlg_Start;

            endif;

  endif;

 endif;

 nResult = NEXT;

Dlg_SdFeatureTree:

 if (nType = MODIFY) then

  szTitle = "";

  szMsg = "";

  nResult = SdFeatureTree(szTitle, szMsg, INSTALLDIR, "", 2);

  if (nResult = BACK) goto Dlg_Start;

 endif;

 switch(nType)

        case REMOVEALL:

       

            ComponentRemoveAll();

            // Added in IS 2009 - Set appropriate StatusEx static text.

            SetStatusExStaticText( SdLoadString( IDS_IFX_STATUSEX_STATICTEXT_MAINTUI_REMOVEALL ) );

        case REPAIR:

       

            ComponentReinstall();

            // Added in IS 2009 - Set appropriate StatusEx static text.

            SetStatusExStaticText( SdLoadString( IDS_IFX_STATUSEX_STATICTEXT_MAINTUI_REPAIR ) );

        case MODIFY:

            // Added in IS 2009 - Set appropriate StatusEx static text.

            SetStatusExStaticText( SdLoadString( IDS_IFX_STATUSEX_STATICTEXT_MAINTUI_MODIFY ) );

    endswitch;

   

 Enable(STATUSEX);

end;

 

export prototype WatchDog_UnInstalled();

function WatchDog_UnInstalled()

begin

    //删除记录日志

 DeleteDir( TARGETDIR^"WatchDog", ALLCONTENTS);

end;

 

//---------------------------------------------------------------------------

// The Installing event is sent just before the feature

// 组件\WebServer is installed.

//---------------------------------------------------------------------------

 

export prototype Door_Installed();

function Door_Installed()

string strcmdline;

string strDate;

string strTime;

NUMBER nTmp;

begin

        //获取系统时间

        GetSystemInfo(DATE, nTmp, strDate);

        GetSystemInfo(TIME, nTmp, strTime);

       

  strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "]  ===================安装结束=============================" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

        LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

end;

//---------------------------------------------------------------------------

// OnEnd

//

// The OnEnd event is called at the end of the setup. This event is not

// called if the setup is aborted.

//---------------------------------------------------------------------------

function OnEnd()

string strcmdline;

string strDate;

string strTime;

NUMBER nTmp;

begin

        //获取系统时间

        GetSystemInfo(DATE, nTmp, strDate);

        GetSystemInfo(TIME, nTmp, strTime);

       

  strcmdline = "cmd.exe /c echo [" + strDate + " " + strTime + "]  ===================安装结束=============================" + ">>\"" + TARGETDIR^"install.log\"" + " 2>>&1";

        LaunchAppAndWait ("" , strcmdline, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: