您的位置:首页网页设计ASP实例 → 使用InstallShield制作ASP安装程序4

使用InstallShield制作ASP安装程序4

时间:2004/11/7 3:00:00来源:本站整理作者:蓝点我要评论(0)

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

//

// FUNCTION: OnMaintUIAfter

//

// EVENT: MaintUIAfter event is sent after file transfer, when end user runs

// installation that has already been installed on the machine. Usually

// this happens through Add/Remove Programs applet.

// In the handler installation usually displays UI that will inform

// end user that maintenance/uninstallation has been completed successfully.

//

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

function OnMaintUIAfter()

STRING szTitle, szMsg1, szMsg2, szOption1, szOption2;

NUMBER bOpt1, bOpt2;

begin

Disable(STATUSEX);

bOpt1 = FALSE;

bOpt2 = FALSE;

szMsg1 = SdLoadString(IFX_SDFINISH_MAINT_MSG1);

szMsg2 = "";

szOption1 = "";

szOption2 = "";

szTitle = SdLoadString(IFX_SDFINISH_MAINT_TITLE);

SdFinishEx(szTitle,szMsg1,szMsg2,szOption1,szOption2,bOpt1,bOpt2);

return 0;

end;



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

//

// FUNCTION: OnMoving

//

// EVENT: Moving event is sent when file transfer is started as a result of

// ComponentTransferData call, before any file transfer operations

// are performed.

//

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

function OnMoving()

STRING szAppPath;

begin

// Set LOGO Compliance Application Path

// TO DO : if your application .exe is in a subfolder of TARGETDIR then add subfolder

szAppPath = TARGETDIR;

RegDBSetItem(REGDB_APPPATH, szAppPath);

RegDBSetItem(REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY);



end;



// --- include script file section ---





function LoginSQL( szTitle,szSqlsvname,szSqluser,szSqlpassword )



STRING szDlg, szTemp;

NUMBER bDone, nId, nMessage, nTemp;

INT hwndDlg;

HWND hwndControl;

begin

szDlg = "DLG_LoginSQLSV";



// record data produced by this dialog

if (MODE=SILENTMODE) then

SdMakeName( szAppKey, szDlg, szTitle, nLoginSQL );

SilentReadData( szAppKey, "Result", DATA_NUMBER, szTemp, nId );

if ((nId != BACK) && (nId != CANCEL)) then

SilentReadData( szAppKey, "szSqlsvname", DATA_STRING, szSqlsvname, nTemp );

SilentReadData( szAppKey, "szSqluser", DATA_STRING, szSqluser, nTemp );

SilentReadData( szAppKey, "szSqlpassword", DATA_STRING, szSqlpassword, nTemp );

endif;



return nId;

endif;



// ensure general initialization is complete

if (!bSdInit) then

SdInit();

endif;



if (EzDefineDialog( szDlg, "", "",DLG_LoginSQLSV ) = DLG_ERR) then

return -1;

endif;



// 在用户选择标准按钮前进行循环

bDone = FALSE;



while (!bDone)



nId = WaitOnDialog( szDlg );//显示对话框

hwndControl = GetDlgItem (hwndDlg, SD_EDIT_SQLSV_NAME);

SetFocus (hwndControl);



switch(nId)

case DLG_INIT:

CtrlSetText( szDlg, SD_EDIT_SQLSV_NAME, szSqlsvname );

CtrlSetText( szDlg, SD_EDIT_SQLSV_USER, szSqluser );

CtrlSetText( szDlg, SD_EDIT_SQLSV_PASSWORD, szSqlpassword );



hwndDlg = CmdGetHwndDlg( szDlg );

SdGeneralInit( szDlg, hwndDlg, STYLE_NORMAL, szSdProduct );



//This function sets the caption for old style dialogs or

//sets the text in the top banner area of win2k style dialogs

SdSetDlgTitle(szDlg, hwndDlg, szTitle);

case SD_EDIT_SQLSV_NAME:

nMessage = CtrlGetSubCommand( szDlg );

if( nMessage = EDITBOX_CHANGE ) then

CtrlGetText( szDlg, SD_EDIT_SQLSV_NAME, szSqlsvname );

endif;

case SD_EDIT_SQLSV_USER:

nMessage = CtrlGetSubCommand( szDlg );

if( nMessage = EDITBOX_CHANGE ) then

CtrlGetText( szDlg, SD_EDIT_SQLSV_USER, szSqluser );

endif;

case SD_EDIT_SQLSV_PASSWORD:

nMessage = CtrlGetSubCommand( szDlg );

if( nMessage = EDITBOX_CHANGE ) then

CtrlGetText( szDlg, SD_EDIT_SQLSV_PASSWORD, szSqlpassword );

endif;

case OK:

nId = NEXT;

bDone = TRUE;



case BACK:

nId = BACK;

bDone = TRUE;



case DLG_ERR:

SdError( -1, "SdWelcome" );

nId = -1;

bDone = TRUE;



case DLG_CLOSE:

SdCloseDlg( hwndDlg, nId, bDone );



default:

// check standard handling

if (SdIsStdButton( nId ) && SdDoStdButton( nId )) then

bDone = TRUE;

endif;

endswitch;



endwhile;



EndDialog( szDlg );

ReleaseDialog( szDlg );



SdUnInit( );



// record data produced by this dialog

SdMakeName( szAppKey, szDlg, szTitle, nLoginSQL );

SilentWriteData( szAppKey, "szSqlsvname", DATA_STRING, szSqlsvname, 0 );

SilentWriteData( szAppKey, "szSqluser", DATA_STRING, szSqluser, 0 );

SilentWriteData( szAppKey, "szSqlpassword", DATA_STRING, szSqlpassword, 0 );

SilentWriteData( szAppKey, "Result", DATA_NUMBER, "", nId );



return nId;



end;



function exeSQLfile( szsqlfilename )

STRING szCmdLine;

NUMBER nTemp;

begin

szCmdLine = SUPPORTDIR ^"osql.exe";

if (LaunchAppAndWait(SUPPORTDIR ^"osql.exe", szsqlfilename,WAIT) < 0) then

MessageBox ("不能运行SQL安装文件.",SEVERE);

endif;



end;



function modifdbdir()

STRING szinstallfile;

NUMBER nvResult,nvLineNumber;

STRING szwindir,svReturnLine;

NUMBER sn,nStartPos;

STRING sz1,sz2,sznewdir;

NUMBER nTemp;

begin

szinstallfile = TARGETDIR ^"install\\createdb.sql";

//替换 DB文件的建立路径

while (nvResult != END_OF_FILE)

nvResult = FileGrep (szinstallfile, "D:\\cycdata\\", svReturnLine,nvLineNumber, RESTART);

//FileDeleteLine(szodbcregfile, nvLineNumber, nvLineNumber);

sn=StrLength (svReturnLine);

nStartPos = StrFind(svReturnLine,"D:\\cycdata\\");

StrSub (sz1, svReturnLine, 0, nStartPos);

StrSub (sz2, svReturnLine, nStartPos+11, sn-nStartPos-11);

sznewdir=sz1+TARGETDIR ^sz2;

FileInsertLine(szinstallfile, sznewdir,nvLineNumber, REPLACE);

sz1="";

sz2="";

sznewdir="";

endwhile;



end;



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

//

// FUNCTION: OnFileReadOnly

//

// EVENT: FileReadOnly event is sent during file transfer when a read-only

// file is needs to be overwritten or removed.

//

// ARGUMENTS: File - full path of file that is marked as read-only.

//

// RETURN: ERR_YES - the file should be overwritten or removed.

// ERR_NO - the file should not be modified.

//

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

function OnFileReadOnly(File)

begin

return SdExceptions(READONLY, File);

end;



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

//

// FUNCTION: OnFileReadOnly

//

// EVENT: FileReadOnly event is sent during file transfer when a read-only

// file is needs to be overwritten or removed.

//

// ARGUMENTS: File - full path of file that is marked as read-only.

//

// RETURN: ERR_YES - the file should be overwritten or removed.

// ERR_NO - the file should not be modified.

//






相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 迅雷新手完全入门手册 asp下面javascript上传图片限制格式大小方法告诉大家网页弹出窗口应用总结ASP常见错误类型大全asp常见错误分析和解决办法

人气排行 总是弹出visual studio 实时调试器 三种解决SQLSERVER存储过程及调用详解Asp获取真实IP地址ASP中连接Mssql的几种方法一个简单好用的UBB编辑器(含代码)如何用Split将字符串转换为数组并获取数组下ASP防止表单重复提交的办法告诉你免费的简单聊天室源代码