精典的ASP传奇的J2EE新生的NETFTP服务器服务器安全WINDOWSB/S 模式WEB安全WAP世界动态网站推广宣传
空间服务器数据库技术邮局服务器站長工具硬设与组建Alexa专题DHTML项目管理WEB标准电脑硬件
病毒知识电脑使用布线协议接入交换路由局域网无线网络网络规划
Visual BasicVisual C/C++MssqlMySqloracleSybase 存在安全风险进程系统进程列表应用程序进程列表其它进程列表
黑客编程漏洞分析本地提权免杀技术脚本漏洞数据库注入安全防护内网渗透加密解密工具使用
WAP技术WAP入门
 您的位置:   >> 相关知识 >> 程序员站长 >> 站長工具 >>

用InstallShield打包ASP程序

合金网络科技

 
  添加日期:2007-12-4 点击次数:3次  
   
 

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 文件及其他设置
LR_电脑书籍网

//////////////////////////////////////////////////////////////////////////////
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,svEdit1,svEdit2;
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 szField1,szField2;
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, 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 = JDinfo Network;
svSerial = 111-1111111;

Dlg_Start:
// beginning of dialogs label

Dlg_SdWelcome: //欢迎 对话框
szTitle = 欢迎进入;
szMsg = ;
nResult = SdWelcome( 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_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) 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)<0) then
//goto Dlg_SdRegisterUserEx;
//endif;
//检查序列号完毕
Dlg_SdAskDestPath://安装位置 对话框
szTitle = 检查序列号;
szMsg = ;
nResult = SdAskDestPath( szTitle, szMsg, szDir, 0 );
TARGETDIR = szDir;
if (nResult = BACK) goto Dlg_SdRegisterUserEx;

Dlg_SetupType: //安装类型 对话框
nSetupType = TYPICAL;
szTitle = 安装类型;
szMsg = 请选择您需要按哪种方式安装;       
nResult = SetupType ( szTitle , szMsg , , nSetupType , 0 );
if (nResult = BACK) then
 goto Dlg_SdAskDestPath;
else
 nSetupType = nResult;
 if (nSetupType != CUSTOM) then
  szTargetPath = TARGETDIR;
  nvSize = 0;
  ComponentCompareSizeRequired(MEDIA,szTargetPath,nvSize);
  if (nvSize != 0) 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 = 2;
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 = 请选择软件运行的方式,极力推荐使用独立站点方式运行;
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) goto Dlg_SdSelectFolder;
if (svEdit1=FALSE) goto Dlg_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) 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=SdShowDlgEdit3 (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 (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) goto Dlg_AskText;
// setup default status
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); // 创建和优化数据库

return 0;
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 completed successfully.
//
///////////////////////////////////////////////////////////////////////////////
function OnFirstUIAfter()
STRING szTitle,szMsg1, szMsg2, szOption1, szOption2,szCmdLine;
NUMBER bOpt1, 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 ^Internet Explorer^IEXPLORE.EXE, szCmdLine) < 0) then
//MessageBox (不能打开浏览器.,SEVERE);
//endif;

return 0;
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(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;
 return 0;
end;

//////////////////////////
// 创建虚拟目录
//////////////////////////
function CreateVirtualDir(VirtualFolder)
STRING szCmdLine,szWaitTxt;
begin
 if (VirtualFolder = ) then
  MessageBox (没能读取到虚拟目录的名称!请联系系统供应商!+TARGETDIR,SEVERE);
 else
  szWaitTxt= 正在创建+@PRODUCT_NAME+的虚拟目录....;
  SdShowMsg (szWaitTxt, TRUE);
  Delay(2);
  szCmdLine = SUPPORTDIR ^mkwebdir.vbs + -w 1 -v \+VirtualFolder+\,\+ TARGETDIR+\ ;
  if (LaunchAppAndWait(WScript.exe, szCmdLine,WAIT) < 0) then
   MessageBox (不能建立WEB 虚拟目录,没有找到 WScript.exe 或执行脚本错误.,SEVERE);
  endif;
  SdShowMsg (szWaitTxt, FALSE);
 endif;
 return 0;
end;

//////////////////////////
// 创建和优化数据库
//////////////////////////
function CreateDataBase(svSQLsvr,svSQLusr,svSQLpwd)
STRING szCmdLine,szWaitTxt;
begin
 szWaitTxt= 正在创建+@PRODUCT_NAME+所需数据库....;
 SdShowMsg (szWaitTxt, TRUE);
 Delay(2);     
 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) < 0) then
  MessageBox (数据库创建失败!请确您的系统中已安装 Microsoft SQL Server 2000. 如仍无法解决,请联系系统供应商!,SEVERE);
 endif;
 SdShowMsg (szWaitTxt, FALSE);
 szWaitTxt= 正在优化+@PRODUCT_NAME+系统数据库....;
 SdShowMsg (szWaitTxt, TRUE);
 Delay(2);     
 szCmdLine = /U +svSQLusr+ /P +svSQLpwd+ /S +svSQLsvr+ /Q \use OASystem ; exec sp_updatestats\;
 if (LaunchAppAndWait(osql.exe, szCmdLine,WAIT) < 0) then
  MessageBox (数据库优化失败!您可以在 sql查询分析器中执行 use OASystem ; exec sp_updatestats 完成!,SEVERE);
 endif;
 SdShowMsg (szWaitTxt, FALSE);
 return 0;
end;


 

精典的ASP精选TOP
· 利用ADODB.Stream 防盗链
· Adodb.Stream说明手册
· 采集需要登录
· ASP 判断远程图片是否存在
· 在ServerXMLHTTP组件中使用代理服务器
· 用XMLHTTP通过代理服务器从服务提取数据的一些问题
· objXML.readystate的值
· 互联网HTTP连接等出错代码大全
· 利用XMLHTTP实现的二级连动Select
· 利用 xmlhttp 分块上传文件
 
服务器安全点击TOP
· 新云最新漏洞总结篇
· 各类网站的默认数据库和密码
· Windows Server2003 防木马权限设置IIS服务器安全配置整理
· 针对ASP网站的Win 2003硬盘安全设置
· IIS 6 的PHP 最佳配置方法
· 利用SA.exe 将Iusr_victim克隆为Administrator
· Cmd模式下的入侵技术大全
· 破解网页代码加密
· SERV-U 6.4提权方法,通杀SERV-U版本
· 新云网站管理系统文件注入漏洞
 
硬设与组建点击TOP
· 从头到尾教你组建小型局域网20
· 从头到尾教你组建小型局域网19
· 从头到尾教你组建小型局域网18
· 从头到尾教你组建小型局域网17
· 从头到尾教你组建小型局域网16
· 从头到尾教你组建小型局域网15
· 从头到尾教你组建小型局域网14
· 从头到尾教你组建小型局域网13
· 从头到尾教你组建小型局域网12
· 从头到尾教你组建小型局域网11
 
病毒知识点击TOP
· 不再重装 手动清除顽固病毒AutoRUN
· 木马静态变动态 DLL木马程序大揭秘
· 详解一个很牛X的网马
· 一个网马
· Trojan-Downloader.Win32.Delf.bab
· 抓了一个AJAX的网马
· 迅雷5 最新0day利用程序
· 自动关掉270种杀毒软件
· RealPlayer 最新网马
· 五个反弹型后门的源代码
 
WINDOWS点击TOP
· 4【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· 3【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· 2【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· 1【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· Capture an HTML document as an image
· 如何给eWebEditor编辑器加上运行代码框功能
· 给CuteEditor5增加了高亮代码显示功能
· CuteEditor6.0使用配置心得体会
· 关于IE插件的CLSID问题
· 对开发的程序(制作CAB)进行签名,并允许网站中使用
  "凌风微型文章系统",针对"搜索引擎"完美设计,提高"搜索引擎"对网站容量,质量的评估值,"扁平化,转静态 ..."