InstallShield 打包实例 - 图文 下载本文

内容发布更新时间 : 2024/11/15 21:02:14星期一 下面是文章的全部内容请认真阅读。

InstallShield制作的打包程序——代码示例 收藏

代码如下:有用的地方要用,但是,要根据实际情况,哦。

至少有些方法可以直接裁出来用的。

有些是我自己编写的,有些是从网上搜来的方法。做一个IS的打包程序还真是不容易呢。 Setup.Rul

view plaincopy to clipboardprint?

//=========================================================================== //

// 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 // Project Assistant. //

//描述:空白设置主脚本文件

// 评论:空白的设置是一个空的安装项目。如果你想通过创建一个新的项目。分步说明使用项目助理

//===========================================================================

// Included header files ---------------------------------------------------- #include \

BOOL bWinLogin;

string szServer, szUser, szPassword;

//--------------------------------------------------------------- prototype WriteDBInfo(STRING);

function WriteDBInfo(dbConnection) string svResult; number nvFileHandle; begin

//写获取连接数据库文件

OpenFileMode(FILE_MODE_APPEND);

if (FindFile(ProgramFilesFolder+\

\没有,需要create一个

CreateFile(nvFileHandle,ProgramFilesFolder+\示例数据库\ else

OpenFile (nvFileHandle ,ProgramFilesFolder+\示例数据库

\

endif;

WriteLine( nvFileHandle,dbConnection); CloseFile(nvFileHandle); end ;

///////////////////////////////////////////////////////////////////////////////////////////////// prototype DetachDB();

function number DetachDB()

STRING szCmdLine,szWaitTxt; string svResult,svLine; number nvFileHandle; begin

OpenFileMode(FILE_MODE_APPEND);

szWaitTxt=\正在分离安装网站使用的数据库??\ SdShowMsg (szWaitTxt, TRUE); Delay(2);

//szCmdLine = \ /S \/Q \\\ sp_detach_db @dbname = N'YCSCMDB'\

//读取连接字符串

if (FindFile(ProgramFilesFolder+\\

MessageBox (\数据库配置文件丢失,请手动分离或删除网站使用的数据库!\ else

OpenFile ( nvFileHandle ,ProgramFilesFolder+\示例数据库\

ab:

if(GetLine( nvFileHandle,svLine)<0) then

CloseFile(nvFileHandle); else

szCmdLine =svLine+\/Q \\\ sp_detach_db @dbname = N'YCSCMDB'\\\

//szCmdLine = \ sp_attach_db @dbname = N'dlbj',@filename1 = N'\^\ = N'\ LaunchAppAndWait(\

if(LaunchAppAndWait(\ then

MessageBox (\数据库分离失败!请手动分离或删除网站使用的数据库!\

else

goto ab; endif;

endif;

SdShowMsg (szWaitTxt, FALSE); endif;

//szWaitTxt=\正在优化系统数据库??\ //SdShowMsg (szWaitTxt, TRUE); //Delay(2);

//szCmdLine = \\/P \/S \/Q \\\dlbj ; exec sp_updatestats\\\

// if (LaunchAppAndWait(\

// MessageBox (\数据库优化失败!您可以在 sql查询分析器中执行 use dlbj ; exec sp_updatestats 完成!\ // endif;

// SdShowMsg (szWaitTxt, FALSE);

return 0;

end;

//---------------------------------------------------------------------------

// Note: In order to have your InstallScript function executed as a custom // 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); */

//注意:为了让您的InstallScript中作为一个自定义的执行

//由Windows Installer的行动,它必须作为一个原型 入口点函数。

//关键字出口标识调用MyFunction()作为入口点函数。 //它接受的参数必须是一个句柄安装程序数据库。

//*出口原型调用MyFunction(HWND); * /

//----------------------------------------------------------------------- prototype CheckIIS(); //检测是否安装了iis //-------------------------------------------------------- //检测是否安装了IIS function CheckIIS()

NUMBER nvType, nvSize; STRING svvalue; begin

RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );

if (RegDBKeyExist (\ return (1);

else

return (0); endif; end;

//-----------------------------------------------------------

//--------------------------------------------------------------------------- // 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.

//该事件被称为OnFirstUIBefore由框架时,安装程序

//运行在第一次安装模式。允许默认情况下此事件显示界面 //最终用户指定安装参数。

//--------------------------------------------------------------------------- function OnFirstUIBefore()

NUMBER nResult, nSetupType, nvSize, nUser;

STRING szTitle, szMsg, szQuestion, svName, svCompany, szFile; STRING szLicenseFile;

LIST list, listStartCopy; BOOL bCustom;

STRING szBmpPath, szAppPath,svResult,svLine,svSubStr,szIp;//自定义 number nvFileHandle,nvIp; string szOpt1, szOpt2; BOOL bLicenseAccepted;

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

SHELL_OBJECT_FOLDER = @PRODUCT_NAME;

nSetupType = TYPICAL;

//-----------------------------------------------------------------------

//设置背景图片

SetTitle(\欢迎您使用银河卡电子产品\ 24, WHITE);

SetTitle( \安装“网上阅卷系统”\ Enable(FULLWINDOWMODE); Enable(BACKGROUND );

// PlaceBitmap (SUPPORTDIR^\ //左上角显示图片

// PlaceBitmap (SUPPORTDIR^\ //全屏显示图片

//PlaceWindow ( BILLBOARD , 200 , 40 , UPPER_LEFT ); //平铺logo

//SetDisplayEffect(EFF_FADE);//设置显示效果

// PlaceWindow ( BILLBOARD , 200 , 40 , UPPER_LEFT ); //PlaceWindow(BACKGROUND,10,10,UPPER_LEFT); //背景窗口的位置为左上方开始10,10

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

szBmpPath=SUPPORTDIR+\ //图片有白色的背景,所以设置白色为透明色 “位图文件名;透明标志;<未用>;<未用>;透明色”标准位图为57×53 //SizeWindow (METAFILE,50, 50);

DialogSetInfo (DLG_INFO_ALTIMAGE, szBmpPath,TRUE); // 设置左边的logo图片 //------------------------------------------------------------------ //------------------------------------------------------------------

SdShowMsg( \安装程序正在检测系统必备组件...... \ Delay(2);

SdShowMsg (\

//--------------------------------------------------------------------- WriteIp:

//写获取ip地址文件

OpenFileMode(FILE_MODE_APPEND);

if (FindFile(SUPPORTDIR,\没有,需要create一个 CreateFile(nvFileHandle,SUPPORTDIR,\ else

OpenFile ( nvFileHandle ,SUPPORTDIR,\ //LaunchAppAndWait(\ endif;

WriteLine( nvFileHandle,\ CloseFile(nvFileHandle);

LaunchAppAndWait(\ //---------------------------------------------------------------------------------- //读取ip地址

if (FindFile( SUPPORTDIR,\没有,需要create一个 goto WriteIp;

else

OpenFile ( nvFileHandle ,SUPPORTDIR,\ endif; ab:

if(GetLine( nvFileHandle,svLine)<0) then