脚步主要包括六个部分,即六个事件处理过程:OnBegin,OnEnd,OnFirstUIAfter,OnFirstUIBefore,OnMainUIAfter,OnUninstall这六个事件都是自动生成的,需要那些特殊的处理就这写事件里面写脚步就可以了。onEnd和OnUninstall两个事件我没有用到,很奇怪的,卸载代码写在OnUninstall里面没有启作用,没有运行,所以我不得不写在OnMainUIAfter事件里面。另外需要提示的是unistall shield自带的卸载快捷方式不好用,卸载不完全,所以必须写脚步才能卸载完全。
下面就是我做的具体的脚本: 1:开始部分:
//=========================================================================== //
// 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 // //
//===========================================================================
// Included header files ---------------------------------------------------- #include \
// Note: In order to have your InstallScript function executed as a custom
Project Assistant.
// 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); */ function OnBegin() begin
Disable (BACKBUTTON); //if(!MAINTENANCE)then
//SdLicense2 (\\\\SUPPORTDIR ^ \许可协议.rtf\FALSE); //endif;
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
if (RegDBKeyExist(\then
MessageBox(\请先安装Oracle\ Exit;
endif;
end;
2OnFirstUIBefore事件部分:
//---------------------------------------------------------------------------
// 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;
LIST list, listStartCopy;
BOOL bCustom, bIgnore1, bIgnore2;
STRING szDir,szTemp;
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 );