用ASP制作InstallShield安装程序(2)

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

6.3版好象是用事件驱动的:

//////////////////////////////////////////////////////

//

// 函数: OnFirstUIBefore

//

// 事件: FirstUIBefore event is sent when installation is run for the first

// time on given machine. In the handler installation usually displays

// UI allowing end user to specify installation parameters. After this

// function returns, ComponentTransferData is called to perform file

// transfer.

//

//////////////////////////////////////////////////////

OnFirstUIBefore()是在某台电脑上第一次运行安装时执行.

//////////////////////////////////////////////////////

//

// 函数: OnFirstUIAfter

//

// 事件: 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.

//

//////////////////////////////////////////////////////

OnFirstUIAfter()在文件复制结束后运行.

下面是建立Web文件和设置的例子需VBS文件(有虚拟目录设置,但没有权限设置).

////////////////////////////////////////////////////////////////////////////////

//

// IIIIIII SSSSSS

// II SS InstallShield (R)

// II SSSSSS (c) 1996-1999, InstallShield Software Corporation

// II SS (c) 1990-1996, InstallShield Corporation

// IIIIIII SSSSSS All Rights Reserved.

//

//

// This code is generated as a starting setup template. You should

// modify it to provide all necessary steps for your setup.

//

//

// 文件名: Setup.rul

//

// 描述: InstallShield script

//

// 注释: This template script performs a basic setup. With minor

// modifications, this template can be adapted to create

// new, customized setups.

//

////////////////////////////////////////////////////////////////////////////////

// 包含的头文件

#include "ifx.h" //不能移动

////////////////////// string defines ////////////////////////////

//////////////////// installation declarations ///////////////////

// ----- DLL function prototypes -----

// your DLL function prototypes

// ---- script function prototypes -----

// your script function prototypes

prototype CHK_serial(STRING,STRING);

prototype RegODBC(STRING);

prototype set_vod_liveaddress();

// your global variables

STRING szvodservername;

STRING szliveservername;

//////////////////////////////////////////////////////////////////////////////

//

// 函数: OnFirstUIBefore

//

// 事件: FirstUIBefore event is sent when installation is run for the first

// time on given machine. In the handler installation usually displays

// UI allowing end user to specify installation parameters. After this

// function returns, ComponentTransferData is called to perform file

// transfer.

//

///////////////////////////////////////////////////////////////////////////////

function OnFirstUIBefore()

NUMBER nResult,nSetupType;

STRING szTitle, szMsg;

STRING szLicenseFile, szQuestion;

STRING svName, sVCompany, svSerial;

STRING szFile;

STRING szTargetPath;

STRING szDir;

STRING szfolder;

STRING szComponents, szTargetdir;

//zy

STRING szDefault,svResult;

STRING sDBSERVERNAME;

OBJECT piisObj;

//zy

NUMBER nLevel;

LIST listStartCopy;

LIST list;

NUMBER nvSize;

STRING msg;

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 );

// Enable( FULLWINDOWMODE );

// Enable( BACKGROUND );

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

nSetupType = TYPICAL;

TARGETDIR = "D:\\"^"cyclone2000\\";

szDir = TARGETDIR;

SHELL_OBJECT_FOLDER = @FOLDER_NAME;

svName = "";

svCompany = "";

svSerial = "";

Dlg_Start:

// beginning of dialogs label

Dlg_SdWelcome: //欢迎 对话框

szTitle = "";

szMsg = "";

nResult = SdWelcome( szTitle, szMsg );

if (nResult = BACK) goto Dlg_Start;

Dlg_SdLicense://软件许可协议 对话框

szLicenseFile = SUPPORTDIR ^ "license.txt";

szTitle = "";

szMsg = "";

szQuestion = "";

nResult = SdLicense( szTitle, szMsg, szQuestion, szLicenseFile );

if (nResult = BACK) goto Dlg_SdWelcome;

Dlg_SdShowInfoList://readme文件 对话框

szFile = SUPPORTDIR ^ "infolist.txt";

list = ListCreate( STRINGLIST );

ListReadFromFile( list, szFile );

szTitle = "";

szMsg = "";

nResult = SdShowInfoList( szTitle, szMsg, list );

ListDestroy( list );

if (nResult = BACK) goto Dlg_SdLicense;

Dlg_SdReGISterUserEx://用户信息 对话框

szMsg = "";

szTitle = "";

nResult = SdRegisterUserEx( szTitle, szMsg, svName, svCompany, svSerial );

if (nResult = BACK) goto Dlg_SdShowInfoList;

//检查序列号

if (CHK_serial(svCompany, svSerial)<0) then

goto Dlg_SdRegisterUserEx;

endif;

//检查序列号完毕

Dlg_SdAskDestPath://安装位置 对话框

szTitle = "";

szMsg = "";

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

TARGETDIR = szDir;

if (nResult = BACK) goto Dlg_SdRegisterUserEx;

Dlg_SetupType: //安装类型 对话框

szTitle = "";

szMsg = "";

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

if (nResult = BACK) then

goto Dlg_SdAskDestPath;

else

nSetupType = nResult;

if (nSetupType != CUSTOM) then

szTargetPath = TARGETDIR;

nvSize = 0;

ComponentCompareSizeRequired(MEDIA,szTargetPath,nvSize);

if (nvSize != 0) then

MessageBox( szSdStr_NotEnoughSpace, WARNING );

goto Dlg_SetupType;

endif;

endif;

endif;

Dlg_SdComponentTree: //对话框

if ((nResult = BACK) && (nSetupType != CUSTOM)) goto Dlg_SetupType;

szTitle = "";

szMsg = "";

szTargetdir = TARGETDIR;

szComponents = "";

nLevel = 2;

if (nSetupType = CUSTOM) then

nResult = SdComponentTree(szTitle, szMsg, szTargetdir, szComponents, nLevel);

if (nResult = BACK) goto Dlg_SetupType;

endif;

Dlg_SdSelectFolder://对话框

szfolder = SHELL_OBJECT_FOLDER;

szTitle = "";

szMsg = "";

nResult = SdSelectFolder( szTitle, szMsg, szfolder );

SHELL_OBJECT_FOLDER =

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航