仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 481|回复: 7
打印 上一主题 下一主题

[学习教程] ASP网页编程之利用InstallShield制造ASP安装程序(3)

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:30:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。上面是创建WEB文件和设置的例子需VBS文件(有假造目次设置,但没有权限设置).

////////////////////////////////////////////////////////////////////////////////
//
//IIIIIIISSSSSS
//IISSInstallShield(R)
//IISSSSSS(c)1996-1999,InstallShieldSoftwareCorporation
//IISS(c)1990-1996,InstallShieldCorporation
//IIIIIIISSSSSSAllRightsReserved.
//
//
//Thiscodeisgeneratedasastartingsetuptemplate.Youshould
//modifyittoprovideallnecessarystepsforyoursetup.
//
//
//文件名:Setup.rul
//
//形貌:InstallShieldscript
//
//正文:Thistemplatescriptperformsabasicsetup.Withminor
//modifications,thistemplatecanbeadaptedtocreate
//new,customizedsetups.
//
////////////////////////////////////////////////////////////////////////////////


//包括的头文件

#include"ifx.h"//不克不及挪动

//////////////////////stringdefines////////////////////////////

////////////////////installationdeclarations///////////////////

//-----DLLfunctionprototypes-----



//yourDLLfunctionprototypes

//----scriptfunctionprototypes-----


//yourscriptfunctionprototypes
prototypeCHK_serial(STRING,STRING);
prototypeRegODBC(STRING);
prototypeset_vod_liveaddress();
//yourglobalvariables
STRINGszvodservername;
STRINGszliveservername;



//////////////////////////////////////////////////////////////////////////////
//
//函数:OnFirstUIBefore
//
//事务:FirstUIBeforeeventissentwheninstallationisrunforthefirst
//timeongivenmachine.Inthehandlerinstallationusuallydisplays
//UIallowingendusertospecifyinstallationparameters.Afterthis
//functionreturns,ComponentTransferDataiscalledtoperformfile
//transfer.
//
///////////////////////////////////////////////////////////////////////////////
functionOnFirstUIBefore()
NUMBERnResult,nSetupType;
STRINGszTitle,szMsg;
STRINGszLicenseFile,szQuestion;
STRINGsvName,svCompany,svSerial;
STRINGszFile;
STRINGszTargetPath;
STRINGszDir;
STRINGszfolder;
STRINGszComponents,szTargetdir;
//zy
STRINGszDefault,svResult;
STRINGsDBSERVERNAME;
OBJECTpiisObj;
//zy
NUMBERnLevel;
LISTlistStartCopy;
LISTlist;
NUMBERnvSize;
STRINGmsg;
begin


//ToDo:ifyouwanttoenablebackground,windowtitle,andcaptionbartitle
//SetTitle(@TITLE_MAIN,24,WHITE);
//SetTitle(@TITLE_CAPTIONBAR,0,BACKGROUNDCAPTION);
//Enable(FULLWINDOWMODE);
//Enable(BACKGROUND);
//SetColor(BACKGROUND,RGB(0,128,128));




nSetupType=TYPICAL;
TARGETDIR="D:"^"cyclone2000";
szDir=TARGETDIR;
SHELL_OBJECT_FOLDER=@FOLDER_NAME;
svName="";
svCompany="";
svSerial="";

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="";
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://安装范例对话框
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_AskText://设置数据库服务器对话框
szTitle="设置数据库服务器";
szMsg="";
szQuestion="请输出SQLSERVER(旋风2000)数据库服务器的主机名或IP地点";
szDefault="192.168.0.1";
SetDialogTitle(DLG_ASK_TEXT,szTitle);
nResult=AskText(szQuestion,szDefault,svResult);
sDBSERVERNAME=svResult;
if(nResult=BACK)gotoDlg_SdSelectFolder;
RegODBC(sDBSERVERNAME);

Dlg_SdStartCopy://入手下手复制文件对话框
szTitle="";
szMsg="";
listStartCopy=ListCreate(STRINGLIST);
//Thefollowingisanexampleofhowtoaddastring(svName)toalist(listStartCopy).
//eg.ListAddString(listStartCopy,svName,AFTER);
nResult=SdStartCopy(szTitle,szMsg,listStartCopy);
ListDestroy(listStartCopy);
if(nResult=BACK)gotoDlg_AskText;
//setupdefaultstatus
SetStatusWindow(0,"");
Enable(STATUSEX);
StatusUpdate(ON,100);

return0;

end;
//////////////////////////////////////////////////////////////////////////////
//
//函数:OnFirstUIAfter
//
//事务:FirstUIAftereventissentafterfiletransfer,wheninstallation
//isrunforthefirsttimeongivenmachine.Inthiseventhandler
//installationusuallydisplaysUIthatwillinformenduserthat
//installationhasbeencompletedsuccessfully.
//
///////////////////////////////////////////////////////////////////////////////
functionOnFirstUIAfter()
STRINGszTitle,szMsg1,szMsg2,szOption1,szOption2,szCmdLine;
NUMBERbOpt1,bOpt2;

begin
szCmdLine=SUPPORTDIR^"mkwebdir.vbs"+"-cLocalHost-w1-vcyclone2000-d"+TARGETDIR;
if(LaunchAppAndWait("WScript.exe",szCmdLine,WAIT)<0)then
MessageBox("不克不及创建WEB假造目次.",SEVERE);
endif;
set_vod_liveaddress();
szCmdLine=SUPPORTDIR^"odbc.reg";
if(LaunchAppAndWait("regedit.exe",szCmdLine,WAIT)<0)then
MessageBox("不克不及设置ODBC.",SEVERE);
endif;
Disable(STATUSEX);
bOpt1=FALSE;
bOpt2=FALSE;
szMsg1=SdLoadString(IFX_SDFINISH_MSG1);
szMsg2="请扫瞄本主机WEB服务器上的cyclone2000假造目次

例:
http://Localhost/cyclone2000/default.htm";
szOption1="";
szOption2="";
szTitle="旋风2000安装完成";
SdFinishEx(szTitle,szMsg1,szMsg2,szOption1,szOption2,bOpt1,bOpt2);

szCmdLine="http://LocalHost/cyclone2000/default.htm";
if(LaunchApp(PROGRAMFILES^"InternetExplorer"^"IEXPLORE.EXE",szCmdLine)<0)then
MessageBox("不克不及翻开扫瞄器.",SEVERE);
endif;

return0;
end;

///////////////////////////////////////////////////////////////////////////////
//


我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。
再现理想 该用户已被删除
沙发
发表于 2015-1-19 15:43:13 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
小女巫 该用户已被删除
板凳
发表于 2015-2-5 17:37:11 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-13 03:55:26 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
冷月葬花魂 该用户已被删除
5#
发表于 2015-3-3 13:27:23 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
admin 该用户已被删除
6#
发表于 2015-3-11 11:16:43 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
透明 该用户已被删除
7#
发表于 2015-3-18 08:05:48 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
兰色精灵 该用户已被删除
8#
发表于 2015-3-25 14:58:09 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 07:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表