知识大全 用InstallShield打包ASP程序的脚本

Posted 数据库

篇首语:别裁伪体亲风雅,转益多师是汝师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用InstallShield打包ASP程序的脚本相关的知识,希望对你有一定的参考价值。

用InstallShield打包ASP程序的脚本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

#include  ifx h  //不能移动 ////////////////////////////////////////////////////////////////////////////// // 用InstallShield 进行 ASP 软件的打包和自动安装  // 原创作者: 贾俊 (Jaron) // 网址: // 邮件:  // 首次发表于网易 ChinaASP ASPHouse ////////////////////////////////////////////////////////////////////////////// // 功能 //  文件复制 //  可选自动设置独立站点运行(设置IIS) //  可选自动设置虚拟站点运行(设置IIS) //  设置目录可读 可写及可运行脚本 //  自动创建ODBC //  自动创建或附加MDF格式的SQL数据库 并优化 //  自动安装 ScriptEncode 解码程序 // 本文仅列出了 InstallShield 的 Script 部分 还有两个 VBS 文件及其他设置 // 测试过程中有任何问题 请来 ;编程空间版 讨论 ////////////////////////////////////////////////////////////////////////////// prototype CreateDataBase(STRING STRING STRING); prototype CreateWebSite(STRING STRING); // 创建 IIS 站点 prototype CreateVirtualDir(STRING); // 创建虚拟目录 ////////////////////////////////////////////////////////////////////////////// //  // 函数: OnFirstUIBefore  //  // 事件: FirstUIBefore event is sent when installation is run for the first // time on given machine  In the handler installation usually displays // UI allowing end user to specify installation parameters  After this // function returns  ComponentTransferData is called to perform file // transfer //  /////////////////////////////////////////////////////////////////////////////// function OnFirstUIBefore()    NUMBER nResult nSetupType nOpt svEdit svEdit ; STRING szTitle  szMsg szBmpPath; STRING szLicenseFile  szQuestion; STRING szServerIP szServerPort szServerIPDefault szServerPortDefault; STRING szSQLsvr szSQLusr szSQLpwd svSQLsvr svSQLusr svSQLpwd; STRING svName  svCompany  svSerial; STRING szFile szTargetPath szDir szfolder; STRING szComponents  szTargetdir; STRING szField szField ; STRING szDefault svResult; OBJECT piisObj; LIST list listStartCopy; NUMBER nLevel nvSize; begin  szBmpPath= C: ^ temp ^ left bmp ; DialogSetInfo (DLG_INFO_ALTIMAGE  szBmpPath  TRUE); // 设置左边的图片 //To Do: if you want to enable background  window title  and caption bar title  //SetTitle( @TITLE_MAIN    WHITE ); //SetTitle( @TITLE_CAPTIONBAR    BACKGROUNDCAPTION );  //Enable( FULLWINDOWMODE );  //Enable( BACKGROUND );  //SetColor(BACKGROUND RGB (     ));  //默认值设定 TARGETDIR =  C: ^ inetpub ^ JaronSoft ^@FOLDER_NAME;  szDir = TARGETDIR; SHELL_OBJECT_FOLDER = @FOLDER_NAME;  svName =  试用版用户 ; svCompany =  JDinfo Neork ; svSerial =  ;  Dlg_Start: // beginning of dialogs label Dlg_SdWele: //欢迎 对话框 szTitle =  欢迎进入 ; szMsg =  ; nResult = SdWele( 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_SdWele; Dlg_SdShowInfoList://readme文件 对话框 szFile = SUPPORTDIR ^  infolist txt ; list = ListCreate( STRINGLIST ); ListReadFromFile( list  szFile ); szTitle =  README ; szMsg =  ; nResult = SdShowInfoList( szTitle  szMsg  list );  ListDestroy( list ); if (nResult = BACK) goto Dlg_SdLicense; Dlg_SdRegisterUserEx://用户信息 对话框 szMsg =  ; szTitle =  用户信息 ;  nResult = SdRegisterUserEx( szTitle  szMsg  svName  svCompany  svSerial ); if (nResult = BACK) goto Dlg_SdShowInfoList; //检查序列号 //if (CHK_serial(svCompany  svSerial)< ) then //goto Dlg_SdRegisterUserEx; //endif; //检查序列号完毕 Dlg_SdAskDestPath://安装位置 对话框 szTitle =  检查序列号 ; szMsg =  ; nResult = SdAskDestPath( szTitle  szMsg  szDir    ); TARGETDIR = szDir; if (nResult = BACK) goto Dlg_SdRegisterUserEx; Dlg_SetupType: //安装类型 对话框 nSetupType = TYPICAL;  szTitle =  安装类型 ; szMsg =  请选择您需要按哪种方式安装 ;         nResult = SetupType ( szTitle   szMsg       nSetupType     ); if (nResult = BACK) then  goto Dlg_SdAskDestPath; else  nSetupType = nResult;  if (nSetupType != CUSTOM) then   szTargetPath = TARGETDIR;   nvSize =  ;   ComponentCompareSizeRequired(MEDIA szTargetPath nvSize);   if (nvSize !=  ) 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 =  ; if (nSetupType = CUSTOM) then nResult = SdComponentTree(szTitle  szMsg  szTargetdir  szComponents  nLevel); if (nResult = BACK) goto Dlg_SetupType;  endif; Dlg_SdSelectFolder://对话框 szfolder = SHELL_OBJECT_FOLDER;  szTitle =  文件夹 ; szMsg =  ; nResult = SdSelectFolder( szTitle  szMsg  szfolder ); SHELL_OBJECT_FOLDER = szfolder; if (nResult = BACK) goto Dlg_SdComponentTree; Dlg_SelMode ://设置数据库服务器 对话框 szTitle =  设置 +@PRODUCT_NAME+ 的运行模式 ; szMsg =  请选择软件运行的方式 极力推荐使用独立站点方式运行 ; szField = 独立站点方式运行(自动创建新站点) ;  szField = 虚拟目录方式运行(自动创建虚拟目录) ; svEdit =TRUE; svEdit =FALSE; SetDialogTitle(DLG_ASK_TEXT szTitle);  //DialogSetInfo ( DLG_INFO_CHECKSELECTION     );   nOpt = EXCLUSIVE ; nResult = AskOptions (nOpt szMsg szField svEdit szField svEdit ); if (nResult = BACK) goto Dlg_SdSelectFolder; if (svEdit =FALSE) goto Dlg_SdStartCopy; Dlg_AskText ://设置数据库服务器 对话框 szTitle =  设置IIS信息服务及数据库服务器 ; szMsg =  现在开始设置IIS系统 ; szQuestion=     请输入本服务器的主机名或IP地址 安装程序将按照您提供的资料设置IIS信息服务 如果您没有填写 安装程序将自动跳过站点的创建! ; szServerIP= 地址 ; szServerPort= 端口 ;   szServerIPDefault= ; szServerPortDefault= ; SetDialogTitle(DLG_ASK_TEXT szTitle); nResult=SdShowDlgEdit  (szTitle  szQuestion szServerIP szServerPort szServerIPDefault szServerPortDefault); if (nResult = BACK) goto Dlg_SelMode; Dlg_AskSQL ://设置数据库服务器 对话框 szTitle =  设置数据库 ; szMsg =  现在开始设置Microsoft SQL Server数据库系统 ; szQuestion=     请输入SQL SERVER数据库服务器的用户名和密码 安装程序将按照您上步提供的IP地址和下面的用户名和密码创建和优化数据库系统 如果您提供的用户名和密码是错误的 安装程序将自动跳过数据的设置! ; szSQLsvr= 主机名 ; szSQLusr= 用户名 ; szSQLpwd= 密码 ;   svSQLsvr= localhost ; svSQLusr= sa ; szSQLpwd= ; SetDialogTitle(DLG_ASK_TEXT szTitle); nResult=SdShowDlgEdit  (szTitle  szQuestion szSQLsvr szSQLusr szSQLpwd svSQLsvr svSQLusr svSQLpwd); if (nResult = BACK) goto Dlg_SelMode; Dlg_SdStartCopy://开始复制文件 对话框 szTitle =  开始复制文件 ; szMsg =  点击下一步开始复制文件 ; listStartCopy = ListCreate( STRINGLIST ); ListAddString(listStartCopy 用户名 +svName AFTER); ListAddString(listStartCopy 公司名称 +svCompany AFTER); ListAddString(listStartCopy 序列号 +svSerial AFTER); ListAddString(listStartCopy 目标目录 +szDir AFTER); if (svEdit =TRUE) then  ListAddString(listStartCopy IP地址 +szServerIPDefault AFTER);  ListAddString(listStartCopy 端口号 +szServerPortDefault AFTER); endif; ListAddString(listStartCopy 请确认您填写的信息 按下一步开始复制文件 AFTER); nResult = SdStartCopy( szTitle  szMsg  listStartCopy );  ListDestroy(listStartCopy); if (nResult = BACK) goto Dlg_AskText; // setup default status SetStatusWindow(   ); Enable(STATUSEX); StatusUpdate(ON   ); if (svEdit =TRUE) then   CreateWebSite(szServerIPDefault szServerPortDefault);  // 开始创建 IIS 站点 endif; if (svEdit =TRUE) then   CreateVirtualDir( NetOA );  // 开始创建 IIS 站点 endif; CreateDataBase(svSQLsvr svSQLusr svSQLpwd); // 创建和优化数据库 return  ; end; ////////////////////////////////////////////////////////////////////////////// // // 函数: OnFirstUIAfter // // 事件: FirstUIAfter event is sent after file transfer  when installation  // is run for the first time on given machine  In this event handler  // installation usually displays UI that will inform end user that // installation has been pleted successfully // /////////////////////////////////////////////////////////////////////////////// function OnFirstUIAfter() STRING szTitle szMsg  szMsg  szOption  szOption szCmdLine; NUMBER bOpt  bOpt ; begin //set_vod_liveaddress(); szCmdLine = SUPPORTDIR ^ SCE CHS EXE ; if (LaunchAppAndWait(szCmdLine    /q WAIT) <  ) then  MessageBox ( 不能安装解码程序 请联系供应商 SEVERE); endif; Disable(STATUSEX); bOpt  = FALSE; bOpt  = FALSE; szMsg  = SdLoadString(IFX_SDFINISH_MSG ); szMsg  =  请浏览本主机WEB服务器上的  +@PRODUCT_NAME+  虚拟目录 例 &//Localhost/ ;  szOption  =  ; szOption  =  ; szTitle = @PRODUCT_NAME+ 安装完成 ; SdFinishEx(szTitle szMsg szMsg szOption szOption bOpt bOpt ); szCmdLine = //LocalHost ;  //if (LaunchApp(PROGRAMFILES ^ Internet Explorer ^ IEXPLORE EXE  szCmdLine) <  ) then //MessageBox ( 不能打开浏览器 SEVERE); //endif; return  ; end; ////////////////////////// // 创建IIS站点 ////////////////////////// function CreateWebSite(szServerIPDefault szServerPortDefault) STRING szCmdLine szWaitTxt; begin  if ((szServerIPDefault =  ) || (szServerPortDefault =  )) then    MessageBox ( 您没有设定 +@PRODUCT_NAME+ 运行的服务器IP地址或端口!!IIS信息服务设置失败!请自行创建IIS站点 并将主目录设为 +TARGETDIR SEVERE);  else   szWaitTxt=  正在创建IIS和设置站点 ;   SdShowMsg (szWaitTxt  TRUE);   Delay( );   szCmdLine = SUPPORTDIR ^ mkw site vbs +   r  +TARGETDIR+   i  +szServerIPDefault+   o  +szServerPortDefault+   t  +@PRODUCT_NAME;     if (LaunchAppAndWait( WScript exe  szCmdLine WAIT) <  ) then   MessageBox ( 不能建立WEB 虚拟目录 没有找到 WScript exe 或执行脚本错误 SEVERE);   endif;   SdShowMsg (szWaitTxt  FALSE);  endif;  return  ; end; ////////////////////////// // 创建虚拟目录 ////////////////////////// function CreateVirtualDir(VirtualFolder) STRING szCmdLine szWaitTxt; begin  if (VirtualFolder =  ) then    MessageBox ( 没能读取到虚拟目录的名称!请联系系统供应商! +TARGETDIR SEVERE);  else   szWaitTxt=  正在创建 +@PRODUCT_NAME+ 的虚拟目录 ;   SdShowMsg (szWaitTxt  TRUE);   Delay( );   szCmdLine = SUPPORTDIR ^ mkwebdir vbs  +   w    v \\ +VirtualFolder+ \\ \\ + TARGETDIR+ \\  ;   if (LaunchAppAndWait( WScript exe  szCmdLine WAIT) <  ) then    MessageBox ( 不能建立WEB 虚拟目录 没有找到 WScript exe 或执行脚本错误 SEVERE);   endif;   SdShowMsg (szWaitTxt  FALSE);  endif;  return  ; end; ////////////////////////// // 创建和优化数据库 ////////////////////////// function CreateDataBase(svSQLsvr svSQLusr svSQLpwd) STRING szCmdLine szWaitTxt; begin  szWaitTxt=  正在创建 +@PRODUCT_NAME+ 所需数据库 ;  SdShowMsg (szWaitTxt  TRUE);  Delay( );        szCmdLine =  /U  +svSQLusr+  /P  +svSQLpwd+  /S  +svSQLsvr+  /Q \\ exec sp_attach_db N OASystem    N +SUPPORTDIR ^ OASystem_data mdf \\ ;  if (LaunchAppAndWait( osql exe  szCmdLine WAIT) <  ) then   MessageBox ( 数据库创建失败!请确您的系统中已安装 Microsoft SQL Server   如仍无法解决 请联系系统供应商! SEVERE);  endif;  SdShowMsg (szWaitTxt  FALSE);  szWaitTxt=  正在优化 +@PRODUCT_NAME+ 系统数据库 ;  SdShowMsg (szWaitTxt  TRUE);  Delay( );        szCmdLine =  /U  +svSQLusr+  /P  +svSQLpwd+  /S  +svSQLsvr+  /Q \\ use OASystem ; exec sp_updatestats\\ ;  if (LaunchAppAndWait( osql exe  szCmdLine WAIT) <  ) then   MessageBox ( 数据库优化失败!您可以在 sql查询分析器中执行 use OASystem ; exec sp_updatestats 完成! SEVERE);  endif;  SdShowMsg (szWaitTxt  FALSE);  return  ; end; cha138/Article/program/yxkf/201401/30229

相关参考

知识大全 利用InstallShield获取注册表键值的脚本

利用InstallShield获取注册表键值的脚本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!U

知识大全 自带打包工具打包Asp.Net Web应用程序

自带打包工具打包Asp.NetWeb应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  打开

知识大全 认识ASP程序所使用的几种脚本语言

认识ASP程序所使用的几种脚本语言  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在浏览器中通过

知识大全 系统发布&系统扩展

  系统发布  系统设计完成后需要打包发布将应用系统制作成安装程序制作安装程序的工具很多一般Delphi开发的应用系统可以使用InstallShield来完成系统的安装查询  系统发布的注意事项参考第

知识大全 用脚本解决ASP.NET页面刷新问题

用脚本解决ASP.NET页面刷新问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用ASPNE

知识大全 用vs2010 tools 编写打包cab

  开始>所有程序>MicrosoftVisualStudio>VisualStudioTools>VisualStudio命令提示()(以管理员权限打开)  )cabarc将

知识大全 使用ant编译打包应用程序[3]

<!打包类文件>   <targetname=jardepends=piledescription=打包类文件>   

知识大全 使用ant编译打包应用程序

  将一个简单的类(Sample)进行编译打包运行(传参数) 源文件  java源文件Samplejava  packagepowerwind;     importjavaxsw

知识大全 使用ant编译打包应用程序[1]

  将一个简单的类(Sample)进行编译打包运行(传参数)  源文件java源文件Samplejava packagepowerwind; importjavaxswing*; 

知识大全 ASP入门教程 ASP和脚本语言

ASP入门教程ASP和脚本语言  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!