|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 1 樓
|
發表於: 星期一 四月 26, 2004 12:57 am 文章主題: FirebirdSQL--製作安裝腳本 |
|
|
FirebirdSQL--製作安裝腳本
以NSIS為例.本篇整合FirebirdSQL及ODBC.
省去每次安裝要兩次步驟.
代碼: |
; Script generated by the HM NIS Edit Script Wizard.
; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "FirebirdSQL"
!define PRODUCT_VERSION "1.5.0"
!define PRODUCT_PUBLISHER "Firebird Project"
!define PRODUCT_WEB_SITE "http://wiki.sunyear.com.tw/index.php?page=FirebirdSQL"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\FirebirdSQL\bin\fbguard.exe"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define PRODUCT_SRC_DIR ""
!define PRODUCT_Firebird_DIR "D:\firebird\FirebirdSQL"
!define PRODUCT_ODBC_DIR "D:\firebird\ODBC_DLL"
; MUI 1.67 compatible ------
!include "MUI.nsh"
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "D:\Firebird\FirebirdSQL\Firebird.ico"
!define MUI_UNICON "D:\Firebird\FirebirdSQL\Firebird.ico"
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; License page
!insertmacro MUI_PAGE_LICENSE "${PRODUCT_Firebird_DIR}\讀我.txt"
; Components page
!insertmacro MUI_PAGE_COMPONENTS
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
;!define MUI_FINISHPAGE_RUN "$INSTDIR\bin\fbguard.exe -a"
;!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Example.file"
;!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "TradChinese"
; MUI end ------
;--------------------------------
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "Firebird_Setup.exe"
;InstallDir "$PROGRAMFILES\FirebirdSQL"
InstallDir "C:\fb15"
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
ShowInstDetails show
ShowUnInstDetails show
InstType "單機版"
InstType "網路Server版"
InstType "網路Client版"
InstType /NOCUSTOM
Section "Firebird Server" SEC01
SetOutPath "$INSTDIR"
SetOverwrite on
File /r "${PRODUCT_Firebird_DIR}\*.*"
ExecShell open '$INSTDIR\bin\instclient.exe' 'install fbclient' SW_SHOWMINIMIZED
ExecShell open '$INSTDIR\bin\instclient.exe' 'install gds32' SW_SHOWMINIMIZED
ExecShell open '$INSTDIR\bin\instreg.exe' 'install ' SW_SHOWMINIMIZED
ExecShell open '$INSTDIR\bin\instsvc.exe' 'install -auto -superserver -guardian -z' SW_SHOWMINIMIZED
;ExecShell open '$INSTDIR\bin\instsvc.exe' 'start' SW_SHOWMINIMIZED
SectionIn 1 2
SectionEnd
Section "Firebird Client" SEC02
SetOutPath "$INSTDIR"
SetOverwrite on
ExecShell open '$INSTDIR\bin\instclient.exe' 'install fbclient' SW_SHOWMINIMIZED
ExecShell open '$INSTDIR\bin\instclient.exe' 'install gds32' SW_SHOWMINIMIZED
SectionIn 1 3
SectionEnd
Section "Firebird ODBC" SEC03
SetOutPath "$SYSDIR"
SetOverwrite on
File "${PRODUCT_ODBC_DIR}\IscDbc.dll"
File "${PRODUCT_ODBC_DIR}\OdbcJdbc.dll"
File "${PRODUCT_ODBC_DIR}\OdbcJdbcSetup.dll"
;ExecShell open '$SYSDIR\regsvr32.exe ' '$SYSDIR\OdbcJdbcSetup.dll' SW_SHOWMINIMIZED
;SetOutPath "$INSTDIR"
RegDLL "$INSTDIR\ODBC\OdbcJdbcSetup.dll"
SectionIn 1 2 3
SectionEnd
Section -AdditionalIcons
WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
CreateDirectory "$SMPROGRAMS\FirebirdSQL"
CreateShortCut "$SMPROGRAMS\FirebirdSQL\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
CreateShortCut "$SMPROGRAMS\FirebirdSQL\Uninstall.lnk" "$INSTDIR\uninst.exe"
CreateShortCut "$SMPROGRAMS\FirebirdSQL\fbguard.lnk" "$INSTDIR\bin\fbguard.exe" "-a"
SectionEnd
Section -Post
WriteUninstaller "$INSTDIR\uninst.exe"
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\fbguard.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\bin\fbguard.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
SectionEnd
; Section descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "FirebirdSQL DataBase Server"
!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "FierbirdSQL Client"
!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Firebird ODBC"
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;=======================================================
;安裝前的動作
;=======================================================
Function .onInit
ExecShell open '$INSTDIR\bin\instsvc.exe' 'stop' SW_SHOWMINIMIZED
ExecShell open '$INSTDIR\bin\instsvc.exe' 'remove -z' SW_SHOWMINIMIZED
ExecShell open '$INSTDIR\bin\instreg.exe' 'remove -z' SW_SHOWMINIMIZED
FunctionEnd
;=======================================================
;安裝後的動作
;=======================================================
Function .onInstSuccess
;ExecShell open '$INSTDIR\bin\instclient.exe' 'install fbclient' SW_SHOWMINIMIZED
;ExecShell open '$INSTDIR\bin\instclient.exe' 'install gds32' SW_SHOWMINIMIZED
;ExecShell open '$INSTDIR\bin\instreg.exe' 'install ' SW_SHOWMINIMIZED
;ExecShell open '$INSTDIR\bin\instsvc.exe' 'install -auto -superserver -guardian -z' SW_SHOWMINIMIZED
ExecShell open '$INSTDIR\bin\instsvc.exe' 'start' SW_SHOWMINIMIZED
;ExecShell open 'c:\fb15\bin\fbguard.exe -a'
;Exec 'c:\fb15\bin\fbguard.exe -a'
;Exec 'c:\fb15\bin\instsvc start'
;!insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioA.ini"
;!insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioB.ini"
;!insertmacro MUI_INSTALLOPTIONS_EXTRACT "test.ini"
FunctionEnd
;=======================================================
;反安裝後的動作
;=======================================================
Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地從你的電腦移除。"
FunctionEnd
;=======================================================
;反安裝前的動作
;=======================================================
Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你確定要完全移除 $(^Name) ,其及所有的元件?" IDYES +2
Abort
FunctionEnd
;=======================================================
;反安裝的動作
;=======================================================
Section Uninstall
;Firebird反安裝
ExecShell open 'net ' 'stop "firebird guardian"'
ExecShell open '$INSTDIR\bin\instsvc.exe' 'stop'
ExecShell open '$INSTDIR\bin\instsvc.exe' 'remove -z'
ExecShell open '$INSTDIR\bin\instreg.exe' 'remove -z'
Delete "$INSTDIR\${PRODUCT_NAME}.url"
Delete "$INSTDIR\uninst.exe"
;Delete "$INSTDIR\Example.file"
;Delete "$INSTDIR\AppMainExe.exe"
;ODBC反安裝
UnRegDLL "$INSTDIR\ODBC\OdbcJdbcSetup.dll"
;SetOutPath "$SYSDIR"
;ExecShell open 'regsvr32.exe' '/u .\OdbcJdbcSetup.dll' SW_SHOWMINIMIZED
Delete "$SYSDIR\OdbcJdbcSetup.dll"
Delete "$SYSDIR\OdbcJdbc.dll"
Delete "$SYSDIR\IscDbc.dll"
RMDir /r "$INSTDIR"
;?#123;式集--反安裝
Delete "$SMPROGRAMS\FirebirdSQL\Uninstall.lnk"
Delete "$SMPROGRAMS\FirebirdSQL\Website.lnk"
RMDir "$SMPROGRAMS\FirebirdSQL"
RMDir /r "$SMPROGRAMS\FirebirdSQL"
;RMDir "$INSTDIR"
;註冊碼移除
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
SetAutoClose true
SectionEnd |
_________________ #############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!
學會VFP使用者社區的搜尋,Code才會更有趣~
############################# |
|
回頂端 |
|
|
goto-dream
註冊時間: 2004-05-11 文章: 909
第 2 樓
|
發表於: 星期一 六月 28, 2004 12:19 pm 文章主題: |
|
|
一樓的安裝後會以Services方式執行.這只適用於非Win98/WinMe
所以安裝程式要略作修正.可依照作業系統安裝.函數應用如下:
代碼: | B.5 Get Windows version
; GetWindowsVersion
;
; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
; Updated by Joost Verburg
;
; Returns on top of stack
;
; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003)
; or
; '' (Unknown Windows Version)
;
; Usage:
; Call GetWindowsVersion
; Pop $R0
; ; at this point $R0 is "NT 4.0" or whatnot
Function GetWindowsVersion
Push $R0
Push $R1
ReadRegStr $R0 HKLM \
"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
IfErrors 0 lbl_winnt
; we are not NT
ReadRegStr $R0 HKLM \
"SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
StrCpy $R1 $R0 1
StrCmp $R1 '4' 0 lbl_error
StrCpy $R1 $R0 3
StrCmp $R1 '4.0' lbl_win32_95
StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
lbl_win32_95:
StrCpy $R0 '95'
Goto lbl_done
lbl_win32_98:
StrCpy $R0 '98'
Goto lbl_done
lbl_win32_ME:
StrCpy $R0 'ME'
Goto lbl_done
lbl_winnt:
StrCpy $R1 $R0 1
StrCmp $R1 '3' lbl_winnt_x
StrCmp $R1 '4' lbl_winnt_x
StrCpy $R1 $R0 3
StrCmp $R1 '5.0' lbl_winnt_2000
StrCmp $R1 '5.1' lbl_winnt_XP
StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error
lbl_winnt_x:
StrCpy $R0 "NT $R0" 6
Goto lbl_done
lbl_winnt_2000:
Strcpy $R0 '2000'
Goto lbl_done
lbl_winnt_XP:
Strcpy $R0 'XP'
Goto lbl_done
lbl_winnt_2003:
Strcpy $R0 '2003'
Goto lbl_done
lbl_error:
Strcpy $R0 ''
lbl_done:
Pop $R1
Exch $R0
FunctionEnd |
其實若不會修改.可以去下載Controls Centers軟體.
設定後依樣可執行.......
感覺FirebirdSQL包含管理/控制台等軟體.可放置於64MB隨身跌上.
比MSSQL太方便拉!!! _________________ 福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!
想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.
愛作夢 |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|