| 我现在在做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 ---
 
 
 |