您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > InstallShield 打包实例
InstallShield制作的打包程序——代码示例收藏代码如下:有用的地方要用,但是,要根据实际情况,哦。至少有些方法可以直接裁出来用的。有些是我自己编写的,有些是从网上搜来的方法。做一个IS的打包程序还真是不容易呢。Setup.Rulviewplaincopytoclipboardprint?//===========================================================================////FileName:Setup.rul////Description:Blanksetupmainscriptfile////Comments:Blanksetupisanemptysetupproject.Ifyouwantto//createanewprojectvia.step-bystepinstructionsusethe//ProjectAssistant.////描述:空白设置主脚本文件//评论:空白的设置是一个空的安装项目。如果你想通过创建一个新的项目。分步说明使用项目助理//===========================================================================//Includedheaderfiles----------------------------------------------------#includeifx.hBOOLbWinLogin;stringszServer,szUser,szPassword;//---------------------------------------------------------------prototypeWriteDBInfo(STRING);functionWriteDBInfo(dbConnection)stringsvResult;numbernvFileHandle;begin//写获取连接数据库文件OpenFileMode(FILE_MODE_APPEND);if(FindFile(ProgramFilesFolder+\\+@COMPANY_NAME+\\示例数据库,DBConnection.txt,svResult)0)then//没有,需要create一个CreateFile(nvFileHandle,ProgramFilesFolder+\\+@COMPANY_NAME+\\示例数据库,DBConnection.txt);elseOpenFile(nvFileHandle,ProgramFilesFolder+\\+@COMPANY_NAME+\\示例数据库,DBConnection.txt);endif;WriteLine(nvFileHandle,dbConnection);CloseFile(nvFileHandle);end;/////////////////////////////////////////////////////////////////////////////////////////////////prototypeDetachDB();functionnumberDetachDB()STRINGszCmdLine,szWaitTxt;stringsvResult,svLine;numbernvFileHandle;beginOpenFileMode(FILE_MODE_APPEND);szWaitTxt=正在分离安装网站使用的数据库……;SdShowMsg(szWaitTxt,TRUE);Delay(2);//szCmdLine=/E/S+svSQLsvr+/Q\EXECsp_detach_db@dbname=N'YCSCMDB';//读取连接字符串if(FindFile(ProgramFilesFolder+\\+@COMPANY_NAME+\\示例数据库,DBConnection.txt,svResult)0)thenMessageBox(数据库配置文件丢失,请手动分离或删除网站使用的数据库!,SEVERE);elseOpenFile(nvFileHandle,ProgramFilesFolder+\\+@COMPANY_NAME+\\示例数据库,DBConnection.txt);ab:if(GetLine(nvFileHandle,svLine)0)thenCloseFile(nvFileHandle);elseszCmdLine=svLine+/Q\EXECsp_detach_db@dbname=N'YCSCMDB'\;//szCmdLine=/U+svSQLusr+/P+svSQLpwd+/S+svSQLsvr+/Q\EXECsp_attach_db@dbname=N'dlbj',@filename1=N'+TARGETDIR^dlbj_web.MDF',@filename2=N'+TARGETDIR^dlbmydb_log.LDF'\;LaunchAppAndWait(osql.exe,szCmdLine,WAIT);if(LaunchAppAndWait(osql.exe,szCmdLine,WAIT)0)thenMessageBox(数据库分离失败!请手动分离或删除网站使用的数据库!,SEVERE);elsegotoab;endif;endif;SdShowMsg(szWaitTxt,FALSE);endif;//szWaitTxt=正在优化系统数据库……;//SdShowMsg(szWaitTxt,TRUE);//Delay(2);//szCmdLine=/U+svSQLusr+/P+svSQLpwd+/S+svSQLsvr+/Q\usedlbj;execsp_updatestats\;//if(LaunchAppAndWait(osql.exe,szCmdLine,WAIT)0)then//MessageBox(数据库优化失败!您可以在sql查询分析器中执行usedlbj;execsp_updatestats完成!,SEVERE);//endif;//SdShowMsg(szWaitTxt,FALSE);return0;end;//---------------------------------------------------------------------------//Note:InordertohaveyourInstallScriptfunctionexecutedasacustom//actionbytheWindowsInstaller,itmustbeprototypedasan//entry-pointfunction.//ThekeywordexportidentifiesMyFunction()asanentry-pointfunction.//TheargumentitacceptsmustbeahandletotheInstallerdatabase./*exportprototypeMyFunction(HWND);*///注意:为了让您的InstallScript中作为一个自定义的执行//由WindowsInstaller的行动,它必须作为一个原型入口点函数。//关键字出口标识调用MyFunction()作为入口点函数。//它接受的参数必须是一个句柄安装程序数据库。//*出口原型调用MyFunction(HWND);*///-----------------------------------------------------------------------prototypeCheckIIS();//检测是否安装了iis//--------------------------------------------------------//检测是否安装了IISfunctionCheckIIS()NUMBERnvType,nvSize;STRINGsvvalue;beginRegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);if(RegDBKeyExist(System\\CurrentControlSet\\Services\\IISADMIN)=1)thenreturn(1);elsereturn(0);endif;end;//-----------------------------------------------------------//---------------------------------------------------------------------------//OnFirstUIBefore////TheOnFirstUIBeforeeventiscalledbytheframeworkwhenthesetupis//runninginfirstinstallmode.BydefaultthiseventdisplaysUIallowing//theendusertospecifyinstallationparameters.//该事件被称为OnFirstUIBefore由框架时,安装程序//运行在第一次安装模式。允许默认情况下此事件显示界面//最终用户指定安装参数。//---------------------------------------------------------------------------functionOnFirstUIBefore()NUMBERnResult,nSetupType,nvSize,nUser;STRINGszTitle,szMsg,szQuestion,svName,svCompany,szFile;STRINGszLicenseFile;LISTlist,listStartCopy;BOOLbCustom;STRINGszBmpPath,szAppPath,svResult,svLine,svSubStr,szIp;//自定义numbernvFileHandle,nvIp;stringszOpt1,szOpt2;BOOLbLicenseAccepted;begin//TODO:ifyouwanttoenablebackground,windowtitle,andcaptionbartitle//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(安装“网上阅卷系统”,0,BACKGROUNDCAPTION);Enable(FULLWINDOWMODE);Enable(BACKGROUND);//PlaceBitmap(SUPPORTDIR^BackGround.bmp,0,0,0,UPPER_LEFT);//左上角显示图片//PlaceBitmap(SUPPORTDIR^BackGround.bmp,0,0,0,FULLSCREENSIZE);//全屏显示图片//PlaceWindow(BILLBOARD,200,40,UPPER_LEFT);//平铺logo//SetD
本文标题:InstallShield 打包实例
链接地址:https://www.777doc.com/doc-5398895 .html