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

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

我现在在做ASP的安装程序,这样可以方便用户的使用。我使用的InstallShield版本是InstallShield Professional—Standard Edition6.3。

我没有用过这个东东,问题如下:

问题一

通过Project Wizard-generated script 做好了COPY打包工作。可是6.3版本的好象不支持主体Program...Endprogram,因为我看COPY打包的Script脚本就是通过两个Fuction实现的。所以我的脚本加不进去,除非在这两个Fuction中调用!请问是不是6.3版本不能使用Program...Endprogram,如果可以使用的话,应该如何去用?

问题二

想在COPY完ASP程序后直接实现IIS的设置,也就是通过安装程序就可以完成,不需要手动设置,请问怎样去实现呢?

以下就是我用Project Wizard-generated script 做好的两个Fuction,他们不用调用也不用声明定义就自动执行,真是搞不懂呀!我的Script该加在什么地方呢?

// Include header files

#include "ifx.h"

function OnFirstUIBefore()

number nResult,nSetupType;

string szTitle, szMsg;

string szLicenseFile, szQuestion;

string szName, szCompany, szSerial;

string szTargetPath;

string szDir;

string szComponents, szTargetdir;

number nLevel;

LIST listStartCopy;

number nvSize;

begin

nSetupType = TYPICAL;

TARGETDIR = "C:"^"inetpub" ^"wwwroot" ^@PRODUCT_NAME;

szDir = TARGETDIR;

szName = "";

szCompany = "";

szSerial = "";

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_SdReGISterUserEx:

szMsg = "";

szTitle = "";

nResult = SdRegisterUserEx( szTitle, szMsg, szName, szCompany, szSerial );

if (nResult = BACK) goto Dlg_SdLicense;

Dlg_SdAskDestPath:

szTitle = "";

szMsg = "please select setup folder";

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_ObjDialogs:

nResult = ShowObjWizardPages(nResult);

if (nResult = BACK) goto Dlg_SdComponentTree;

Dlg_SdStartCopy:

szTitle = "";

szMsg = "";

listStartCopy = ListCreate( STRINGLIST );

nResult = SdStartCopy( szTitle, szMsg, listStartCopy );

ListDestroy(listStartCopy);

if (nResult = BACK) goto Dlg_ObjDialogs;

// setup default status

SetStatusWindow(0, "");

Enable(STATUSEX);

StatusUpdate(ON, 100);

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

szAppPath = TARGETDIR;

RegDBSetItem(REGDB_APPPATH, szAppPath);

RegDBSetItem(REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY);

end;

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

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