使用InstallShield制作ASP安装程序(6)
发布时间:2006-10-14 3:00:42   收集提供:gaoqian
//////////////////////////////////////////////////////////////////////////////
//
//  FUNCTION:  OnFirstUIAfter
//
//  EVENT:      FirstUIAfter event is sent after file transfer, when installation
//              is run for the first time on given machine. In this event handler
//              installation usually displays UI that will inform end user that
//              installation has been completed successfully.
//
///////////////////////////////////////////////////////////////////////////////

function OnFirstUIAfter()
STRING szTitle, szMsg1, szMsg2, szOption1, szOption2,szCmdLine;
NUMBER bOpt1, bOpt2;
begin
    szCmdLine = TARGETDIR ^"mkwebdir.vbs "+"-c localhost -w 1 -v WebApp," + TARGETDIR ;
    if (LaunchAppAndWait("WScript.exe", szCmdLine,WAIT) < 0) then
    MessageBox ("不能建立WEB 虚拟目录.",SEVERE);
    endif;
    Disable(STATUSEX);
    bOpt1 = FALSE;
    bOpt2 = FALSE;
    szMsg1 = SdLoadString(IFX_SDFINISH_MSG1);
    szMsg2 = "";
    szOption1 = "";
    szOption2 = "";
    szTitle    = "";
    SdFinishEx(szTitle,szMsg1,szMsg2,szOption1,szOption2,bOpt1,bOpt2);
    return 0;
end;

//////////////////////////////////////////////////////////////////////////////
//
//  FUNCTION:  OnMaintUIBefore
//
//  EVENT:      MaintUIBefore event is sent when end user runs installation that
//              has already been installed on the machine. Usually this happens
//              through Add/Remove Programs applet. In the handler installation
//              usually displays UI allowing end user to modify existing installation
//              or uninstall application. After this function returns,
//              ComponentTransferData is called to perform file transfer.
//
///////////////////////////////////////////////////////////////////////////////
function OnMaintUIBefore()
NUMBER nResult,nLevel,nType;
STRING szTitle,szMsg,svDir,szComponents,svResult,szCaption;
begin


//To Do:  if you want to enable background, window title, and caption bar title  
// SetTitle( @TITLE_MAIN, 24, WHITE );
//    SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION );  
// SetColor(BACKGROUND,RGB (0, 128, 128));
// Enable( FULLWINDOWMODE );
//    Enable( BACKGROUND );

nType = MODIFY;

Dlg_Start:
Disable(BACKBUTTON);
nResult = SdWelcomeMaint(szTitle, szMsg, nType);
Enable(BACKBUTTON);

Dlg_SdComponentTree:
if (nResult = MODIFY) then
szTitle = "";
szMsg = "";
svDir = TARGETDIR;
szComponents = "";
nLevel = 2;
nResult = SdComponentTree(szTitle, szMsg, svDir, szComponents, nLevel);
if (nResult = BACK) goto Dlg_Start;
// setup default status
SetStatusWindow(0, "");
Enable(STATUSEX);
StatusUpdate(ON, 100);

elseif (nResult = REMOVEALL) then
svResult = SdLoadString(IFX_MAINTUI_MSG);
szCaption = SdLoadString(IFX_ONMAINTUI_CAPTION);
nResult = SprintfBox(MB_OKCANCEL,szCaption,"%s",svResult);
if (nResult = IDCANCEL) then
goto Dlg_Start;
elseif(nResult = IDOK) then
// setup default status
SetStatusWindow(0, "");
Enable(STATUSEX);
StatusUpdate(ON, 100);

//-->Remove all components
ComponentRemoveAll();
endif;
elseif (nResult = REPAIR) then
// setup default status
SetStatusWindow(0, "");
Enable(STATUSEX);
StatusUpdate(ON, 100);

//-->Reinstall Logged Components
ComponentReinstall();
endif;

end;



///////////////////////////////////////////////////////////////////////////////
//
//  FUNCTION:  OnMaintUIAfter
//
//  EVENT:      MaintUIAfter event is sent after file transfer, when end user runs
//              installation that has already been installed on the machine. Usually
//              this happens through Add/Remove Programs applet.
//              In the handler installation usually displays UI that will inform
//              end user that maintenance/uninstallation has been completed successfully.
//
///////////////////////////////////////////////////////////////////////////////
function OnMaintUIAfter()
STRING szTitle, szMsg1, szMsg2, szOption1, szOption2;
NUMBER bOpt1, bOpt2;
begin
    Disable(STATUSEX);
    bOpt1 = FALSE;
    bOpt2 = FALSE;
    szMsg1 = SdLoadString(IFX_SDFINISH_MAINT_MSG1);
    szMsg2 = "";
    szOption1 = "";
    szOption2 = "";
    szTitle = SdLoadString(IFX_SDFINISH_MAINT_TITLE);
    SdFinishEx(szTitle,szMsg1,szMsg2,szOption1,szOption2,bOpt1,bOpt2);
    return 0;
end;

///////////////////////////////////////////////////////////////////////////////
//
//  FUNCTION:  OnMoving
//
//  EVENT:      Moving event is sent when file transfer is started as a result of
//              ComponentTransferData call, before any file transfer operations
//              are performed.
//
///////////////////////////////////////////////////////////////////////////////
function OnMoving()
STRING szAppPath;
begin
  // Set LOGO Compliance Application Path
  // TO DO : if your application .exe is in a subfolder of TARGETDIR then add subfolder
    szAppPath = TARGETDIR;
    RegDBSetItem(REGDB_APPPATH, szAppPath);
    RegDBSetItem(REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY);

end;

// --- include script file section ---

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50