InstallShield製作ASP安裝程式(4)
看人家用使用InstallShield製作ASP安裝程式(4)
(文件類別:) 2002-2-5
/////////////////////////////////////////////////////////////////////////////// // // 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 ^"installcreatedb.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. // |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/631872/viewspace-823711/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- InstallShield製作ASP安裝程式(6)
- InstallShield製作ASP安裝程式(5)
- InstallShield製作ASP安裝程式(3)
- InstallShield製作ASP安裝程式(2)
- InstallShield製作ASP安裝程式(1)
- InstallShield X製作安裝程式
- InstallShield製作升級安裝包
- InstallShield Express for delphi製作安裝程式定製BDE引擎 (轉)Express
- 製作asp.net的安裝程式ASP.NET
- Installshield製作更新安裝包
- InstallShield6.3安裝檔案製作要點 (轉)
- 教你如何製作程式安裝包
- InstallShield中如何製作靜默安裝包-IntallScript或InstallScript MSI工程型別型別
- 自己編寫安裝製作程式 (轉)
- java 應用程式 安裝程式製作(要帶jvm)JavaJVM
- 使用NSIS製作安裝包
- Redhat kickstart 安裝光碟製作Redhat
- RedHat DVD安裝盤製作Redhat
- 升級安裝包的製作
- win10怎麼製作安裝u盤_win10安裝U盤製作教程Win10
- U盤如何製作win10安裝盤|win10安裝U盤製作方法Win10
- DMG Canvas 4.0.7 DMG安裝包製作Canvas
- Mac OS製作Ubuntu安裝U盤MacUbuntu
- 製作iPhone PXL安裝包的方法iPhone
- Mac 製作 win10 安裝盤MacWin10
- 隨身碟如何製作win10安裝盤|win10安裝隨身碟製作方法Win10
- 安裝和配置 ASP.NET 4(Arch Linux)ASP.NETLinux
- 製作yum源及安裝賽門鐵克
- Debian安裝包的簡單製作
- 7z製作自解壓安裝包
- 本地yum庫製作及本地安裝DockerDocker
- Python 模組的製作,釋出,安裝Python
- 《ASP網頁製作教程》筆記網頁筆記
- 怎樣製作win10的iOS映象安裝U盤_製作win10 iso映象安裝U盤教程Win10iOS
- 如何製作python安裝模組(setup.py)Python
- VS2010 製作安裝包
- 系統安裝引導盤的製作(轉)
- Windows CE/Pocket PC安裝盤的製作 (轉)Windows