/// // // 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 szAppPath = TARGETDIR; RegDBSetItem(REGDB_APPPATH, szAppPath); RegDBSetItem(REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY); end; // --- include script file section ---
6.3版好象是用事件驱动的: // // // 函数: 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. // ///
OnFirstUIBefore()是在某台电脑上第一次运行安装时执行.
// // // 函数: 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. // /// OnFirstUIAfter()在文件复制结束后运行.
// // IIIIIII SSSSSS // II SS InstallShield (R) // II SSSSSS (c) 1996-1999, InstallShield Software Corporation // II SS (c) 1990-1996, InstallShield Corporation // IIIIIII SSSSSS All Rights Reserved. // // // This code is generated as a starting setup template. You should // modify it to provide all necessary steps for your setup. // // // 文件名: Setup.rul // // 描述: InstallShield script // // 注释: This template script performs a basic setup. With minor // modifications, this template can be adapted to create // new, customized setups. //
// 包含的头文件
#include "ifx.h" //不能移动
// string defines
installation declarations ///
// ----- DLL function prototypes -----
// your DLL function prototypes
// ---- script function prototypes -----
// your script function prototypes prototype CHK_serial(STRING,STRING); prototype RegODBC(STRING); prototype set_vod_liveaddress(); // your global variables STRING szvodservername; STRING szliveservername;
// // // 函数: 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; STRING szTitle, szMsg; STRING szLicenseFile, szQuestion; STRING svName, svCompany, svSerial; STRING szFile; STRING szTargetPath; STRING szDir; STRING szfolder; STRING szComponents, szTargetdir; //zy STRING szDefault,svResult; STRING sDBSERVERNAME; OBJECT piisObj; //zy NUMBER nLevel; LIST listStartCopy; LIST list; NUMBER nvSize; STRING msg; begin
//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));
Dlg_SdStartCopy://开始复制文件 对话框 szTitle = ""; szMsg = ""; listStartCopy = ListCreate( STRINGLIST ); //The following is an example of how to add a string(svName) to a list(listStartCopy). //eg. ListAddString(listStartCopy,svName,AFTER); nResult = SdStartCopy( szTitle, szMsg, listStartCopy ); ListDestroy(listStartCopy); if (nResult = BACK) goto Dlg_AskText; // setup default status SetStatusWindow(0, ""); Enable(STATUSEX); StatusUpdate(ON, 100);
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;
/// // // 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;
//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. //
// // IIIIIII SSSSSS // II SS InstallShield (R) // II SSSSSS (c) 1996-1999, InstallShield Software Corporation // II SS (c) 1990-1996, InstallShield Corporation // IIIIIII SSSSSS All Rights Reserved. // // // This code is generated as a starting setup template. You should // modify it to provide all necessary steps for your setup. // // // File Name: Setup.rul // // Description: InstallShield script // // Comments: This template script performs a basic setup. With minor // modifications, this template can be adapted to create // new, customized setups. //
// Include header files
#include "ifx.h" //DO NOT REMOVE
// string defines
installation declarations ///
// ----- DLL function prototypes -----
// your DLL function prototypes
// ---- script function prototypes -----
// your script function prototypes
// your global variables
// // // FUNCTION: OnFirstUIBefore // // EVENT: 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; STRING szTitle, szMsg; STRING szLicenseFile, szQuestion; STRING svName, svCompany, svSerial; STRING szDir; STRING szfolder; STRING szComponents, szTargetdir; NUMBER nLevel;
begin
//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));
// // // FUNCTION: OnFirstUIAfter // // EVENT: 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: OnMaintUIBefore // // EVENT: MaintUIBefore event is sent 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 allowing end user to modify existing installation // or uninstall application. After this function returns, // ComponentTransferData is called to perform file transfer. // /// function OnMaintUIBefore() NUMBER nResult,nLevel,nType; STRING szTitle,szMsg,svDir,szComponents,svResult,szCaption; begin
//To Do: if you want to enable background, window title, and caption bar title // SetTitle( @TITLE_MAIN, 24, WHITE ); // SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION ); // SetColor(BACKGROUND,RGB (0, 128, 128)); // Enable( FULLWINDOWMODE ); // Enable( BACKGROUND );
/// // // 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);