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製作更新安裝包
- win10怎麼製作安裝u盤_win10安裝U盤製作教程Win10
- U盤如何製作win10安裝盤|win10安裝U盤製作方法Win10
- Debian安裝包的簡單製作
- DMG Canvas 4.0.7 DMG安裝包製作Canvas
- Mac 製作 win10 安裝盤MacWin10
- 隨身碟如何製作win10安裝盤|win10安裝隨身碟製作方法Win10
- oracle linux使用安裝盤製作本地yumOracleLinux
- Python 模組的製作,釋出,安裝Python
- 怎樣製作win10的iOS映象安裝U盤_製作win10 iso映象安裝U盤教程Win10iOS
- 使用CheckInstall從原始碼製作RPM安裝包原始碼
- Linux下使用makeself製作一鍵安裝包Linux
- 製作yum源及安裝賽門鐵克
- win10原版ISO映象如何製作安裝光碟_製作win10原版ISO映象安裝光碟圖文詳解Win10
- 怎樣製作win10的iOS映象安裝隨身碟_製作win10 iso映象安裝隨身碟教程Win10iOS
- win10系統製作mac10.11安裝u盤的方法_win10如何製作mac os x 10.11安裝u盤Win10Mac
- macOS Big Sur系統製作安裝啟動盤教程Mac
- linux/OSX中“DD”命令製作ISO映象作業系統安裝U盤Linux作業系統
- DataGraph for Mac安裝包 MacOS圖形圖表製作軟體Mac
- 如何製作uefi win10安裝盤啟動U盤Win10
- 如何製作win10啟動u盤安裝系統Win10
- 安卓.9圖片製作安卓
- java安裝程式生成工具:install4j for MacJavaMac
- 如何製作uefi win10安裝盤啟動隨身碟Win10
- Packaging.DebUOS 專門為 dotnet 應用製作 UOS 安裝包
- Asp.NetCore程式釋出到CentOs(含安裝部署netcore)–最佳實踐(二)ASP.NETNetCoreCentOS
- UE4藍圖AI角色製作(四)之Gameplay偵錯程式AIGAM
- windows10建立U盤安裝介質流程_win10 U盤安裝介質如何製作WindowsWin10
- 4-kafka安裝Kafka
- 4.安裝MySQLMySql
- centos 8定製安裝CentOS
- 運維軟體PE工具箱下載附製作、安裝教程運維
- Logoist 4 for mac(圖示製作軟體)GoMac
- PE裝機工具-U深度製作
- InstallShield 打包後,啟動軟體
- windows10建立隨身碟安裝介質流程_win10 隨身碟安裝介質如何製作WindowsWin10
- 安卓製作日期選擇器Datepicker安卓
- vue-cli @4安裝Vue
- Linux製作系統啟動盤以及掛載和解除安裝U盤Linux