|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了.关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用installshield|程序6.3版好象是用事务驱动的:
//////////////////////////////////////////////////////
//
//函数:OnFirstUIBefore
//
//事务:FirstUIBeforeeventissentwheninstallationisrunforthefirst
//timeongivenmachine.Inthehandlerinstallationusuallydisplays
//UIallowingendusertospecifyinstallationparameters.Afterthis
//functionreturns,ComponentTransferDataiscalledtoperformfile
//transfer.
//
//////////////////////////////////////////////////////
OnFirstUIBefore()是在某台电脑上第一次运转安装时实行.
//////////////////////////////////////////////////////
//
//函数:OnFirstUIAfter
//
//事务:FirstUIAftereventissentafterfiletransfer,wheninstallation
//isrunforthefirsttimeongivenmachine.Inthiseventhandler
//installationusuallydisplaysUIthatwillinformenduserthat
//installationhasbeencompletedsuccessfully.
//
//////////////////////////////////////////////////////
OnFirstUIAfter()在文件复制停止后运转.
上面是创建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;
////////////////////////////////////////////////////////
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天 |
|