FirebirdSQL/問答篇/安裝程式的腳本製作
出自VFP Wiki
小 (revert) |
|||
(2個中途的修訂版本沒有顯示) | |||
第974行: | 第974行: | ||
#[http://ibinstall.defined.net/download/BorCon%202001%20-%201138.htm#Introduction InterBase Installation & Deployment Options] | #[http://ibinstall.defined.net/download/BorCon%202001%20-%201138.htm#Introduction InterBase Installation & Deployment Options] | ||
#[http://ibinstall.defined.net/dl_scripts.htm InterBase Installation Info Script Downloads] | #[http://ibinstall.defined.net/dl_scripts.htm InterBase Installation Info Script Downloads] | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- |
在2005年4月16日 (六) 01:47的最新修訂版本
目錄 |
製作安裝程式的注意事項
- 安裝前
- 請將正在執行的Firebird或Interbase,停止運作.
- 安裝
- 下載Firebird ZIP檔案.並且解壓縮檔案
- 切換目錄到Firebird\bin
- 註冊Firebird程式所在目錄: instreg.exe install (這樣它會向系統註冊.HKLM\Software\Firebird Project\Firebird Server\Instances)
- 將Firebird當作服務來執行時:instsvc.exe install
- 將兩各檔案"fbclient.dll" 及 "gds32.dll"拷貝到系統目錄(WinDir\System32),
- 反安裝
- 停止FirebirdSQL Server
- 執行指令 "instsvc.exe remove"
- 執行指令 "instreg.exe remove"
- 刪除安裝目錄
- 在系統目錄(WinDir\System32),刪除兩各檔案 "fbclient.dll" 及 "gds32.dll"
Firebird&ODBC安裝腳本--NSIS版本
- By Ruey rueyho@ms11.hinet.net
- 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" ;程式集--反安裝 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
Firebird 安裝腳本--Inno Setup
- Initial Developer's Public License.
- The contents of this file are subject to the Initial Developer's Public
- License Version 1.0 (the "License"). You may not use this file except
- in compliance with the License. You may obtain a copy of the License at
- http://www.ibphoenix.com/idpl.html
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
- The Original Code is copyright 2001-2003 Paul Reeves for IBPhoenix.
- The Initial Developer of the Original Code is Paul Reeves for IBPhoenix.
- All Rights Reserved.
- Contributor(s)
- Tilo Muetze, Theo ? and Michael Rimov for improved detection
- of an existing install directory.
- Simon Carter for the WinSock2 detection.
- Usage Notes
- This script has been designed to work with My InnoSetup Extensions 3.0.6.2
- or later. It may work with earlier versions but this is neither guaranteed
- nor tested. My InnoSetup Extensions is available from
- http://www.wintax.nl/isx/
- Either classic_server_install or super_server_install
- Default to SuperServer if not defined
- define super_server_install
- define server_architecture "SuperServer"
- define msvc_version 6
- define FirebirdURL "http://www.firebirdsql.org"
- define BaseVer "1_5"
[Setup] AppName=Firebird Database Server 1.5 ({#server_architecture})
- The following is important - all ISS install packages should
- duplicate this for v1.5. See the InnoSetup help for details.
AppID=FBDBServer_{#BaseVer} AppVerName=Firebird 1.5.0 {#server_architecture} AppPublisher=Firebird Project AppPublisherURL={#FirebirdURL} AppSupportURL={#FirebirdURL} AppUpdatesURL={#FirebirdURL} DefaultDirName={code:InstallDir|{pf}\Firebird\Firebird_{#BaseVer}} DefaultGroupName=Firebird_{#BaseVer} AllowNoIcons=true SourceDir=..\..\..\..\..\firebird2 LicenseFile=src\install\misc\IPLicense.txt InfoBeforeFile=src\install\arch-specific\win32\installation_readme.txt InfoAfterFile=src\install\arch-specific\win32\readme.txt AlwaysShowComponentsList=true WizardImageFile=src\install\arch-specific\win32\firebird_install_logo1.bmp PrivilegesRequired=admin
- ifdef classic_server_install
UninstallDisplayIcon={app}\bin\fb_inet_server.exe
- else
UninstallDisplayIcon={app}\bin\fbserver.exe
- endif
OutputDir=builds\win32\install_image OutputBaseFilename=Firebird-1.5.0-Win32-{#server_architecture} Compression=bzip
[Types] Name: ServerInstall; Description: Full installation of server and development tools. Name: DeveloperInstall; Description: Installation of Client tools for Developers and database administrators. Name: ClientInstall; Description: Minimum client install - no server, no tools.
[Components] Name: ServerComponent; Description: Server component; Types: ServerInstall Name: DevAdminComponent; Description: Tools component; Types: ServerInstall DeveloperInstall Name: ClientComponent; Description: Client component; Types: ServerInstall DeveloperInstall ClientInstall; Flags: fixed disablenouninstallwarning
[Tasks]
- Server tasks
Name: UseGuardianTask; Description: "Use the &Guardian to control the server?"; Components: ServerComponent; MinVersion: 4.0,4.0 Name: UseApplicationTask; Description: An &Application?; GroupDescription: "Run Firebird server as:"; Components: ServerComponent; MinVersion: 4,4; Flags: exclusive Name: UseServiceTask; Description: A &Service?; GroupDescription: "Run Firebird server as:"; Components: ServerComponent; MinVersion: 0,4; Flags: exclusive Name: AutoStartTask; Description: "Start &Firebird automatically everytime you boot up?"; Components: ServerComponent; MinVersion: 4,4;
- Developer Tasks
Name: MenuGroupTask; Description: Create a Menu &Group; Components: ServerComponent; MinVersion: 4,4;
- One for Ron
- Name
- MenuGroupTask\desktopicon; Description: Create a &desktop icon; Components: ServerComponent; MinVersion: 4.0,4.0;
[Run]
- Always register Firebird
Filename: "{app}\bin\instreg.exe"; Parameters: "install ""{app}"" "; StatusMsg: Updating the registry; MinVersion: 4.0,4.0; Components: ClientComponent; Flags: runminimized
- If on NT/Win2k etc and 'Install and start service' requested
Filename: "{app}\bin\instsvc.exe"; Parameters: "install ""{app}"" {code:ServiceStartFlags|""""} "; StatusMsg: "Setting up the service"; MinVersion: 0,4.0; Components: ServerComponent; Flags: runminimized; Tasks: UseServiceTask; Filename: "{app}\bin\instsvc.exe"; Description: "Start Firebird Service now?"; Parameters: start; StatusMsg: Starting the server; MinVersion: 0,4.0; Components: ServerComponent; Flags: runminimized postinstall; Tasks: UseServiceTask; Check: StartEngine;
- If 'start as application' requested
- ifdef classic_server_install
Filename: "{code:StartApp|{app}\bin\fb_inet_server.exe}"; Description: "Start Firebird now?"; Parameters: "-a"; StatusMsg: Starting the server; MinVersion: 0,4.0; Components: ServerComponent; Flags: nowait postinstall; Tasks: UseApplicationTask; Check: StartEngine;
- else
Filename: "{code:StartApp|{app}\bin\fbserver.exe}"; Description: "Start Firebird now?"; Parameters: "-a"; StatusMsg: Starting the server; MinVersion: 0,4.0; Components: ServerComponent; Flags: nowait postinstall; Tasks: UseApplicationTask; Check: StartEngine;
- endif
[Registry]
- If user has chosen to start as App they may well want to start automatically. That is handled by a function below.
- Unless we set a marker here the uninstall will leave some annoying debris.
Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: Firebird; ValueData: ""; Flags: uninsdeletevalue; Tasks: UseApplicationTask;
- This doesn't seem to get cleared automatically by instreg on uninstall, so lets make sure of it
Root: HKLM; Subkey: SOFTWARE\FirebirdSQL; Flags: uninsdeletekeyifempty; Components: ClientComponent DevAdminComponent ServerComponent;
[Icons]
- ifdef classic_server_install
Name: "{group}\Firebird Server"; Filename: {app}\bin\fb_inet_server.exe; Parameters: "-a"; Flags: runminimized; MinVersion: 4.0,4.0; Tasks: MenuGroupTask; Check: InstallServerIcon; IconIndex: 0; Comment: "Run Firebird classic server (without guardian)";
- else
Name: "{group}\Firebird Server"; Filename: {app}\bin\fbserver.exe; Parameters: "-a"; Flags: runminimized; MinVersion: 4.0,4.0; Tasks: MenuGroupTask; Check: InstallServerIcon; IconIndex: 0; Comment: "Run Firebird Superserver (without guardian)";
- endif
Name: "{group}\Firebird Guardian"; Filename: {app}\bin\fbguard.exe; Parameters: "-a"; Flags: runminimized; MinVersion: 4.0,4.0; Tasks: MenuGroupTask; Check: InstallGuardianIcon; IconIndex: 1; Comment: "Run Firebird server (with guardian)"; Name: "{group}\Firebird 1.5 Release Notes"; Filename: {app}\doc\Firebird_v1_ReleaseNotes.pdf; MinVersion: 4.0,4.0; Tasks: MenuGroupTask; IconIndex: 1; Comment: "Firebird 1.0 release notes. (Requires Acrobat Reader.)"; Name: "{group}\Firebird 1.5 Readme"; Filename: {app}\readme.txt; MinVersion: 4.0,4.0; Tasks: MenuGroupTask; Name: "{group}\Uninstall Firebird"; Filename: {uninstallexe}; Comment: "Uninstall Firebird"
[Files] Source: src\install\misc\IPLicense.txt; DestDir: {app}; Components: ClientComponent; Flags: sharedfile ignoreversion; Source: src\install\arch-specific\win32\readme.txt; DestDir: {app}; Components: DevAdminComponent; Flags: ignoreversion; Source: output\firebird.conf; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall onlyifdoesntexist; Source: output\aliases.conf; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall onlyifdoesntexist; Source: output\security.fdb; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall onlyifdoesntexist; Source: output\security.fbk; DestDir: {app}; Components: ServerComponent; Flags: ignoreversion; Source: output\firebird.log; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall skipifsourcedoesntexist external dontcopy; Source: output\firebird.msg; DestDir: {app}; Components: ClientComponent; Flags: sharedfile ignoreversion; Source: output\bin\gbak.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\gbak.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\bin\gdef.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\bin\gfix.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\gfix.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\bin\gpre.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\bin\gsec.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\gsec.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: sharedfile ignoreversion; Source: output\bin\gsplit.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: sharedfile ignoreversion; Source: output\bin\gstat.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\fbguard.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\fb_lock_print.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion;
- ifdef classic_server_install
Source: output\bin\fb_inet_server.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion;
- else
Source: output\bin\fbserver.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion;
- endif
Source: output\bin\ib_util.dll; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\instreg.exe; DestDir: {app}\bin; Components: ClientComponent; Flags: sharedfile ignoreversion; Source: output\bin\instsvc.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\isql.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\bin\qli.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\doc\*.*; DestDir: {app}\doc; Components: DevAdminComponent; Flags: skipifsourcedoesntexist ignoreversion; Source: output\doc\sql.extensions\*.*; DestDir: {app}\doc\sql.extensions; Components: DevAdminComponent; Flags: skipifsourcedoesntexist ignoreversion; Source: output\help\*.*; DestDir: {app}\help; Components: DevAdminComponent; Flags: ignoreversion; Source: output\include\*.*; DestDir: {app}\include; Components: DevAdminComponent; Flags: ignoreversion; Source: output\intl\fbintl.dll; DestDir: {app}\intl; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\lib\*.*; DestDir: {app}\lib; Components: DevAdminComponent; Flags: ignoreversion; Source: output\UDF\*.*; DestDir: {app}\UDF; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\examples\*.*; DestDir: {app}\examples; Components: DevAdminComponent; Flags: ignoreversion;
- For now (RC2 timeframe) we are not recommending co-existence with other versions of Firebird or InterBase
- so we can install the client library and its wrapper into {sys}
- Source
- output\bin\gds32.dll; DestDir: {app}\bin; Components: ClientComponent; Flags: overwritereadonly sharedfile promptifolder;
- Source
- output\bin\fbclient.dll; DestDir: {app}\bin; Components: ClientComponent; Flags: overwritereadonly sharedfile promptifolder;
Source: output\bin\gds32.dll; DestDir: {sys}\; Components: ClientComponent; Flags: overwritereadonly sharedfile promptifolder; Source: output\bin\fbclient.dll; DestDir: {sys}\; Components: ClientComponent; Flags: overwritereadonly sharedfile promptifolder; Source: src\install\arch-specific\win32\msvcrt.dll; DestDir: {sys}\; Components: ClientComponent; Flags: uninsneveruninstall sharedfile onlyifdoesntexist; Source: src\install\arch-specific\win32\msvcp{#msvc_version}0.dll; DestDir: {sys}\; Components: ClientComponent; Flags: uninsneveruninstall sharedfile onlyifdoesntexist; Source: src\extlib\fbudf\fbudf.sql; DestDir: {app}\examples; Components: ServerComponent; Flags: ignoreversion; Source: src\extlib\fbudf\fbudf.txt; DestDir: {app}\doc; Components: ServerComponent; Flags: ignoreversion; Source: src\extlib\ib_util.pas; DestDir: {app}\include; Components: DevAdminComponent; Flags: ignoreversion;
- Source
- firebird\install\doc_all_platforms\Firebird_v1_ReleaseNotes.pdf; DestDir: {app}\doc; Components: DevAdminComponent; Flags: ignoreversion;
- Source
- firebird\install\doc_all_platforms\Firebird_v1_*.html; DestDir: {app}\doc; Components: DevAdminComponent; Flags: ignoreversion;
[UninstallRun] Filename: {app}\bin\instsvc.exe; Parameters: stop; StatusMsg: "Stopping the service"; MinVersion: 0,4.0; Components: ServerComponent; Flags: runminimized; Tasks: UseServiceTask; check: RemoveThisVersion; Filename: {app}\bin\instsvc.exe; Parameters: remove -g; StatusMsg: "Removing the service"; MinVersion: 0,4.0; Components: ServerComponent; Flags: runminimized; Tasks: UseServiceTask; check: RemoveThisVersion; Filename: {app}\bin\instreg.exe; Parameters: remove; StatusMsg: "Updating the registry"; MinVersion: 4.0,4.0; Flags: runminimized; check: RemoveThisVersion;
[UninstallDelete] Type: files; Name: {app}\*.lck Type: files; Name: {app}\*.evn
[_ISTool] EnableISX=true
[Code] program Setup;
const
sWinSock2 = 'ws2_32.dll'; sNoWinsock2 = 'Please Install Winsock 2 Update before continuing'; sMSWinsock2Update = 'http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp'; sWinsock2Web = 'Winsock 2 is not installed.'#13#13'Would you like to Visit the Winsock 2 Update Home Page?'; ProductVersion = 'PRODUCT_VER_STRING';
var
Winsock2Failure: Boolean;
InterBaseVer: Array of Integer;
// Likely values for installed versions of InterBase are: // [6,2,0,nnn] Firebird 1.0.0 // [6,2,2,nnn] Firebird 1.0.2 // [6,0,n,n] InterBase 6.0 // [6,5,n,n] InterBase 6.5 // [7,0,n,n] InterBase 7.0
FirebirdVer: Array of Integer;
// Likely values for installed versions of Firebird are: // [6,2,0,nnn] Firebird 1.0.0 // [6,2,2,nnn] Firebird 1.0.2 // [6,2,3,nnn] Firebird 1.0.3 // [1,5,0,nnnn] Firebird 1.5.0
fbclientStartCount, gds32StartCount : Integer;
procedure GetSharedLibCountAtStart; var
dw: Cardinal;
begin
if RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\fbclient.dll', dw) then fbclientStartCount := dw else fbclientStartCount := 0;
if RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\gds32.dll', dw) then gds32StartCount := dw else gds32StartCount := 0;
end;
procedure SetSharedLibCountAtEnd; // gds32 and fbclient get registered twice as shared libraries. // This appears to be a bug in InnoSetup. It only appears to affect // libraries the first time they are registered, and it only seems // to affect stuff in the {sys} directory. To work around this we // check the count before install and after install. var
dw: cardinal;
begin
if RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\fbclient.dll', dw) then begin
if (( dw - fbclientStartCount ) > 1 ) then begin dw := fbclientStartCount + 1 ; RegWriteDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\fbclient.dll', dw); end; end;
if RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\gds32.dll', dw) then begin if (( dw - gds32StartCount ) > 1 ) then begin dw := gds32StartCount + 1 ; RegWriteDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\gds32.dll', dw); end; end;
end;
function CheckWinsock2(): Boolean; begin
Result := True; //Check if Winsock 2 is installed (win 95 only) if (not UsingWinNt) and (not FileExists(AddBackslash(GetSystemDir) + sWinSock2)) then begin Winsock2Failure := True; Result := False; end else Winsock2Failure := False;
end;
function InitializeSetup(): Boolean; var
i: Integer;
begin
result := true;
if not CheckWinsock2 then exit;
//Look for a running version of Firebird i:=FindWindowByClassName('FB_Disabled'); if ( i=0 ) then i:=FindWindowByClassName('FB_Server'); if ( i<>0 ) then begin result := false; MsgBox('An existing Firebird Server is running. You must close the '+ 'application or stop the service before continuing.', mbError, MB_OK); end; //Check the shared library count. if ( result=true ) then GetSharedLibCountAtStart;
end;
procedure DeInitializeSetup(); var
ErrCode: Integer;
begin
// Did the install fail because winsock 2 was not installed? if Winsock2Failure then // Ask user if they want to visit the Winsock2 update web page. if MsgBox(sWinsock2Web, mbInformation, MB_YESNO) = idYes then // User wants to visit the web page InstShellExec(sMSWinsock2Update, , , SW_SHOWNORMAL, ErrCode);
end;
procedure DecodeVersion( verstr: String; var verint: array of Integer ); var
i,p: Integer; s: string;
begin
verint := [0,0,0,0]; i := 0; while ( (Length(verstr) > 0) and (i < 4) ) do begin p := pos('.', verstr); if p > 0 then begin if p = 1 then s:= '0' else s:= Copy( verstr, 1, p - 1 ); verint[i] := StrToInt(s); i := i + 1; verstr := Copy( verstr, p+1, Length(verstr)); end else begin verint[i] := StrToInt( verstr ); verstr := ; end; end;
end;
function GetInstalledVersion(ADir: String): Array of Integer; var AString: String; VerInt: Array of Integer; begin
if (ADir<>) then begin GetVersionNumbersString( ADir+'\bin\gbak.exe', Astring); DecodeVersion(AString, VerInt); end; result := VerInt;
end;
function GetFirebirdDir: string; //Check if Firebird installed, get version info to global var and return root dir var FirebirdDir: String; begin FirebirdVer := [0,0,0,0];
RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\FirebirdSQL\Firebird\CurrentVersion','RootDirectory', FirebirdDir); if (FirebirdDir<>) then FirebirdVer:=GetInstalledVersion(FirebirdDir);
end;
function GetInterBaseDir: string; //Check if InterBase installed, get version info to global var and return root dir var
InterBaseDir: String;
begin InterBaseVer := [0,0,0,0];
RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Borland\InterBase\CurrentVersion','RootDirectory', InterBaseDir); if (InterBaseDir<>) then InterBaseVer:=GetInstalledVersion(InterBaseDir);
end;
//This function tries to find an existing install of Firebird 1.5 //If it succeeds it suggests that directory for the install //Otherwise it suggests the default for Fb 1.5 function InstallDir(Default: String): String; var InstallRootDir, InterBaseRootDir, FirebirdRootDir: String; begin InstallRootDir := ;
// Try to find the value of "RootDirectory" in the Firebird // registry settings. This is either where Fb 1.0 exists or Fb 1.5 InterBaseRootDir:=GetInterBaseDir; FirebirdRootDir:=GetFirebirdDir; if (FirebirdRootDir <> ) and ( FirebirdRootDir = InterBaseRootDir ) then //Fb 1.0 must be installed so don't overwrite it. InstallRootDir := Default; if (( InstallRootDir = ) and ( FirebirdRootDir = Default )) then // Fb 1.5 is already installed, InstallRootDir := Default; // so we offer to install over it
if (( InstallRootDir = ) and ( FirebirdVer[0] = 1 ) and ( FirebirdVer[1] = 5 ) ) then // Firebird 1.5 is installed InstallRootDir := FirebirdRootDir; // but the user has changed the default
// if we haven't found anything then try the FIREBIRD env var // User may have preferred location for Firebird, but has possibly // uninstalled previous version if (InstallRootDir = ) then InstallRootDir:=getenv('FIREBIRD'); //if no existing locations found make sure we default to the default. if (InstallRootDir = ) then InstallRootDir := Default;
Result := ExpandConstant(InstallRootDir);
end;
function UseGuardian(Default: String): String; begin if ShouldProcessEntry('ServerComponent', 'UseGuardianTask')= srYes then
Result := '1'
else
Result := '0';
end;
function ServiceStartFlags(Default: String): String; var
classic: String;
begin
classic := ;
- ifdef classic_server_install
classic := ' -classic';
- endif
Result := ; if ShouldProcessEntry('ServerComponent', 'UseGuardianTask')= srYes then begin if ShouldProcessEntry('ServerComponent', 'AutoStartTask')= srYes then Result := ' -auto ' + classic + ' -g ' else Result := classic + ' -g '; end else if ShouldProcessEntry('ServerComponent', 'AutoStartTask')= srYes then Result := ' -auto ';
end;
function InstallGuardianIcon(): Boolean; begin
result := false; if ShouldProcessEntry('ServerComponent', 'UseApplicationTask')= srYes then if ShouldProcessEntry('ServerComponent', 'UseGuardianTask')= srYes then result := true;
end;
function InstallServerIcon(): Boolean; begin
result := false; if ShouldProcessEntry('ServerComponent', 'UseApplicationTask')= srYes then if ShouldProcessEntry('ServerComponent', 'UseGuardianTask')= srNo then result := true;
end;
function StartApp(Default: String): String; var
AppPath: String;
begin
AppPath:=ExpandConstant('{app}'); //Now start the app as if ShouldProcessEntry('ServerComponent', 'UseGuardianTask')= srYes then Result := AppPath+'\bin\fbguard.exe' else
- ifdef classic_server_install
Result := AppPath+'\bin\fb_inet_server.exe';
- else
Result := AppPath+'\bin\fbserver.exe';
- endif
end;
procedure CurStepChanged(CurStep: Integer); var
AppStr: String;
begin
if ( CurStep=csFinished ) then begin //If user has chosen to install an app and run it automatically set up the registry accordingly //so that the server or guardian starts evertime they login. if (ShouldProcessEntry('ServerComponent', 'AutoStartTask')= srYes) and ( ShouldProcessEntry('ServerComponent', 'UseApplicationTask')= srYes ) then begin AppStr := StartApp()+' -a';
RegWriteStringValue (HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'Firebird', AppStr);
end; end; if ( CurStep=csFinished ) then //Check that the shared lib count is correct. SetSharedLibCountAtEnd;
end;
function FirebirdOneRunning: boolean; var
i: Integer;
begin
result := false; //Look for a running copy of InterBase or Firebird 1.0. i:=0; i:=FindWindowByClassName('IB_Server') ; if ( i<>0 ) then result := true;
end;
function StartEngine: boolean; begin
result := not FirebirdOneRunning;
end;
function RemoveThisVersion: boolean; //check if we are still the current version before removing var
VersionStr: string;
begin
result := false; if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\FirebirdSQL\Firebird\CurrentVersion','Version', VersionStr ) then if (pos(ProductVersion,VersionStr)>0) then result := true;
end;
begin end.
Firebird ODBC安裝腳本--Inno Setup
- The contents of this file are subject to the Initial
- Developer's Public License Version 1.0 (the "License");
- you may not use this file except in compliance with the
- License. You may obtain a copy of the License at
- http://www.ibphoenix.com/idpl.html.
- Software distributed under the License is distributed on
- an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
- express or implied. See the License for the specific
- language governing rights and limitations under the License.
- The Original Code was created by Vladimir Tsvigun for IBPhoenix.
- Copyright (c) 2003 Vladimir Tsvigun
- All Rights Reserved.
- OdbcJdbcSetup.iss
- for Inno Setup ver
- 3.0.6.2 from http://www.innosetup.com/
- for MsVC 6.0
- define sourceDll="..\..\Builds\MsVc60.win\Release\"
[Setup] AppName=Firebird ODBC AppVerName=OdbcJdbc version 1-1-beta WizardImageFile=firebird-logo1.bmp WizardImageBackColor=clWhite WizardSmallImageFile=firebird-logo2.bmp WizardSmallImageBackColor=clWhite DefaultDirName={pf}\Firebird ODBC DefaultGroupName=Firebird ODBC UninstallDisplayIcon={app}\OdbcJdbcSetup.dll
[Files]
Source: "{#sourceDll}IscDbc.dll"; DestDir: "{app}"; Flags: ignoreversion deleteafterinstall Source: "{#sourceDll}OdbcJdbc.dll"; DestDir: "{app}"; Flags: ignoreversion deleteafterinstall Source: "{#sourceDll}OdbcJdbcSetup.dll"; DestDir: "{app}"; Flags: ignoreversion deleteafterinstall
- Source
- "FirebirdOdbc.hlp"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
[Icons] Name: "{group}\Firebird ODBC"; Filename: "{app}\unins000.exe"
[Run] Filename: "{sys}\regsvr32.exe"; Parameters: "/s ""{app}""\OdbcJdbcSetup.dll"
[UninstallRun] Filename: "{sys}\regsvr32.exe"; Parameters: "/u ""{app}""\OdbcJdbcSetup.dll"
InterBase7安裝腳本--以Inno Setup為例
- 原作者lleey lleey@163.com
- 這是由《My Inno Setup Extensions》程序建立的腳本向導程序.
- 有關怎樣建立此腳本的方法請參考幫助以及D
- \Inno Setup 2\BDEInst\中的readme文件
- 編寫本腳本所用到的知識(如為什么要復制那些文件、目的是什么,為什么要對注冊表文件進行那樣的修改等)請參考有關文獻。
- 如有疑問請來信共同探討。lleey@163.com
- 愿此腳本對所有志同道合者的學習、開發有所幫助,共同推動IB應用!
[Setup] AppName=《飛行學院航空理論試題庫系統》 AppVerName=Exam2003 AppPublisher=空軍第十三飛行學院理論訓練處 DefaultDirName={pf}\Exam DefaultGroupName=Exam OutputBaseFilename=ExamSetup Uninstallable=yes
- 如果要在NT 3.51以上版本上運行安裝程序則變下面的注釋行變為運行行即可
- MinVersion=4,3.51
[Types]
- 設置若干個安裝主題,供用戶根據不同目的選擇安裝
Name: "ExamBase"; Description: "安裝服務器和題庫" Name: "Exam"; Description: "安裝組卷子系統" Name: "MakeBase"; Description: "安裝建庫子系統" Name: "Custom"; Description: "用戶自由選擇安裝"; Flags: iscustom
[Components]
- 本節列出待安裝的所有組件。如果[Type]節中的一個安裝主題需要某個組件,就在此組件對應的Types
- 保留字后面列出此主題名
Name: IB7clt; Description: 客戶機數據庫系統; Types: ExamBase Exam MakeBase Custom; Flags: fixed Name: IB7svr; Description: 服務器數據庫系統; Types: ExamBase Custom Name: Base; Description: 題庫; Types: ExamBase Custom Name: Maketable; Description: 建庫子系統; Types: MakeBase Custom Name: Exam; Description: 組卷子系統; Types: Exam Custom
[Dirs]
- 設置安裝目錄。其中數據庫系統包括服務器和客戶機均放在C
- \windows\system\interbase7文件夾下、而數據庫則放在應用程序存放
- 目錄的\base子文件夾下。
Name: {sys}\InterBase7 Name: {sys}\InterBase7\bin; Name: {app}\base; Components:Base
[Tasks] Name: "desktopicon"; Description: "創建一個桌面圖標(&D) "; GroupDescription: "添加圖標: "; MinVersion: 4,4; Components: MakeTable exam [Files]
- ==========================================================
- 復制數據庫系統。對于任何用到IB7的應用此部分都是一樣的。 ||
- ==========================================================
- 復制IB7的系統數據庫admin.ib,僅當該文件不存在時復制、卸載時不刪除、只適用于IB7svr組件。以下不再贅述。
Source: E:\Borland\InterBase7\admin.ib; DestDir: {sys}\InterBase7; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstall; Components: IB7svr Source: E:\Borland\InterBase7\ibconfig; DestDir: {sys}\InterBase7; CopyMode: normal; Components: IB7svr Source: E:\Borland\InterBase7\interbase.msg; DestDir: {sys}\InterBase7; CopyMode: normal; Flags: sharedfile; Components: IB7clt
- 將設置3050耑口的文件復制到臨時目錄。
Source: E:\Borland\InterBase7\Set3050.exe; DestDir: {tmp}; Flags: deleteafterinstall Source: E:\Borland\InterBase7\bin\ibguard.exe; DestDir: {sys}\InterBase7\bin; CopyMode: alwaysskipifsameorolder; Components: IB7svr; Flags: sharedfile Source: E:\Borland\InterBase7\bin\ibserver.exe; DestDir: {sys}\InterBase7\bin; CopyMode: alwaysskipifsameorolder; Components: IB7svr; Flags: sharedfile Source: E:\Borland\InterBase7\bin\instreg.exe; DestDir: {sys}\InterBase7\bin; Components: IB7clt Source: C:\Windows\System\gds32.dll; DestDir: {sys}; CopyMode: alwaysskipifsameorolder; Flags: sharedfile; Components: IB7clt Source: C:\Windows\System\msvcrt.dll; DestDir: {sys}; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstall sharedfile; Components: IB7clt
- 復制許可証
Source: "E:\Borland\InterBase7\ib_license.dat"; DestDir: "{sys}\InterBase7"; CopyMode: normal; Components: IB7svr
- 在Win9x/Me系統下復制服務器中止服務器文件 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Source: E:\Borland\InterBase7\bin\stopsrv.exe; DestDir: {sys}\InterBase7\bin; CopyMode: alwaysskipifsameorolder; MinVersion: 4.0,0; Components: IB7svr
- 在NT/2000系統下復制將IB7設置為NT服務的文件 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Source: E:\Borland\InterBase7\bin\instsvc.exe; DestDir: {sys}\InterBase7\bin; CopyMode: alwaysskipifsameorolder; MinVersion: 0,4.0; Components: IB7svr
- ==================================================================================================
- 復制組卷子系統。以上是關于數據庫系統的復制,以下是應用程序的復制,各用戶可自由決定下面的復制內容||
- ==================================================================================================
Source: "E:\Exam\bintest\exam.exe"; DestDir: "{app}"; DestName: "exam.exe"; CopyMode: normal; Components: Exam Source: "E:\Exam\bintest\exam.ini"; DestDir: "{app}"; CopyMode: normal; Components: Exam Source: "E:\Exam\bintest\ExamHor.dot"; DestDir: "{app}"; CopyMode: normal; Components: Exam Source: "E:\Exam\bintest\ExamVer.dot"; DestDir: "{app}"; CopyMode: normal; Components: Exam Source: "E:\Exam\bintest\config.ini"; DestDir: "{app}"; CopyMode: normal; Components: Exam Maketable
- 復制建庫子系統
Source: "E:\Exam\Maketable\Maketable.exe"; DestDir: "{app}"; CopyMode: normal; Components: Maketable Source: "E:\exam\PrtTable\PrtTable.exe"; DestDir: "{app}"; CopyMode: normal; Components: Maketable
- 復制題庫
Source: "E:\exam\Base\Exam.ib"; DestDir: "{app}\base"; CopyMode: normal; Components: Base
[Registry]
- ====================================================
- 此部分是對注冊表的修改,具體內容可參考相關文檔說明||
- ====================================================
- 僅對Win9x/Me ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Root: HKLM; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: InterBaseGuardian; ValueData: {app}\bin\ibguard.exe; MinVersion: 4.0,0; Flags: uninsdeletevalue; Components: IB7svr
- 此行是設置IB7的版本號,務必是真實的版本號,否則會造成其他安裝程序的錯誤判斷
Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: Version; ValueData: WI-V7.0.1.1; Flags: uninsdeletevalue; Components: IB7svr Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: ServerDirectory; ValueData: {sys}\InterBase7\bin; Flags: uninsdeletevalue; Components: IB7svr Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; Flags: uninsdeletekeyifempty; Components: IB7svr Root: HKLM; Subkey: Software\Borland\InterBase; Flags: uninsdeletekeyifempty; Components: IB7svr
- 為向下兼容
- Root
- HKLM; Subkey: Software\Borland\InterBase; ValueType: DWord; ValueName: UseCount; ValueData: {reg:HKLM\Software\Borland\InterBase, UseCount|0} + 1
- Root
- HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: DWord; ValueName: UseCount; ValueData: {reg:HKLM\Software\Borland\InterBase\CurrentVersion, UseCount|0} + 1
- obsolete - Root
- HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: DefaultMode; ValueData: -r; Components: Server
Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: GuardianOptions; ValueData: 1; Components: IB7svr Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: ServerDirectory; ValueData: {sys}\InterBase7\bin\; Components: IB7svr
- Software\Borland\InterBase\CurrentVersion\RootDirectory
- &
- Software\Borland\InterBase\CurrentVersion\Version
- 的鍵值由instreg.exe文件自行設置,此文件還將刪除Software\Borland\InterBase鍵名下的空鍵名
[Icons] Name: "{group}\組卷"; Filename: "{app}\exam.exe"; Components: Exam Name: "{group}\建庫"; Filename: "{app}\maketable.exe"; Components: Maketable Name: "{group}\打印題庫"; Filename: "{app}\prttable.exe"; Components: Maketable Name: "{userdesktop}\組卷"; Filename: "{app}\exam.exe"; Components: Exam Name: "{userdesktop}\建庫"; Filename: "{app}\maketable.exe"; Components: Maketable Name: "{userdesktop}\打印題庫"; Filename: "{app}\prttable.exe"; Components: Maketable Name: "{group}\卸載"; Filename: "{app}\unins000.exe"
[Run]
- 在結束安裝之前運行此節所規定的內容
- ==================================
- 運行臨時文件夾中的Set3050.exe,目的是設置3050口,此口是IB7所默認的通信監視口
Filename: {tmp}\Set3050.exe; Flags: runminimized
- 運行instreg.exe,目的是對一些特殊的注冊表內容進行設置。
Filename: {sys}\InterBase7\bin\instreg.exe; Parameters: "install ""{sys}\InterBase7"""; Flags: nowait runminimized
- 只對NT/2000,目的是將IB7服務器設置成NT eservice(NT服務);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Filename: {sys}\InterBase7\bin\instsvc.exe; Parameters: install {sys}\InterBase7 -auto -z; Flags: runminimized; MinVersion: 0,4.0; Components: IB7svr Filename: {sys}\InterBase7\bin\instsvc.exe; Parameters: start; Flags: nowait runminimized; MinVersion: 0,4.0; Components: IB7svr
- 只對Win9x/Me ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Filename: {sys}\InterBase7\bin\ibguard.exe; Flags: nowait; MinVersion: 4.0,0; Components: IB7svr
相關網站
參考文章
- 編寫 NSIS 的安裝腳本 By ∮Ω奧米加空間∮ dc
- NSIS: 結構化的LangString 寫作 By 中文化聯盟 Kii Ali
- 全方位掌握 NSIS 的使用 By 少昊 teach.hanzify.org
- Quick Guide to NSIS
- 安裝程式--Inno Setup
- Unofficial Firebird Installation page
- InterBase Installation & Deployment Options
- InterBase Installation Info Script Downloads