用InstallShield打包ASP程序的脚本

2023-12-05 0 555

#include\”ifx.h\”//不能移动 ////////////////////////////////////////////////////////////////////////////// //用InstallShield进行ASP软件的打包和自动安装 //原创作者:贾俊(Jaron) //网址:http://www.jiangdu.net //邮件:jaron@jdinfo.net //首次发表于网易,ChinaASP,ASPHouse ////////////////////////////////////////////////////////////////////////////// //功能: //1.文件复制 //2.可选自动设置独立站点运行(设置IIS) //3.可选自动设置虚拟站点运行(设置IIS) //4.设置目录可读,可写及可运行脚本 //5.自动创建ODBC //6.自动创建或附加MDF格式的SQL数据库并优化 //7.自动安装ScriptEncode解码程序 //本文仅列出了InstallShield的Script部分,还有两个VBS文件及其他设置 //测试过程中有任何问题,请来http://www.jiangdu.net/bbs编程空间版讨论 ////////////////////////////////////////////////////////////////////////////// prototypeCreateDataBase(STRING,STRING,STRING); prototypeCreateWebSite(STRING,STRING);//创建IIS站点 prototypeCreateVirtualDir(STRING);//创建虚拟目录 ////////////////////////////////////////////////////////////////////////////// // //函数:OnFirstUIBefore // //事件:FirstUIBeforeeventissentwheninstallationisrunforthefirst //timeongivenmachine.Inthehandlerinstallationusuallydisplays //UIallowingendusertospecifyinstallationparameters.Afterthis //functionreturns,ComponentTransferDataiscalledtoperformfile //transfer. // /////////////////////////////////////////////////////////////////////////////// functionOnFirstUIBefore() NUMBERnResult,nSetupType,nOpt,svEdit1,svEdit2; STRINGszTitle,szMsg,szBmpPath; STRINGszLicenseFile,szQuestion; STRINGszServerIP,szServerPort,szServerIPDefault,szServerPortDefault; STRINGszSQLsvr,szSQLusr,szSQLpwd,svSQLsvr,svSQLusr,svSQLpwd; STRINGsvName,svCompany,svSerial; STRINGszFile,szTargetPath,szDir,szfolder; STRINGszComponents,szTargetdir; STRINGszField1,szField2; STRINGszDefault,svResult; OBJECTpiisObj; LISTlist,listStartCopy; NUMBERnLevel,nvSize; begin szBmpPath=\”C:\”^\”temp\”^\”left.bmp\”; DialogSetInfo(DLG_INFO_ALTIMAGE,szBmpPath,TRUE);//设置左边的图片 //ToDo:ifyouwanttoenablebackground,windowtitle,andcaptionbartitle //SetTitle(@TITLE_MAIN,24,WHITE); //SetTitle(@TITLE_CAPTIONBAR,0,BACKGROUNDCAPTION); //Enable(FULLWINDOWMODE); //Enable(BACKGROUND); //SetColor(BACKGROUND,RGB(0,128,128)); //默认值设定 TARGETDIR=\”C:\”^\”inetpub\”^\”JaronSoft\”^@FOLDER_NAME; szDir=TARGETDIR; SHELL_OBJECT_FOLDER=@FOLDER_NAME; svName=\”试用版用户\”; svCompany=\”JDinfoNetwork\”; svSerial=\”111-1111111\”; Dlg_Start: //beginningofdialogslabel Dlg_SdWelcome://欢迎对话框 szTitle=\”欢迎进入\”; szMsg=\”\”; nResult=SdWelcome(szTitle,szMsg); if(nResult=BACK)gotoDlg_Start; Dlg_SdLicense://软件许可协议对话框 szLicenseFile=SUPPORTDIR^\”license.txt\”; szTitle=\”许可协议\”; szMsg=\”\”; szQuestion=\”\”; nResult=SdLicense(szTitle,szMsg,szQuestion,szLicenseFile); if(nResult=BACK)gotoDlg_SdWelcome; 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)gotoDlg_SdLicense; Dlg_SdRegisterUserEx://用户信息对话框 szMsg=\”\”; szTitle=\”用户信息\”; nResult=SdRegisterUserEx(szTitle,szMsg,svName,svCompany,svSerial); if(nResult=BACK)gotoDlg_SdShowInfoList; //检查序列号 //if(CHK_serial(svCompany,svSerial)<0)then //gotoDlg_SdRegisterUserEx; //endif; //检查序列号完毕 Dlg_SdAskDestPath://安装位置对话框 szTitle=\”检查序列号\”; szMsg=\”\”; nResult=SdAskDestPath(szTitle,szMsg,szDir,0); TARGETDIR=szDir; if(nResult=BACK)gotoDlg_SdRegisterUserEx; Dlg_SetupType://安装类型对话框 nSetupType=TYPICAL; szTitle=\”安装类型\”; szMsg=\”请选择您需要按哪种方式安装\”; nResult=SetupType(szTitle,szMsg,\”\”,nSetupType,0); if(nResult=BACK)then gotoDlg_SdAskDestPath; else nSetupType=nResult; if(nSetupType!=CUSTOM)then szTargetPath=TARGETDIR; nvSize=0; ComponentCompareSizeRequired(MEDIA,szTargetPath,nvSize); if(nvSize!=0)then MessageBox(szSdStr_NotEnoughSpace,WARNING); gotoDlg_SetupType; endif; endif; endif; Dlg_SdComponentTree://对话框 if((nResult=BACK)&&(nSetupType!=CUSTOM))gotoDlg_SetupType; szTitle=\”对话框\”; szMsg=\”\”; szTargetdir=TARGETDIR; szComponents=\”\”; nLevel=2; if(nSetupType=CUSTOM)then nResult=SdComponentTree(szTitle,szMsg,szTargetdir,szComponents,nLevel); if(nResult=BACK)gotoDlg_SetupType; endif; Dlg_SdSelectFolder://对话框 szfolder=SHELL_OBJECT_FOLDER; szTitle=\”文件夹\”; szMsg=\”\”; nResult=SdSelectFolder(szTitle,szMsg,szfolder); SHELL_OBJECT_FOLDER=szfolder; if(nResult=BACK)gotoDlg_SdComponentTree; Dlg_SelMode://设置数据库服务器对话框 szTitle=\”设置\”+@PRODUCT_NAME+\”的运行模式\”; szMsg=\”请选择软件运行的方式,极力推荐使用独立站点方式运行\”; szField1=\”独立站点方式运行(自动创建新站点)\”; szField2=\”虚拟目录方式运行(自动创建虚拟目录)\”; svEdit1=TRUE; svEdit2=FALSE; SetDialogTitle(DLG_ASK_TEXT,szTitle); //DialogSetInfo(DLG_INFO_CHECKSELECTION,\”\”,1); nOpt=EXCLUSIVE; nResult=AskOptions(nOpt,szMsg,szField1,svEdit1,szField2,svEdit2); if(nResult=BACK)gotoDlg_SdSelectFolder; if(svEdit1=FALSE)gotoDlg_SdStartCopy; Dlg_AskText://设置数据库服务器对话框 szTitle=\”设置IIS信息服务及数据库服务器\”; szMsg=\”现在开始设置IIS系统\”; szQuestion=\”请输入本服务器的主机名或IP地址,安装程序将按照您提供的资料设置IIS信息服务。如果您没有填写,安装程序将自动跳过站点的创建!\”; szServerIP=\”地址:\”; szServerPort=\”端口:\”; szServerIPDefault=\”192.168.0.1\”; szServerPortDefault=\”80\”; SetDialogTitle(DLG_ASK_TEXT,szTitle); nResult=SdShowDlgEdit2(szTitle,szQuestion,szServerIP,szServerPort,szServerIPDefault,szServerPortDefault); if(nResult=BACK)gotoDlg_SelMode; Dlg_AskSQL://设置数据库服务器对话框 szTitle=\”设置数据库\”; szMsg=\”现在开始设置MicrosoftSQLServer数据库系统\”; szQuestion=\”请输入SQLSERVER数据库服务器的用户名和密码,安装程序将按照您上步提供的IP地址和下面的用户名和密码创建和优化数据库系统。如果您提供的用户名和密码是错误的,安装程序将自动跳过数据的设置!\”; szSQLsvr=\”主机名:\”; szSQLusr=\”用户名:\”; szSQLpwd=\”密码:\”; svSQLsvr=\”localhost\”; svSQLusr=\”sa\”; szSQLpwd=\”\”; SetDialogTitle(DLG_ASK_TEXT,szTitle); nResult=SdShowDlgEdit3(szTitle,szQuestion,szSQLsvr,szSQLusr,szSQLpwd,svSQLsvr,svSQLusr,svSQLpwd); if(nResult=BACK)gotoDlg_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(svEdit1=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)gotoDlg_AskText; //setupdefaultstatus SetStatusWindow(0,\”\”); Enable(STATUSEX); StatusUpdate(ON,100); if(svEdit1=TRUE)then CreateWebSite(szServerIPDefault,szServerPortDefault);//开始创建IIS站点 endif; if(svEdit2=TRUE)then CreateVirtualDir(\”NetOA\”);//开始创建IIS站点 endif; CreateDataBase(svSQLsvr,svSQLusr,svSQLpwd);//创建和优化数据库 return0; end; ////////////////////////////////////////////////////////////////////////////// // //函数:OnFirstUIAfter // //事件:FirstUIAftereventissentafterfiletransfer,wheninstallation //isrunforthefirsttimeongivenmachine.Inthiseventhandler //installationusuallydisplaysUIthatwillinformenduserthat //installationhasbeencompletedsuccessfully. // /////////////////////////////////////////////////////////////////////////////// functionOnFirstUIAfter() STRINGszTitle,szMsg1,szMsg2,szOption1,szOption2,szCmdLine; NUMBERbOpt1,bOpt2; begin //set_vod_liveaddress(); szCmdLine=SUPPORTDIR^\”SCE10CHS.EXE\”; if(LaunchAppAndWait(szCmdLine,\”/q\”,WAIT)<0)then MessageBox(\”不能安装解码程序,请联系供应商.\”,SEVERE); endif; Disable(STATUSEX); bOpt1=FALSE; bOpt2=FALSE; szMsg1=SdLoadString(IFX_SDFINISH_MSG1); szMsg2=\”请浏览本主机WEB服务器上的\”+@PRODUCT_NAME+\”虚拟目录例:http://Localhost/\”; szOption1=\”\”; szOption2=\”\”; szTitle=@PRODUCT_NAME+\”安装完成\”; SdFinishEx(szTitle,szMsg1,szMsg2,szOption1,szOption2,bOpt1,bOpt2); szCmdLine=\”http://LocalHost\”; //if(LaunchApp(PROGRAMFILES^\”InternetExplorer\”^\”IEXPLORE.EXE\”,szCmdLine)<0)then //MessageBox(\”不能打开浏览器.\”,SEVERE); //endif; return0; end; ////////////////////////// //创建IIS站点 ////////////////////////// functionCreateWebSite(szServerIPDefault,szServerPortDefault) STRINGszCmdLine,szWaitTxt; begin if((szServerIPDefault=\”\”)||(szServerPortDefault=\”\”))then MessageBox(\”您没有设定\”+@PRODUCT_NAME+\”运行的服务器IP地址或端口!!IIS信息服务设置失败!请自行创建IIS站点,并将主目录设为:\”+TARGETDIR,SEVERE); else szWaitTxt=\”正在创建IIS和设置站点….\”; SdShowMsg(szWaitTxt,TRUE); Delay(2); szCmdLine=SUPPORTDIR^\”mkw3site.vbs\”+\”-r\”+TARGETDIR+\”-i\”+szServerIPDefault+\”-o\”+szServerPortDefault+\”-t\”+@PRODUCT_NAME; if(LaunchAppAndWait(\”WScript.exe\”,szCmdLine,WAIT)<0)then MessageBox(\”不能建立WEB虚拟目录,没有找到WScript.exe或执行脚本错误.\”,SEVERE); endif; SdShowMsg(szWaitTxt,FALSE); endif; return0; end; ////////////////////////// //创建虚拟目录 ////////////////////////// functionCreateVirtualDir(VirtualFolder) STRINGszCmdLine,szWaitTxt; begin if(VirtualFolder=\”\”)then MessageBox(\”没能读取到虚拟目录的名称!请联系系统供应商!\”+TARGETDIR,SEVERE); else szWaitTxt=\”正在创建\”+@PRODUCT_NAME+\”的虚拟目录….\”; SdShowMsg(szWaitTxt,TRUE); Delay(2); szCmdLine=SUPPORTDIR^\”mkwebdir.vbs\”+\”-w1-v\\\”\”+VirtualFolder+\”\\\”,\\\”\”+TARGETDIR+\”\\\”\”; if(LaunchAppAndWait(\”WScript.exe\”,szCmdLine,WAIT)<0)then MessageBox(\”不能建立WEB虚拟目录,没有找到WScript.exe或执行脚本错误.\”,SEVERE); endif; SdShowMsg(szWaitTxt,FALSE); endif; return0; end; ////////////////////////// //创建和优化数据库 ////////////////////////// functionCreateDataBase(svSQLsvr,svSQLusr,svSQLpwd) STRINGszCmdLine,szWaitTxt; begin szWaitTxt=\”正在创建\”+@PRODUCT_NAME+\”所需数据库….\”; SdShowMsg(szWaitTxt,TRUE); Delay(2); szCmdLine=\”/U\”+svSQLusr+\”/P\”+svSQLpwd+\”/S\”+svSQLsvr+\”/Q\\\”execsp_attach_dbN\’OASystem\’,N\’\”+SUPPORTDIR^\”OASystem_data.mdf\’\\\”\”; if(LaunchAppAndWait(\”osql.exe\”,szCmdLine,WAIT)<0)then MessageBox(\”数据库创建失败!请确您的系统中已安装MicrosoftSQLServer2000.如仍无法解决,请联系系统供应商!\”,SEVERE); endif; SdShowMsg(szWaitTxt,FALSE); szWaitTxt=\”正在优化\”+@PRODUCT_NAME+\”系统数据库….\”; SdShowMsg(szWaitTxt,TRUE); Delay(2); szCmdLine=\”/U\”+svSQLusr+\”/P\”+svSQLpwd+\”/S\”+svSQLsvr+\”/Q\\\”useOASystem;execsp_updatestats\\\”\”; if(LaunchAppAndWait(\”osql.exe\”,szCmdLine,WAIT)<0)then MessageBox(\”数据库优化失败!您可以在sql查询分析器中执行useOASystem;execsp_updatestats完成!\”,SEVERE); endif; SdShowMsg(szWaitTxt,FALSE); return0; end;

您可能感兴趣的文章:IIS6 中"ASP 0201 错误 无效的默认脚本语言" 的解决方法使用ASP控制指定站点解析脚本语言函数asp分页生成html的程序脚本代码隐藏修改文件时间和文件属性的ASP脚本ASP.NET调用javascript脚本的常见方法小结从一个网站扒下的asp生成静态页面的代码 悠久资源网特供版iis、apache与nginx禁止目录执行asp、php脚本的实现方法ASP上传漏洞之利用CHR(0)绕过扩展名检测脚本ASP中Server.Execute和Execute实现动态包含(include)脚本的区别ASP.NET中后台注册js脚本使用的方法对比ASP程序中常用的脚本语言

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 其它脚本 用InstallShield打包ASP程序的脚本 https://www.u-9.cn/jiaoben/qita-jiaoben/102142.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务